@hanzogui/use-element-layout 3.0.6 → 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.
- package/dist/cjs/index.cjs +284 -154
- package/dist/cjs/index.native.js +353 -226
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +269 -141
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +269 -141
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +338 -213
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +4 -4
- package/types/index.d.ts.map +1 -1
|
@@ -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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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 =
|
|
38
|
+
let avoidUpdates = true;
|
|
35
39
|
const queuedUpdates = /* @__PURE__ */new Map();
|
|
36
40
|
function enable() {
|
|
37
|
-
|
|
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
|
|
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
|
-
|
|
44
|
-
IntersectionState.get(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
|
-
|
|
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++)
|
|
58
|
-
|
|
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
|
-
})
|
|
83
|
+
});
|
|
84
|
+
return rectFetchObserver;
|
|
62
85
|
};
|
|
63
86
|
const BoundingRects = /* @__PURE__ */new WeakMap();
|
|
64
|
-
let rectFetchObserver = null
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
|
93
|
+
if (typeof onLayout !== "function") return;
|
|
71
94
|
const parentNode = node.parentElement;
|
|
72
95
|
if (!parentNode) return;
|
|
73
|
-
let nodeRect
|
|
96
|
+
let nodeRect;
|
|
97
|
+
let parentRect;
|
|
74
98
|
if (strategy === "async") {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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)
|
|
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()
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
let skipFrames = BASE_SKIP_FRAMES
|
|
98
|
-
|
|
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
|
|
105
|
-
|
|
106
|
-
|
|
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] ===
|
|
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++)
|
|
120
|
-
|
|
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++)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
for (
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
178
|
-
node && onLayout
|
|
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
|
-
|
|
182
|
-
if (nextNode === prevNode
|
|
183
|
-
|
|
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
|
|
275
|
+
if (typeof handler !== "function") return;
|
|
186
276
|
const parentNode = nextNode.parentElement;
|
|
187
277
|
if (!parentNode) return;
|
|
188
|
-
const nodeRect = nextNode.getBoundingClientRect()
|
|
189
|
-
|
|
190
|
-
NodeRectCache.set(nextNode, nodeRect)
|
|
191
|
-
|
|
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)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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
|
-
|
|
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
|
|
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 (
|
|
317
|
+
if (typeof HTMLElement === "undefined") {
|
|
318
|
+
return void 0;
|
|
319
|
+
}
|
|
320
|
+
return x instanceof HTMLElement ? x : void 0;
|
|
211
321
|
}
|
|
212
|
-
const getBoundingClientRectAsync = node =>
|
|
213
|
-
|
|
214
|
-
|
|
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
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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
|
}
|