| 1234567891011121314151617181920212223242526272829303132333435363738394041 | import { isElement, isHTMLElement } from "./instanceOf.js";import { round } from "../utils/math.js";import getWindow from "./getWindow.js";import isLayoutViewport from "./isLayoutViewport.js";export default function getBoundingClientRect(element, includeScale, isFixedStrategy) {  if (includeScale === void 0) {    includeScale = false;  }  if (isFixedStrategy === void 0) {    isFixedStrategy = false;  }  var clientRect = element.getBoundingClientRect();  var scaleX = 1;  var scaleY = 1;  if (includeScale && isHTMLElement(element)) {    scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;    scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;  }  var _ref = isElement(element) ? getWindow(element) : window,      visualViewport = _ref.visualViewport;  var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;  var width = clientRect.width / scaleX;  var height = clientRect.height / scaleY;  return {    width: width,    height: height,    top: y,    right: x + width,    bottom: y + height,    left: x,    x: x,    y: y  };}
 |