measure.mjs 715 B

1234567891011121314151617
  1. import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';
  2. import { translateAxis } from '../geometry/delta-apply.mjs';
  3. function measureViewportBox(instance, transformPoint) {
  4. return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));
  5. }
  6. function measurePageBox(element, rootProjectionNode, transformPagePoint) {
  7. const viewportBox = measureViewportBox(element, transformPagePoint);
  8. const { scroll } = rootProjectionNode;
  9. if (scroll) {
  10. translateAxis(viewportBox.x, scroll.offset.x);
  11. translateAxis(viewportBox.y, scroll.offset.y);
  12. }
  13. return viewportBox;
  14. }
  15. export { measurePageBox, measureViewportBox };