@hanzogui/use-element-layout 3.0.5 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","LayoutMeasurementController","createMeasure","createMeasureInWindow","createMeasureLayout","enable","getBoundingClientRectAsync","getElementLayoutEvent","measure","measureInWindow","measureLayout","measureNode","registerLayoutNode","setOnLayoutStrategy","useElementLayout","module","exports","import_jsx_runtime","require","import_constants","import_react","_instanceof","left","right","Symbol","hasInstance","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__HANZO_GUI_ONLAYOUT_PRETRANSFORM","process","env","HANZO_GUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","createContext","ENABLE","param","disable","children","id","useId","useIsomorphicLayoutEffect","jsx","Provider","globalIntersectionObserver","strategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","forEach","cb","clear","startGlobalObservers","IntersectionObserver","entries","i","length","entry","node","target","get","isIntersecting","set","threshold","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver","rectFetchObserver","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","BoundingRects","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","ensureRectFetchObserver2","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","layout","nativeEvent","first","rAF","requestAnimationFrame","userSkipVal","HANZO_GUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","HTMLElement","cleanupNode","disableKey","push","add","err","return","io","observe","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","parent","Promise","res","i1","unobserve","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","parent1","min","max","i2","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","top","pageX","pageY","onChange","delete","PrevHostNode","ref","_ref_current","useContext","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","handler","node2","totalNodes","size"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","index_exports","LayoutMeasurementController","createMeasure","createMeasureInWindow","createMeasureLayout","enable","getBoundingClientRectAsync","getElementLayoutEvent","measure","measureInWindow","measureLayout","measureNode","registerLayoutNode","setOnLayoutStrategy","useElementLayout","module","exports","import_jsx_runtime","require","import_constants","import_react","_instanceof","left","right","Symbol","hasInstance","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__GUI_ONLAYOUT_PRETRANSFORM","process","env","GUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","createContext","ENABLE","param","disable","children","id","useId","useIsomorphicLayoutEffect","jsx","Provider","globalIntersectionObserver","strategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","forEach","cb","clear","startGlobalObservers","IntersectionObserver","entries","i","length","entry","node","isIntersecting","set","threshold","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver","rectFetchObserver","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","BoundingRects","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","ensureRectFetchObserver2","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","layout","nativeEvent","first","rAF","requestAnimationFrame","userSkipVal","GUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","HTMLElement","cleanupNode","disableKey","push","add","err","return","io","observe","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","parent","Promise","res","i1","unobserve","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","parent1","min","max","i2","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","top","pageX","pageY","onChange","delete","PrevHostNode","ref","_ref_current","useContext","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","handler","node2","totalNodes","size","swappedNode","nodeType","disconnect","relativeTo","relativeNode","nodeDim","relativeNodeDim","callback","out"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\n__export(index_exports, {\n LayoutMeasurementController: () => LayoutMeasurementController,\n createMeasure: () => createMeasure,\n createMeasureInWindow: () => createMeasureInWindow,\n createMeasureLayout: () => createMeasureLayout,\n enable: () => enable,\n getBoundingClientRectAsync: () => getBoundingClientRectAsync,\n getElementLayoutEvent: () => getElementLayoutEvent,\n measure: () => measure,\n measureInWindow: () => measureInWindow,\n measureLayout: () => measureLayout,\n measureNode: () => measureNode,\n registerLayoutNode: () => registerLayoutNode,\n setOnLayoutStrategy: () => setOnLayoutStrategy,\n useElementLayout: () => useElementLayout\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_constants = require(\"@hanzogui/constants\");\nvar import_react = require(\"react\");\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nvar LayoutHandlers = /* @__PURE__ */ new WeakMap();\nvar LayoutDisableKey = /* @__PURE__ */ new WeakMap();\nvar Nodes = /* @__PURE__ */ new Set();\nvar IntersectionState = /* @__PURE__ */ new WeakMap();\nvar usePretransformDimensions = function() {\n return globalThis.__GUI_ONLAYOUT_PRETRANSFORM === true || process.env.GUI_ONLAYOUT_PRETRANSFORM === \"1\";\n};\nvar _debugLayout;\nfunction isDebugLayout() {\n if (_debugLayout === void 0) {\n _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n }\n return _debugLayout;\n}\nvar DisableLayoutContextValues = {};\nvar DisableLayoutContextKey = /* @__PURE__ */ (0, import_react.createContext)(\"\");\nvar ENABLE = false;\nvar LayoutMeasurementController = function(param) {\n var { disable, children } = param;\n var id = (0, import_react.useId)();\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n DisableLayoutContextValues[id] = disable;\n }, [\n disable,\n id\n ]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DisableLayoutContextKey.Provider, {\n value: id,\n children\n });\n};\nvar globalIntersectionObserver = null;\nvar strategy = \"async\";\nfunction setOnLayoutStrategy(state) {\n strategy = state;\n}\nvar NodeRectCache = /* @__PURE__ */ new WeakMap();\nvar avoidUpdates = true;\nvar queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n if (avoidUpdates) {\n avoidUpdates = false;\n if (queuedUpdates) {\n queuedUpdates.forEach(function(cb) {\n return cb();\n });\n queuedUpdates.clear();\n }\n }\n}\nfunction startGlobalObservers() {\n if (!ENABLE || globalIntersectionObserver) return;\n globalIntersectionObserver = new IntersectionObserver(function(entries) {\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n var node = entry.target;\n if (IntersectionState.get(node) !== entry.isIntersecting) {\n IntersectionState.set(node, entry.isIntersecting);\n }\n }\n }, {\n threshold: 0\n });\n}\nfunction rectsEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\nif (ENABLE) {\n let ensureRectFetchObserver = function() {\n if (rectFetchObserver) return rectFetchObserver;\n rectFetchObserver = new IntersectionObserver(function(entries) {\n lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n for (var i = 0; i < entries.length; i++) {\n BoundingRects.set(entries[i].target, entries[i].boundingClientRect);\n }\n if (process.env.NODE_ENV === \"development\" && isDebugLayout() && lastCallbackDelay > 50) {\n console.warn(\"[onLayout-io-delay]\", lastCallbackDelay + \"ms\", entries.length, \"entries\");\n }\n if (rectFetchResolve) {\n rectFetchResolve(true);\n rectFetchResolve = null;\n }\n }, {\n threshold: 0\n });\n return rectFetchObserver;\n };\n var ensureRectFetchObserver2 = ensureRectFetchObserver;\n var BoundingRects = /* @__PURE__ */ new WeakMap();\n var rectFetchObserver = null;\n var rectFetchResolve = null;\n var rectFetchStartTime = 0;\n var lastCallbackDelay = 0;\n async function updateLayoutIfChanged(node) {\n var onLayout = LayoutHandlers.get(node);\n if (typeof onLayout !== \"function\") return;\n var parentNode = node.parentElement;\n if (!parentNode) return;\n var nodeRect;\n var parentRect;\n if (strategy === \"async\") {\n nodeRect = BoundingRects.get(node);\n parentRect = BoundingRects.get(parentNode);\n if (!nodeRect || !parentRect) {\n return;\n }\n } else {\n nodeRect = node.getBoundingClientRect();\n parentRect = parentNode.getBoundingClientRect();\n }\n var cachedRect = NodeRectCache.get(node);\n var cachedParentRect = NodeRectCache.get(parentNode);\n var nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n var parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n if (nodeChanged || parentChanged) {\n NodeRectCache.set(node, nodeRect);\n NodeRectCache.set(parentNode, parentRect);\n var event = getElementLayoutEvent(nodeRect, parentRect, node);\n if (process.env.NODE_ENV === \"development\" && isDebugLayout()) {\n console.log(\"[useElementLayout] change\", {\n tag: node.tagName,\n id: node.id || void 0,\n className: (node.className || \"\").slice(0, 60) || void 0,\n layout: event.nativeEvent.layout,\n first: !cachedRect\n });\n }\n if (avoidUpdates) {\n queuedUpdates.set(node, function() {\n return onLayout(event);\n });\n } else {\n onLayout(event);\n }\n }\n }\n var rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n var userSkipVal = process.env.GUI_LAYOUT_FRAME_SKIP;\n var BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n var MAX_SKIP_FRAMES = 20;\n var skipFrames = BASE_SKIP_FRAMES;\n var frameCount = 0;\n async function layoutOnAnimationFrame() {\n if (frameCount++ % skipFrames !== 0) {\n rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n return;\n }\n if (frameCount >= Number.MAX_SAFE_INTEGER) {\n frameCount = 0;\n }\n if (strategy !== \"off\") {\n var visibleNodes = [];\n var parentsToObserve = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n var parentElement = node.parentElement;\n if (!_instanceof(parentElement, HTMLElement)) {\n cleanupNode(node);\n continue;\n }\n var disableKey = LayoutDisableKey.get(node);\n if (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n if (IntersectionState.get(node) === false) continue;\n visibleNodes.push(node);\n parentsToObserve.add(parentElement);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (visibleNodes.length > 0) {\n var io = ensureRectFetchObserver();\n rectFetchStartTime = performance.now();\n for (var i = 0; i < visibleNodes.length; i++) {\n io.observe(visibleNodes[i]);\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = parentsToObserve[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var parent = _step1.value;\n io.observe(parent);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n await new Promise(function(res) {\n rectFetchResolve = res;\n });\n for (var i1 = 0; i1 < visibleNodes.length; i1++) {\n io.unobserve(visibleNodes[i1]);\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = parentsToObserve[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var parent1 = _step2.value;\n io.unobserve(parent1);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n if (lastCallbackDelay > 50) {\n skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);\n } else if (lastCallbackDelay < 20) {\n skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);\n }\n for (var i2 = 0; i2 < visibleNodes.length; i2++) {\n updateLayoutIfChanged(visibleNodes[i2]);\n }\n }\n }\n rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n }\n layoutOnAnimationFrame();\n}\nvar getElementLayoutEvent = function(nodeRect, parentRect, node) {\n return {\n nativeEvent: {\n layout: getRelativeDimensions(nodeRect, parentRect, node),\n target: nodeRect\n },\n timeStamp: Date.now()\n };\n};\nvar getPreTransformDimensions = function(node) {\n return {\n width: node.offsetWidth,\n height: node.offsetHeight\n };\n};\nvar getRelativeDimensions = function(a, b, aNode) {\n var { left, top } = a;\n var x = left - b.left;\n var y = top - b.top;\n var { width, height } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {\n width: a.width,\n height: a.height\n };\n return {\n x,\n y,\n width,\n height,\n pageX: a.left,\n pageY: a.top\n };\n};\nfunction registerLayoutNode(node, onChange, disableKey) {\n Nodes.add(node);\n LayoutHandlers.set(node, onChange);\n if (disableKey) LayoutDisableKey.set(node, disableKey);\n startGlobalObservers();\n if (globalIntersectionObserver) {\n globalIntersectionObserver.observe(node);\n IntersectionState.set(node, true);\n }\n return function() {\n return cleanupNode(node);\n };\n}\nfunction cleanupNode(node) {\n Nodes.delete(node);\n LayoutHandlers.delete(node);\n LayoutDisableKey.delete(node);\n NodeRectCache.delete(node);\n IntersectionState.delete(node);\n if (globalIntersectionObserver) {\n globalIntersectionObserver.unobserve(node);\n }\n}\nvar PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction useElementLayout(ref, onLayout) {\n var _ref_current;\n var disableKey = (0, import_react.useContext)(DisableLayoutContextKey);\n var node = ensureWebElement((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host);\n if (node && onLayout) {\n LayoutHandlers.set(node, onLayout);\n LayoutDisableKey.set(node, disableKey);\n }\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n var _ref_current2;\n if (!onLayout) return;\n var nextNode = ensureWebElement((_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host);\n var prevNode = PrevHostNode.get(ref);\n if (nextNode === prevNode) return;\n if (prevNode) cleanupNode(prevNode);\n PrevHostNode.set(ref, nextNode);\n if (!nextNode) return;\n Nodes.add(nextNode);\n startGlobalObservers();\n if (globalIntersectionObserver) {\n globalIntersectionObserver.observe(nextNode);\n IntersectionState.set(nextNode, true);\n }\n var handler = LayoutHandlers.get(nextNode);\n if (typeof handler !== \"function\") return;\n var parentNode = nextNode.parentElement;\n if (!parentNode) return;\n var nodeRect = nextNode.getBoundingClientRect();\n var parentRect = parentNode.getBoundingClientRect();\n NodeRectCache.set(nextNode, nodeRect);\n NodeRectCache.set(parentNode, parentRect);\n handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));\n });\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n var _ref_current2;\n if (!onLayout) return;\n var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;\n if (!node2) return;\n Nodes.add(node2);\n startGlobalObservers();\n if (globalIntersectionObserver) {\n globalIntersectionObserver.observe(node2);\n IntersectionState.set(node2, true);\n }\n if (process.env.NODE_ENV === \"development\" && isDebugLayout()) {\n console.log(\"[useElementLayout] register\", {\n tag: node2.tagName,\n id: node2.id || void 0,\n className: (node2.className || \"\").slice(0, 60) || void 0,\n totalNodes: Nodes.size\n });\n }\n var parentNode = node2.parentNode;\n if (parentNode) {\n onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2));\n }\n return function() {\n cleanupNode(node2);\n var swappedNode = PrevHostNode.get(ref);\n if (swappedNode && swappedNode !== node2) {\n cleanupNode(swappedNode);\n }\n PrevHostNode.delete(ref);\n };\n }, [\n ref,\n !!onLayout\n ]);\n}\nfunction ensureWebElement(x) {\n if (typeof HTMLElement === \"undefined\") {\n return void 0;\n }\n return _instanceof(x, HTMLElement) ? x : void 0;\n}\nvar getBoundingClientRectAsync = function(node) {\n return new Promise(function(res) {\n if (!node || node.nodeType !== 1) return res(false);\n var io = new IntersectionObserver(function(entries) {\n io.disconnect();\n return res(entries[0].boundingClientRect);\n }, {\n threshold: 0\n });\n io.observe(node);\n });\n};\nvar measureNode = async function(node, relativeTo) {\n var relativeNode = relativeTo || (node === null || node === void 0 ? void 0 : node.parentElement);\n if (_instanceof(relativeNode, HTMLElement)) {\n var [nodeDim, relativeNodeDim] = await Promise.all([\n getBoundingClientRectAsync(node),\n getBoundingClientRectAsync(relativeNode)\n ]);\n if (relativeNodeDim && nodeDim) {\n return getRelativeDimensions(nodeDim, relativeNodeDim, node);\n }\n }\n return null;\n};\nvar measure = async function(node, callback) {\n var out = await measureNode(node, _instanceof(node.parentNode, HTMLElement) ? node.parentNode : null);\n if (out) {\n callback === null || callback === void 0 ? void 0 : callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n }\n return out;\n};\nfunction createMeasure(node) {\n return function(callback) {\n return measure(node, callback);\n };\n}\nvar measureInWindow = async function(node, callback) {\n var out = await measureNode(node, null);\n if (out) {\n callback === null || callback === void 0 ? void 0 : callback(out.pageX, out.pageY, out.width, out.height);\n }\n return out;\n};\nvar createMeasureInWindow = function(node) {\n return function(callback) {\n return measureInWindow(node, callback);\n };\n};\nvar measureLayout = async function(node, relativeNode, callback) {\n var out = await measureNode(node, relativeNode);\n if (out) {\n callback === null || callback === void 0 ? void 0 : callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n }\n return out;\n};\nfunction createMeasureLayout(node) {\n return function(relativeTo, callback) {\n return measureLayout(node, relativeTo, callback);\n };\n}\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,109 +1,151 @@
1
1
  import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
2
2
  import { createContext, useContext, useId } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
- const LayoutHandlers = /* @__PURE__ */new WeakMap(),
5
- LayoutDisableKey = /* @__PURE__ */new WeakMap(),
6
- Nodes = /* @__PURE__ */new Set(),
7
- IntersectionState = /* @__PURE__ */new WeakMap(),
8
- usePretransformDimensions = () => globalThis.__HANZO_GUI_ONLAYOUT_PRETRANSFORM === !0 || process.env.HANZO_GUI_ONLAYOUT_PRETRANSFORM === "1";
4
+ const LayoutHandlers = /* @__PURE__ */new WeakMap();
5
+ const LayoutDisableKey = /* @__PURE__ */new WeakMap();
6
+ const Nodes = /* @__PURE__ */new Set();
7
+ const IntersectionState = /* @__PURE__ */new WeakMap();
8
+ const usePretransformDimensions = () => globalThis.__GUI_ONLAYOUT_PRETRANSFORM === true || process.env.GUI_ONLAYOUT_PRETRANSFORM === "1";
9
9
  let _debugLayout;
10
10
  function isDebugLayout() {
11
- return _debugLayout === void 0 && (_debugLayout = typeof window < "u" && new URLSearchParams(window.location.search).has("__tamaDebugLayout")), _debugLayout;
11
+ if (_debugLayout === void 0) {
12
+ _debugLayout = typeof window !== "undefined" && new URLSearchParams(window.location.search).has("__tamaDebugLayout");
13
+ }
14
+ return _debugLayout;
12
15
  }
13
- const DisableLayoutContextValues = {},
14
- DisableLayoutContextKey = createContext(""),
15
- ENABLE = typeof IntersectionObserver < "u",
16
- LayoutMeasurementController = ({
17
- disable,
16
+ const DisableLayoutContextValues = {};
17
+ const DisableLayoutContextKey = createContext("");
18
+ const ENABLE = typeof IntersectionObserver !== "undefined";
19
+ const LayoutMeasurementController = ({
20
+ disable,
21
+ children
22
+ }) => {
23
+ const id = useId();
24
+ useIsomorphicLayoutEffect(() => {
25
+ DisableLayoutContextValues[id] = disable;
26
+ }, [disable, id]);
27
+ return /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
28
+ value: id,
18
29
  children
19
- }) => {
20
- const id = useId();
21
- return useIsomorphicLayoutEffect(() => {
22
- DisableLayoutContextValues[id] = disable;
23
- }, [disable, id]), /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
24
- value: id,
25
- children
26
- });
27
- };
28
- let globalIntersectionObserver = null,
29
- strategy = "async";
30
+ });
31
+ };
32
+ let globalIntersectionObserver = null;
33
+ let strategy = "async";
30
34
  function setOnLayoutStrategy(state) {
31
35
  strategy = state;
32
36
  }
33
37
  const NodeRectCache = /* @__PURE__ */new WeakMap();
34
- let avoidUpdates = !0;
38
+ let avoidUpdates = true;
35
39
  const queuedUpdates = /* @__PURE__ */new Map();
36
40
  function enable() {
37
- avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(cb => cb()), queuedUpdates.clear()));
41
+ if (avoidUpdates) {
42
+ avoidUpdates = false;
43
+ if (queuedUpdates) {
44
+ queuedUpdates.forEach(cb => cb());
45
+ queuedUpdates.clear();
46
+ }
47
+ }
38
48
  }
39
49
  function startGlobalObservers() {
40
- !ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(entries => {
50
+ if (!ENABLE || globalIntersectionObserver) return;
51
+ globalIntersectionObserver = new IntersectionObserver(entries => {
41
52
  for (let i = 0; i < entries.length; i++) {
42
- const entry = entries[i],
43
- node = entry.target;
44
- IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
53
+ const entry = entries[i];
54
+ const node = entry.target;
55
+ if (IntersectionState.get(node) !== entry.isIntersecting) {
56
+ IntersectionState.set(node, entry.isIntersecting);
57
+ }
45
58
  }
46
59
  }, {
47
60
  threshold: 0
48
- }));
61
+ });
49
62
  }
50
63
  function rectsEqual(a, b) {
51
64
  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
52
65
  }
53
66
  if (ENABLE) {
54
67
  let ensureRectFetchObserver = function () {
55
- return rectFetchObserver || (rectFetchObserver = new IntersectionObserver(entries => {
68
+ if (rectFetchObserver) return rectFetchObserver;
69
+ rectFetchObserver = new IntersectionObserver(entries => {
56
70
  lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
57
- for (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
58
- process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50 && console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries"), rectFetchResolve && (rectFetchResolve(!0), rectFetchResolve = null);
71
+ for (let i = 0; i < entries.length; i++) {
72
+ BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
73
+ }
74
+ if (process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50) {
75
+ console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries");
76
+ }
77
+ if (rectFetchResolve) {
78
+ rectFetchResolve(true);
79
+ rectFetchResolve = null;
80
+ }
59
81
  }, {
60
82
  threshold: 0
61
- }), rectFetchObserver);
83
+ });
84
+ return rectFetchObserver;
62
85
  };
63
86
  const BoundingRects = /* @__PURE__ */new WeakMap();
64
- let rectFetchObserver = null,
65
- rectFetchResolve = null,
66
- rectFetchStartTime = 0,
67
- lastCallbackDelay = 0;
87
+ let rectFetchObserver = null;
88
+ let rectFetchResolve = null;
89
+ let rectFetchStartTime = 0;
90
+ let lastCallbackDelay = 0;
68
91
  async function updateLayoutIfChanged(node) {
69
92
  const onLayout = LayoutHandlers.get(node);
70
- if (typeof onLayout != "function") return;
93
+ if (typeof onLayout !== "function") return;
71
94
  const parentNode = node.parentElement;
72
95
  if (!parentNode) return;
73
- let nodeRect, parentRect;
96
+ let nodeRect;
97
+ let parentRect;
74
98
  if (strategy === "async") {
75
- if (nodeRect = BoundingRects.get(node), parentRect = BoundingRects.get(parentNode), !nodeRect || !parentRect) return;
76
- } else nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
77
- const cachedRect = NodeRectCache.get(node),
78
- cachedParentRect = NodeRectCache.get(parentNode),
79
- nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect),
80
- parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
99
+ nodeRect = BoundingRects.get(node);
100
+ parentRect = BoundingRects.get(parentNode);
101
+ if (!nodeRect || !parentRect) {
102
+ return;
103
+ }
104
+ } else {
105
+ nodeRect = node.getBoundingClientRect();
106
+ parentRect = parentNode.getBoundingClientRect();
107
+ }
108
+ const cachedRect = NodeRectCache.get(node);
109
+ const cachedParentRect = NodeRectCache.get(parentNode);
110
+ const nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);
111
+ const parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
81
112
  if (nodeChanged || parentChanged) {
82
- NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
113
+ NodeRectCache.set(node, nodeRect);
114
+ NodeRectCache.set(parentNode, parentRect);
83
115
  const event = getElementLayoutEvent(nodeRect, parentRect, node);
84
- process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] change", {
85
- tag: node.tagName,
86
- id: node.id || void 0,
87
- className: (node.className || "").slice(0, 60) || void 0,
88
- layout: event.nativeEvent.layout,
89
- first: !cachedRect
90
- }), avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
116
+ if (process.env.NODE_ENV === "development" && isDebugLayout()) {
117
+ console.log("[useElementLayout] change", {
118
+ tag: node.tagName,
119
+ id: node.id || void 0,
120
+ className: (node.className || "").slice(0, 60) || void 0,
121
+ layout: event.nativeEvent.layout,
122
+ first: !cachedRect
123
+ });
124
+ }
125
+ if (avoidUpdates) {
126
+ queuedUpdates.set(node, () => onLayout(event));
127
+ } else {
128
+ onLayout(event);
129
+ }
91
130
  }
92
131
  }
93
- const rAF = typeof requestAnimationFrame < "u" ? requestAnimationFrame : void 0,
94
- userSkipVal = process.env.HANZO_GUI_LAYOUT_FRAME_SKIP,
95
- BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10,
96
- MAX_SKIP_FRAMES = 20;
97
- let skipFrames = BASE_SKIP_FRAMES,
98
- frameCount = 0;
132
+ const rAF = typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : void 0;
133
+ const userSkipVal = process.env.GUI_LAYOUT_FRAME_SKIP;
134
+ const BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;
135
+ const MAX_SKIP_FRAMES = 20;
136
+ let skipFrames = BASE_SKIP_FRAMES;
137
+ let frameCount = 0;
99
138
  async function layoutOnAnimationFrame() {
100
139
  if (frameCount++ % skipFrames !== 0) {
101
140
  rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
102
141
  return;
103
142
  }
104
- if (frameCount >= Number.MAX_SAFE_INTEGER && (frameCount = 0), strategy !== "off") {
105
- const visibleNodes = [],
106
- parentsToObserve = /* @__PURE__ */new Set();
143
+ if (frameCount >= Number.MAX_SAFE_INTEGER) {
144
+ frameCount = 0;
145
+ }
146
+ if (strategy !== "off") {
147
+ const visibleNodes = [];
148
+ const parentsToObserve = /* @__PURE__ */new Set();
107
149
  for (const node of Nodes) {
108
150
  const parentElement = node.parentElement;
109
151
  if (!(parentElement instanceof HTMLElement)) {
@@ -111,135 +153,221 @@ if (ENABLE) {
111
153
  continue;
112
154
  }
113
155
  const disableKey = LayoutDisableKey.get(node);
114
- disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (visibleNodes.push(node), parentsToObserve.add(parentElement));
156
+ if (disableKey && DisableLayoutContextValues[disableKey] === true) continue;
157
+ if (IntersectionState.get(node) === false) continue;
158
+ visibleNodes.push(node);
159
+ parentsToObserve.add(parentElement);
115
160
  }
116
161
  if (visibleNodes.length > 0) {
117
162
  const io = ensureRectFetchObserver();
118
163
  rectFetchStartTime = performance.now();
119
- for (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
120
- for (const parent of parentsToObserve) io.observe(parent);
164
+ for (let i = 0; i < visibleNodes.length; i++) {
165
+ io.observe(visibleNodes[i]);
166
+ }
167
+ for (const parent of parentsToObserve) {
168
+ io.observe(parent);
169
+ }
121
170
  await new Promise(res => {
122
171
  rectFetchResolve = res;
123
172
  });
124
- for (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);
125
- for (const parent of parentsToObserve) io.unobserve(parent);
126
- lastCallbackDelay > 50 ? skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES) : lastCallbackDelay < 20 && (skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES));
127
- for (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);
173
+ for (let i = 0; i < visibleNodes.length; i++) {
174
+ io.unobserve(visibleNodes[i]);
175
+ }
176
+ for (const parent of parentsToObserve) {
177
+ io.unobserve(parent);
178
+ }
179
+ if (lastCallbackDelay > 50) {
180
+ skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);
181
+ } else if (lastCallbackDelay < 20) {
182
+ skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);
183
+ }
184
+ for (let i = 0; i < visibleNodes.length; i++) {
185
+ updateLayoutIfChanged(visibleNodes[i]);
186
+ }
128
187
  }
129
188
  }
130
189
  rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
131
190
  }
132
191
  layoutOnAnimationFrame();
133
192
  }
134
- const getElementLayoutEvent = (nodeRect, parentRect, node) => ({
193
+ const getElementLayoutEvent = (nodeRect, parentRect, node) => {
194
+ return {
135
195
  nativeEvent: {
136
196
  layout: getRelativeDimensions(nodeRect, parentRect, node),
137
197
  target: nodeRect
138
198
  },
139
199
  timeStamp: Date.now()
140
- }),
141
- getPreTransformDimensions = node => ({
200
+ };
201
+ };
202
+ const getPreTransformDimensions = node => {
203
+ return {
142
204
  width: node.offsetWidth,
143
205
  height: node.offsetHeight
144
- }),
145
- getRelativeDimensions = (a, b, aNode) => {
146
- const {
147
- left,
148
- top
149
- } = a,
150
- x = left - b.left,
151
- y = top - b.top,
152
- {
153
- width,
154
- height
155
- } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {
156
- width: a.width,
157
- height: a.height
158
- };
159
- return {
160
- x,
161
- y,
162
- width,
163
- height,
164
- pageX: a.left,
165
- pageY: a.top
166
- };
167
206
  };
207
+ };
208
+ const getRelativeDimensions = (a, b, aNode) => {
209
+ const {
210
+ left,
211
+ top
212
+ } = a;
213
+ const x = left - b.left;
214
+ const y = top - b.top;
215
+ const {
216
+ width,
217
+ height
218
+ } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {
219
+ width: a.width,
220
+ height: a.height
221
+ };
222
+ return {
223
+ x,
224
+ y,
225
+ width,
226
+ height,
227
+ pageX: a.left,
228
+ pageY: a.top
229
+ };
230
+ };
168
231
  function registerLayoutNode(node, onChange, disableKey) {
169
- return Nodes.add(node), LayoutHandlers.set(node, onChange), disableKey && LayoutDisableKey.set(node, disableKey), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node), IntersectionState.set(node, !0)), () => cleanupNode(node);
232
+ Nodes.add(node);
233
+ LayoutHandlers.set(node, onChange);
234
+ if (disableKey) LayoutDisableKey.set(node, disableKey);
235
+ startGlobalObservers();
236
+ if (globalIntersectionObserver) {
237
+ globalIntersectionObserver.observe(node);
238
+ IntersectionState.set(node, true);
239
+ }
240
+ return () => cleanupNode(node);
170
241
  }
171
242
  function cleanupNode(node) {
172
- Nodes.delete(node), LayoutHandlers.delete(node), LayoutDisableKey.delete(node), NodeRectCache.delete(node), IntersectionState.delete(node), globalIntersectionObserver && globalIntersectionObserver.unobserve(node);
243
+ Nodes.delete(node);
244
+ LayoutHandlers.delete(node);
245
+ LayoutDisableKey.delete(node);
246
+ NodeRectCache.delete(node);
247
+ IntersectionState.delete(node);
248
+ if (globalIntersectionObserver) {
249
+ globalIntersectionObserver.unobserve(node);
250
+ }
173
251
  }
174
252
  const PrevHostNode = /* @__PURE__ */new WeakMap();
175
253
  function useElementLayout(ref, onLayout) {
176
- const disableKey = useContext(DisableLayoutContextKey),
177
- node = ensureWebElement(ref.current?.host);
178
- node && onLayout && (LayoutHandlers.set(node, onLayout), LayoutDisableKey.set(node, disableKey)), useIsomorphicLayoutEffect(() => {
254
+ const disableKey = useContext(DisableLayoutContextKey);
255
+ const node = ensureWebElement(ref.current?.host);
256
+ if (node && onLayout) {
257
+ LayoutHandlers.set(node, onLayout);
258
+ LayoutDisableKey.set(node, disableKey);
259
+ }
260
+ useIsomorphicLayoutEffect(() => {
179
261
  if (!onLayout) return;
180
- const nextNode = ensureWebElement(ref.current?.host),
181
- prevNode = PrevHostNode.get(ref);
182
- if (nextNode === prevNode || (prevNode && cleanupNode(prevNode), PrevHostNode.set(ref, nextNode), !nextNode)) return;
183
- Nodes.add(nextNode), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(nextNode), IntersectionState.set(nextNode, !0));
262
+ const nextNode = ensureWebElement(ref.current?.host);
263
+ const prevNode = PrevHostNode.get(ref);
264
+ if (nextNode === prevNode) return;
265
+ if (prevNode) cleanupNode(prevNode);
266
+ PrevHostNode.set(ref, nextNode);
267
+ if (!nextNode) return;
268
+ Nodes.add(nextNode);
269
+ startGlobalObservers();
270
+ if (globalIntersectionObserver) {
271
+ globalIntersectionObserver.observe(nextNode);
272
+ IntersectionState.set(nextNode, true);
273
+ }
184
274
  const handler = LayoutHandlers.get(nextNode);
185
- if (typeof handler != "function") return;
275
+ if (typeof handler !== "function") return;
186
276
  const parentNode = nextNode.parentElement;
187
277
  if (!parentNode) return;
188
- const nodeRect = nextNode.getBoundingClientRect(),
189
- parentRect = parentNode.getBoundingClientRect();
190
- NodeRectCache.set(nextNode, nodeRect), NodeRectCache.set(parentNode, parentRect), handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
191
- }), useIsomorphicLayoutEffect(() => {
278
+ const nodeRect = nextNode.getBoundingClientRect();
279
+ const parentRect = parentNode.getBoundingClientRect();
280
+ NodeRectCache.set(nextNode, nodeRect);
281
+ NodeRectCache.set(parentNode, parentRect);
282
+ handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
283
+ });
284
+ useIsomorphicLayoutEffect(() => {
192
285
  if (!onLayout) return;
193
286
  const node2 = ref.current?.host;
194
287
  if (!node2) return;
195
- Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0)), process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] register", {
196
- tag: node2.tagName,
197
- id: node2.id || void 0,
198
- className: (node2.className || "").slice(0, 60) || void 0,
199
- totalNodes: Nodes.size
200
- });
288
+ Nodes.add(node2);
289
+ startGlobalObservers();
290
+ if (globalIntersectionObserver) {
291
+ globalIntersectionObserver.observe(node2);
292
+ IntersectionState.set(node2, true);
293
+ }
294
+ if (process.env.NODE_ENV === "development" && isDebugLayout()) {
295
+ console.log("[useElementLayout] register", {
296
+ tag: node2.tagName,
297
+ id: node2.id || void 0,
298
+ className: (node2.className || "").slice(0, 60) || void 0,
299
+ totalNodes: Nodes.size
300
+ });
301
+ }
201
302
  const parentNode = node2.parentNode;
202
- return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2)), () => {
303
+ if (parentNode) {
304
+ onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2));
305
+ }
306
+ return () => {
203
307
  cleanupNode(node2);
204
308
  const swappedNode = PrevHostNode.get(ref);
205
- swappedNode && swappedNode !== node2 && cleanupNode(swappedNode), PrevHostNode.delete(ref);
309
+ if (swappedNode && swappedNode !== node2) {
310
+ cleanupNode(swappedNode);
311
+ }
312
+ PrevHostNode.delete(ref);
206
313
  };
207
314
  }, [ref, !!onLayout]);
208
315
  }
209
316
  function ensureWebElement(x) {
210
- if (!(typeof HTMLElement > "u")) return x instanceof HTMLElement ? x : void 0;
317
+ if (typeof HTMLElement === "undefined") {
318
+ return void 0;
319
+ }
320
+ return x instanceof HTMLElement ? x : void 0;
211
321
  }
212
- const getBoundingClientRectAsync = node => new Promise(res => {
213
- if (!node || node.nodeType !== 1) return res(!1);
214
- const io = new IntersectionObserver(entries => (io.disconnect(), res(entries[0].boundingClientRect)), {
322
+ const getBoundingClientRectAsync = node => {
323
+ return new Promise(res => {
324
+ if (!node || node.nodeType !== 1) return res(false);
325
+ const io = new IntersectionObserver(entries => {
326
+ io.disconnect();
327
+ return res(entries[0].boundingClientRect);
328
+ }, {
215
329
  threshold: 0
216
330
  });
217
331
  io.observe(node);
218
- }),
219
- measureNode = async (node, relativeTo) => {
220
- const relativeNode = relativeTo || node?.parentElement;
221
- if (relativeNode instanceof HTMLElement) {
222
- const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
223
- if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);
332
+ });
333
+ };
334
+ const measureNode = async (node, relativeTo) => {
335
+ const relativeNode = relativeTo || node?.parentElement;
336
+ if (relativeNode instanceof HTMLElement) {
337
+ const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
338
+ if (relativeNodeDim && nodeDim) {
339
+ return getRelativeDimensions(nodeDim, relativeNodeDim, node);
224
340
  }
225
- return null;
226
- },
227
- measure = async (node, callback) => {
228
- const out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);
229
- return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
230
- };
341
+ }
342
+ return null;
343
+ };
344
+ const measure = async (node, callback) => {
345
+ const out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);
346
+ if (out) {
347
+ callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);
348
+ }
349
+ return out;
350
+ };
231
351
  function createMeasure(node) {
232
352
  return callback => measure(node, callback);
233
353
  }
234
354
  const measureInWindow = async (node, callback) => {
235
- const out = await measureNode(node, null);
236
- return out && callback?.(out.pageX, out.pageY, out.width, out.height), out;
237
- },
238
- createMeasureInWindow = node => callback => measureInWindow(node, callback),
239
- measureLayout = async (node, relativeNode, callback) => {
240
- const out = await measureNode(node, relativeNode);
241
- return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
242
- };
355
+ const out = await measureNode(node, null);
356
+ if (out) {
357
+ callback?.(out.pageX, out.pageY, out.width, out.height);
358
+ }
359
+ return out;
360
+ };
361
+ const createMeasureInWindow = node => {
362
+ return callback => measureInWindow(node, callback);
363
+ };
364
+ const measureLayout = async (node, relativeNode, callback) => {
365
+ const out = await measureNode(node, relativeNode);
366
+ if (out) {
367
+ callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);
368
+ }
369
+ return out;
370
+ };
243
371
  function createMeasureLayout(node) {
244
372
  return (relativeTo, callback) => measureLayout(node, relativeTo, callback);
245
373
  }