@tamagui/use-element-layout 2.7.2 → 2.7.3-1786169532869
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 +30 -17
- package/dist/cjs/index.native.js +30 -17
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +30 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +30 -17
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +30 -17
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +4 -4
- package/src/index.tsx +26 -3
- package/types/index.d.ts.map +2 -2
package/dist/esm/index.mjs
CHANGED
|
@@ -29,8 +29,10 @@ const LayoutMeasurementController = ({
|
|
|
29
29
|
};
|
|
30
30
|
let globalIntersectionObserver = null;
|
|
31
31
|
let strategy = "async";
|
|
32
|
+
let resumeLayoutLoop;
|
|
32
33
|
function setOnLayoutStrategy(state) {
|
|
33
34
|
strategy = state;
|
|
35
|
+
resumeLayoutLoop?.();
|
|
34
36
|
}
|
|
35
37
|
const NodeRectCache = /* @__PURE__ */new WeakMap();
|
|
36
38
|
let avoidUpdates = true;
|
|
@@ -61,20 +63,25 @@ function rectsEqual(a, b) {
|
|
|
61
63
|
}
|
|
62
64
|
if (ENABLE) {
|
|
63
65
|
let ensureRectFetchObserver = function () {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
66
|
+
if (rectFetchObserver) return rectFetchObserver;
|
|
67
|
+
rectFetchObserver = new IntersectionObserver(entries => {
|
|
68
|
+
lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
|
|
69
|
+
for (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
|
|
70
|
+
if (process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50) console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries");
|
|
71
|
+
if (rectFetchResolve) {
|
|
72
|
+
rectFetchResolve(true);
|
|
73
|
+
rectFetchResolve = null;
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
threshold: 0
|
|
77
|
+
});
|
|
78
|
+
return rectFetchObserver;
|
|
79
|
+
},
|
|
80
|
+
scheduleLayoutFrame = function () {
|
|
81
|
+
if (frameScheduled || strategy === "off" || Nodes.size === 0 || document.hidden) return;
|
|
82
|
+
frameScheduled = true;
|
|
83
|
+
rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
|
|
84
|
+
};
|
|
78
85
|
const BoundingRects = /* @__PURE__ */new WeakMap();
|
|
79
86
|
let rectFetchObserver = null;
|
|
80
87
|
let rectFetchResolve = null;
|
|
@@ -102,9 +109,11 @@ if (ENABLE) {
|
|
|
102
109
|
const MAX_SKIP_FRAMES = 20;
|
|
103
110
|
let skipFrames = BASE_SKIP_FRAMES;
|
|
104
111
|
let frameCount = 0;
|
|
112
|
+
let frameScheduled = false;
|
|
105
113
|
async function layoutOnAnimationFrame() {
|
|
106
114
|
if (frameCount++ % skipFrames !== 0) {
|
|
107
|
-
|
|
115
|
+
frameScheduled = false;
|
|
116
|
+
scheduleLayoutFrame();
|
|
108
117
|
return;
|
|
109
118
|
}
|
|
110
119
|
if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
|
|
@@ -137,9 +146,12 @@ if (ENABLE) {
|
|
|
137
146
|
for (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);
|
|
138
147
|
}
|
|
139
148
|
}
|
|
140
|
-
|
|
149
|
+
frameScheduled = false;
|
|
150
|
+
scheduleLayoutFrame();
|
|
141
151
|
}
|
|
142
|
-
|
|
152
|
+
resumeLayoutLoop = scheduleLayoutFrame;
|
|
153
|
+
document.addEventListener("visibilitychange", scheduleLayoutFrame);
|
|
154
|
+
scheduleLayoutFrame();
|
|
143
155
|
}
|
|
144
156
|
const getElementLayoutEvent = (nodeRect, parentRect, node) => {
|
|
145
157
|
return {
|
|
@@ -207,6 +219,7 @@ function observeLayoutNode(node, disableKey) {
|
|
|
207
219
|
globalIntersectionObserver.observe(node);
|
|
208
220
|
IntersectionState.set(node, true);
|
|
209
221
|
}
|
|
222
|
+
resumeLayoutLoop?.();
|
|
210
223
|
}
|
|
211
224
|
function registerLayoutNode(node, onChange, disableKey) {
|
|
212
225
|
LayoutHandlers.set(node, onChange);
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","setOnLayoutStrategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","startGlobalObservers","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","updateLayoutIfChanged","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","rAF","requestAnimationFrame","userSkipVal","TAMAGUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","getElementLayoutEvent","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","registerLayoutNode","onChange","PrevHostNode","emitLayoutSync","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","node2","totalNodes","size","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["index.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useId } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n\nconst LayoutHandlers = /* @__PURE__ */ new WeakMap();\nconst LayoutDisableKey = /* @__PURE__ */ new WeakMap();\nconst Nodes = /* @__PURE__ */ new Set();\nconst IntersectionState = /* @__PURE__ */ new WeakMap();\nconst usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\nlet _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nconst DisableLayoutContextValues = {};\nconst DisableLayoutContextKey = createContext(\"\");\nconst ENABLE = typeof IntersectionObserver !== \"undefined\";\nconst LayoutMeasurementController = ({ disable, children }) => {\n\tconst id = useId();\n\tuseIsomorphicLayoutEffect(() => {\n\t\tDisableLayoutContextValues[id] = disable;\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ jsx(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nlet globalIntersectionObserver = null;\nlet strategy = \"async\";\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n}\nconst NodeRectCache = /* @__PURE__ */ new WeakMap();\nlet avoidUpdates = true;\nconst queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach((cb) => cb());\n\t\t\tqueuedUpdates.clear();\n\t\t}\n\t}\n}\nfunction startGlobalObservers() {\n\tif (!ENABLE || globalIntersectionObserver) return;\n\tglobalIntersectionObserver = new IntersectionObserver((entries) => {\n\t\tfor (let i = 0; i < entries.length; i++) {\n\t\t\tconst entry = entries[i];\n\t\t\tconst node = entry.target;\n\t\t\tif (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);\n\t\t}\n\t}, { threshold: 0 });\n}\nfunction rectsEqual(a, b) {\n\treturn a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\nif (ENABLE) {\n\tlet ensureRectFetchObserver = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver((entries) => {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);\n\t\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout() && lastCallbackDelay > 50) console.warn(\"[onLayout-io-delay]\", lastCallbackDelay + \"ms\", entries.length, \"entries\");\n\t\t\tif (rectFetchResolve) {\n\t\t\t\trectFetchResolve(true);\n\t\t\t\trectFetchResolve = null;\n\t\t\t}\n\t\t}, { threshold: 0 });\n\t\treturn rectFetchObserver;\n\t};\n\tconst BoundingRects = /* @__PURE__ */ new WeakMap();\n\tlet rectFetchObserver = null;\n\tlet rectFetchResolve = null;\n\tlet rectFetchStartTime = 0;\n\tlet lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tconst parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tlet nodeRect;\n\t\tlet parentRect;\n\t\tif (strategy === \"async\") {\n\t\t\tnodeRect = BoundingRects.get(node);\n\t\t\tparentRect = BoundingRects.get(parentNode);\n\t\t\tif (!nodeRect || !parentRect) return;\n\t\t} else {\n\t\t\tnodeRect = node.getBoundingClientRect();\n\t\t\tparentRect = parentNode.getBoundingClientRect();\n\t\t}\n\t\temitLayoutIfChanged(node, parentNode, nodeRect, parentRect);\n\t}\n\tconst rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tconst userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tconst BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tconst MAX_SKIP_FRAMES = 20;\n\tlet skipFrames = BASE_SKIP_FRAMES;\n\tlet frameCount = 0;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t\t\treturn;\n\t\t}\n\t\tif (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;\n\t\tif (strategy !== \"off\") {\n\t\t\tconst visibleNodes = [];\n\t\t\tconst parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tfor (const node of Nodes) {\n\t\t\t\tconst parentElement = node.parentElement;\n\t\t\t\tif (!(parentElement instanceof HTMLElement)) {\n\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst disableKey = LayoutDisableKey.get(node);\n\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\tif (IntersectionState.get(node) === false) continue;\n\t\t\t\tvisibleNodes.push(node);\n\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t}\n\t\t\tif (visibleNodes.length > 0) {\n\t\t\t\tconst io = ensureRectFetchObserver();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.observe(parent);\n\t\t\t\tawait new Promise((res) => {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.unobserve(parent);\n\t\t\t\tif (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);\n\t\t\t\telse if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);\n\t\t\t}\n\t\t}\n\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t}\n\tlayoutOnAnimationFrame();\n}\nconst getElementLayoutEvent = (nodeRect, parentRect, node) => {\n\treturn {\n\t\tnativeEvent: {\n\t\t\tlayout: getRelativeDimensions(nodeRect, parentRect, node),\n\t\t\ttarget: nodeRect\n\t\t},\n\t\ttimeStamp: Date.now()\n\t};\n};\nconst getPreTransformDimensions = (node) => {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nconst getRelativeDimensions = (a, b, aNode) => {\n\tconst { left, top } = a;\n\tconst x = left - b.left;\n\tconst y = top - b.top;\n\tconst { width, height } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {\n\t\twidth: a.width,\n\t\theight: a.height\n\t};\n\treturn {\n\t\tx,\n\t\ty,\n\t\twidth,\n\t\theight,\n\t\tpageX: a.left,\n\t\tpageY: a.top\n\t};\n};\nfunction emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {\n\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst cachedRect = NodeRectCache.get(node);\n\tconst cachedParentRect = NodeRectCache.get(parentNode);\n\tconst nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tconst parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tconst event = getElementLayoutEvent(nodeRect, parentRect, node);\n\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] change\", {\n\t\ttag: node.tagName,\n\t\tid: node.id || void 0,\n\t\tclassName: (node.className || \"\").slice(0, 60) || void 0,\n\t\tlayout: event.nativeEvent.layout,\n\t\tfirst: !cachedRect\n\t});\n\tif (avoidUpdates) queuedUpdates.set(node, () => onLayout(event));\n\telse onLayout(event);\n}\nfunction observeLayoutNode(node, disableKey) {\n\tNodes.add(node);\n\tif (disableKey) LayoutDisableKey.set(node, disableKey);\n\telse LayoutDisableKey.delete(node);\n\tstartGlobalObservers();\n\tif (globalIntersectionObserver) {\n\t\tglobalIntersectionObserver.observe(node);\n\t\tIntersectionState.set(node, true);\n\t}\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn () => cleanupNode(node);\n}\nfunction cleanupNode(node) {\n\tNodes.delete(node);\n\tLayoutHandlers.delete(node);\n\tLayoutDisableKey.delete(node);\n\tNodeRectCache.delete(node);\n\tIntersectionState.delete(node);\n\tif (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);\n}\nconst PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tconst nodeRect = node.getBoundingClientRect();\n\tconst parentRect = parentNode.getBoundingClientRect();\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tonLayout(getElementLayoutEvent(nodeRect, parentRect, node));\n}\nfunction useElementLayout(ref, onLayout) {\n\tconst disableKey = useContext(DisableLayoutContextKey);\n\tconst node = ensureWebElement(ref.current?.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst nextNode = ensureWebElement(ref.current?.host);\n\t\tconst prevNode = PrevHostNode.get(ref);\n\t\tif (nextNode === prevNode) return;\n\t\tif (prevNode) cleanupNode(prevNode);\n\t\tPrevHostNode.set(ref, nextNode);\n\t\tif (!nextNode) return;\n\t\tLayoutHandlers.set(nextNode, onLayout);\n\t\tobserveLayoutNode(nextNode, disableKey);\n\t\temitLayoutSync(nextNode);\n\t});\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst node2 = ref.current?.host;\n\t\tif (!node2) return;\n\t\tLayoutHandlers.set(node2, onLayout);\n\t\tobserveLayoutNode(node2, disableKey);\n\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] register\", {\n\t\t\ttag: node2.tagName,\n\t\t\tid: node2.id || void 0,\n\t\t\tclassName: (node2.className || \"\").slice(0, 60) || void 0,\n\t\t\ttotalNodes: Nodes.size\n\t\t});\n\t\treturn () => {\n\t\t\tcleanupNode(node2);\n\t\t\tconst swappedNode = PrevHostNode.get(ref);\n\t\t\tif (swappedNode && swappedNode !== node2) cleanupNode(swappedNode);\n\t\t\tPrevHostNode.delete(ref);\n\t\t};\n\t}, [ref, !!onLayout]);\n}\nfunction ensureWebElement(x) {\n\tif (typeof HTMLElement === \"undefined\") return;\n\treturn x instanceof HTMLElement ? x : void 0;\n}\nconst getBoundingClientRectAsync = (node) => {\n\treturn new Promise((res) => {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tconst io = new IntersectionObserver((entries) => {\n\t\t\tio.disconnect();\n\t\t\treturn res(entries[0].boundingClientRect);\n\t\t}, { threshold: 0 });\n\t\tio.observe(node);\n\t});\n};\nconst measureNode = async (node, relativeTo) => {\n\tconst relativeNode = relativeTo || node?.parentElement;\n\tif (relativeNode instanceof HTMLElement) {\n\t\tconst [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);\n\t\tif (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);\n\t}\n\treturn null;\n};\nconst measure = async (node, callback) => {\n\tconst out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn (callback) => measure(node, callback);\n}\nconst measureInWindow = async (node, callback) => {\n\tconst out = await measureNode(node, null);\n\tif (out) callback?.(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nconst createMeasureInWindow = (node) => {\n\treturn (callback) => measureInWindow(node, callback);\n};\nconst measureLayout = async (node, relativeNode, callback) => {\n\tconst out = await measureNode(node, relativeNode);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn (relativeTo, callback) => measureLayout(node, relativeTo, callback);\n}\n\nexport { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","resumeLayoutLoop","setOnLayoutStrategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","startGlobalObservers","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","scheduleLayoutFrame","frameScheduled","size","document","hidden","rAF","layoutOnAnimationFrame","setTimeout","updateLayoutIfChanged","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","requestAnimationFrame","userSkipVal","TAMAGUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","addEventListener","getElementLayoutEvent","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","registerLayoutNode","onChange","PrevHostNode","emitLayoutSync","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","node2","totalNodes","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["index.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useId } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n\nconst LayoutHandlers = /* @__PURE__ */ new WeakMap();\nconst LayoutDisableKey = /* @__PURE__ */ new WeakMap();\nconst Nodes = /* @__PURE__ */ new Set();\nconst IntersectionState = /* @__PURE__ */ new WeakMap();\nconst usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\nlet _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nconst DisableLayoutContextValues = {};\nconst DisableLayoutContextKey = createContext(\"\");\nconst ENABLE = typeof IntersectionObserver !== \"undefined\";\nconst LayoutMeasurementController = ({ disable, children }) => {\n\tconst id = useId();\n\tuseIsomorphicLayoutEffect(() => {\n\t\tDisableLayoutContextValues[id] = disable;\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ jsx(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nlet globalIntersectionObserver = null;\nlet strategy = \"async\";\nlet resumeLayoutLoop;\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n\tresumeLayoutLoop?.();\n}\nconst NodeRectCache = /* @__PURE__ */ new WeakMap();\nlet avoidUpdates = true;\nconst queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach((cb) => cb());\n\t\t\tqueuedUpdates.clear();\n\t\t}\n\t}\n}\nfunction startGlobalObservers() {\n\tif (!ENABLE || globalIntersectionObserver) return;\n\tglobalIntersectionObserver = new IntersectionObserver((entries) => {\n\t\tfor (let i = 0; i < entries.length; i++) {\n\t\t\tconst entry = entries[i];\n\t\t\tconst node = entry.target;\n\t\t\tif (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);\n\t\t}\n\t}, { threshold: 0 });\n}\nfunction rectsEqual(a, b) {\n\treturn a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\nif (ENABLE) {\n\tlet ensureRectFetchObserver = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver((entries) => {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);\n\t\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout() && lastCallbackDelay > 50) console.warn(\"[onLayout-io-delay]\", lastCallbackDelay + \"ms\", entries.length, \"entries\");\n\t\t\tif (rectFetchResolve) {\n\t\t\t\trectFetchResolve(true);\n\t\t\t\trectFetchResolve = null;\n\t\t\t}\n\t\t}, { threshold: 0 });\n\t\treturn rectFetchObserver;\n\t}, scheduleLayoutFrame = function() {\n\t\tif (frameScheduled || strategy === \"off\" || Nodes.size === 0 || document.hidden) return;\n\t\tframeScheduled = true;\n\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t};\n\tconst BoundingRects = /* @__PURE__ */ new WeakMap();\n\tlet rectFetchObserver = null;\n\tlet rectFetchResolve = null;\n\tlet rectFetchStartTime = 0;\n\tlet lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tconst parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tlet nodeRect;\n\t\tlet parentRect;\n\t\tif (strategy === \"async\") {\n\t\t\tnodeRect = BoundingRects.get(node);\n\t\t\tparentRect = BoundingRects.get(parentNode);\n\t\t\tif (!nodeRect || !parentRect) return;\n\t\t} else {\n\t\t\tnodeRect = node.getBoundingClientRect();\n\t\t\tparentRect = parentNode.getBoundingClientRect();\n\t\t}\n\t\temitLayoutIfChanged(node, parentNode, nodeRect, parentRect);\n\t}\n\tconst rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tconst userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tconst BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tconst MAX_SKIP_FRAMES = 20;\n\tlet skipFrames = BASE_SKIP_FRAMES;\n\tlet frameCount = 0;\n\tlet frameScheduled = false;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\tframeScheduled = false;\n\t\t\tscheduleLayoutFrame();\n\t\t\treturn;\n\t\t}\n\t\tif (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;\n\t\tif (strategy !== \"off\") {\n\t\t\tconst visibleNodes = [];\n\t\t\tconst parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tfor (const node of Nodes) {\n\t\t\t\tconst parentElement = node.parentElement;\n\t\t\t\tif (!(parentElement instanceof HTMLElement)) {\n\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst disableKey = LayoutDisableKey.get(node);\n\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\tif (IntersectionState.get(node) === false) continue;\n\t\t\t\tvisibleNodes.push(node);\n\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t}\n\t\t\tif (visibleNodes.length > 0) {\n\t\t\t\tconst io = ensureRectFetchObserver();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.observe(parent);\n\t\t\t\tawait new Promise((res) => {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.unobserve(parent);\n\t\t\t\tif (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);\n\t\t\t\telse if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);\n\t\t\t}\n\t\t}\n\t\tframeScheduled = false;\n\t\tscheduleLayoutFrame();\n\t}\n\tresumeLayoutLoop = scheduleLayoutFrame;\n\tdocument.addEventListener(\"visibilitychange\", scheduleLayoutFrame);\n\tscheduleLayoutFrame();\n}\nconst getElementLayoutEvent = (nodeRect, parentRect, node) => {\n\treturn {\n\t\tnativeEvent: {\n\t\t\tlayout: getRelativeDimensions(nodeRect, parentRect, node),\n\t\t\ttarget: nodeRect\n\t\t},\n\t\ttimeStamp: Date.now()\n\t};\n};\nconst getPreTransformDimensions = (node) => {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nconst getRelativeDimensions = (a, b, aNode) => {\n\tconst { left, top } = a;\n\tconst x = left - b.left;\n\tconst y = top - b.top;\n\tconst { width, height } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {\n\t\twidth: a.width,\n\t\theight: a.height\n\t};\n\treturn {\n\t\tx,\n\t\ty,\n\t\twidth,\n\t\theight,\n\t\tpageX: a.left,\n\t\tpageY: a.top\n\t};\n};\nfunction emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {\n\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst cachedRect = NodeRectCache.get(node);\n\tconst cachedParentRect = NodeRectCache.get(parentNode);\n\tconst nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tconst parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tconst event = getElementLayoutEvent(nodeRect, parentRect, node);\n\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] change\", {\n\t\ttag: node.tagName,\n\t\tid: node.id || void 0,\n\t\tclassName: (node.className || \"\").slice(0, 60) || void 0,\n\t\tlayout: event.nativeEvent.layout,\n\t\tfirst: !cachedRect\n\t});\n\tif (avoidUpdates) queuedUpdates.set(node, () => onLayout(event));\n\telse onLayout(event);\n}\nfunction observeLayoutNode(node, disableKey) {\n\tNodes.add(node);\n\tif (disableKey) LayoutDisableKey.set(node, disableKey);\n\telse LayoutDisableKey.delete(node);\n\tstartGlobalObservers();\n\tif (globalIntersectionObserver) {\n\t\tglobalIntersectionObserver.observe(node);\n\t\tIntersectionState.set(node, true);\n\t}\n\tresumeLayoutLoop?.();\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn () => cleanupNode(node);\n}\nfunction cleanupNode(node) {\n\tNodes.delete(node);\n\tLayoutHandlers.delete(node);\n\tLayoutDisableKey.delete(node);\n\tNodeRectCache.delete(node);\n\tIntersectionState.delete(node);\n\tif (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);\n}\nconst PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tconst nodeRect = node.getBoundingClientRect();\n\tconst parentRect = parentNode.getBoundingClientRect();\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tonLayout(getElementLayoutEvent(nodeRect, parentRect, node));\n}\nfunction useElementLayout(ref, onLayout) {\n\tconst disableKey = useContext(DisableLayoutContextKey);\n\tconst node = ensureWebElement(ref.current?.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst nextNode = ensureWebElement(ref.current?.host);\n\t\tconst prevNode = PrevHostNode.get(ref);\n\t\tif (nextNode === prevNode) return;\n\t\tif (prevNode) cleanupNode(prevNode);\n\t\tPrevHostNode.set(ref, nextNode);\n\t\tif (!nextNode) return;\n\t\tLayoutHandlers.set(nextNode, onLayout);\n\t\tobserveLayoutNode(nextNode, disableKey);\n\t\temitLayoutSync(nextNode);\n\t});\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst node2 = ref.current?.host;\n\t\tif (!node2) return;\n\t\tLayoutHandlers.set(node2, onLayout);\n\t\tobserveLayoutNode(node2, disableKey);\n\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] register\", {\n\t\t\ttag: node2.tagName,\n\t\t\tid: node2.id || void 0,\n\t\t\tclassName: (node2.className || \"\").slice(0, 60) || void 0,\n\t\t\ttotalNodes: Nodes.size\n\t\t});\n\t\treturn () => {\n\t\t\tcleanupNode(node2);\n\t\t\tconst swappedNode = PrevHostNode.get(ref);\n\t\t\tif (swappedNode && swappedNode !== node2) cleanupNode(swappedNode);\n\t\t\tPrevHostNode.delete(ref);\n\t\t};\n\t}, [ref, !!onLayout]);\n}\nfunction ensureWebElement(x) {\n\tif (typeof HTMLElement === \"undefined\") return;\n\treturn x instanceof HTMLElement ? x : void 0;\n}\nconst getBoundingClientRectAsync = (node) => {\n\treturn new Promise((res) => {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tconst io = new IntersectionObserver((entries) => {\n\t\t\tio.disconnect();\n\t\t\treturn res(entries[0].boundingClientRect);\n\t\t}, { threshold: 0 });\n\t\tio.observe(node);\n\t});\n};\nconst measureNode = async (node, relativeTo) => {\n\tconst relativeNode = relativeTo || node?.parentElement;\n\tif (relativeNode instanceof HTMLElement) {\n\t\tconst [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);\n\t\tif (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);\n\t}\n\treturn null;\n};\nconst measure = async (node, callback) => {\n\tconst out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn (callback) => measure(node, callback);\n}\nconst measureInWindow = async (node, callback) => {\n\tconst out = await measureNode(node, null);\n\tif (out) callback?.(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nconst createMeasureInWindow = (node) => {\n\treturn (callback) => measureInWindow(node, callback);\n};\nconst measureLayout = async (node, relativeNode, callback) => {\n\tconst out = await measureNode(node, relativeNode);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn (relativeTo, callback) => measureLayout(node, relativeTo, callback);\n}\n\nexport { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -35,8 +35,10 @@ var LayoutMeasurementController = function (param) {
|
|
|
35
35
|
};
|
|
36
36
|
var globalIntersectionObserver = null;
|
|
37
37
|
var strategy = "async";
|
|
38
|
+
var resumeLayoutLoop;
|
|
38
39
|
function setOnLayoutStrategy(state) {
|
|
39
40
|
strategy = state;
|
|
41
|
+
resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
|
|
40
42
|
}
|
|
41
43
|
var NodeRectCache = /* @__PURE__ */new WeakMap();
|
|
42
44
|
var avoidUpdates = true;
|
|
@@ -69,20 +71,25 @@ function rectsEqual(a, b) {
|
|
|
69
71
|
}
|
|
70
72
|
if (ENABLE) {
|
|
71
73
|
let ensureRectFetchObserver2 = function () {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
74
|
+
if (rectFetchObserver) return rectFetchObserver;
|
|
75
|
+
rectFetchObserver = new IntersectionObserver(function (entries) {
|
|
76
|
+
lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
|
|
77
|
+
for (var i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
|
|
78
|
+
if (process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50) console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries");
|
|
79
|
+
if (rectFetchResolve) {
|
|
80
|
+
rectFetchResolve(true);
|
|
81
|
+
rectFetchResolve = null;
|
|
82
|
+
}
|
|
83
|
+
}, {
|
|
84
|
+
threshold: 0
|
|
85
|
+
});
|
|
86
|
+
return rectFetchObserver;
|
|
87
|
+
},
|
|
88
|
+
scheduleLayoutFrame2 = function () {
|
|
89
|
+
if (frameScheduled || strategy === "off" || Nodes.size === 0 || document.hidden) return;
|
|
90
|
+
frameScheduled = true;
|
|
91
|
+
rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
|
|
92
|
+
};
|
|
86
93
|
var BoundingRects = /* @__PURE__ */new WeakMap();
|
|
87
94
|
var rectFetchObserver = null;
|
|
88
95
|
var rectFetchResolve = null;
|
|
@@ -110,9 +117,11 @@ if (ENABLE) {
|
|
|
110
117
|
var MAX_SKIP_FRAMES = 20;
|
|
111
118
|
var skipFrames = BASE_SKIP_FRAMES;
|
|
112
119
|
var frameCount = 0;
|
|
120
|
+
var frameScheduled = false;
|
|
113
121
|
async function layoutOnAnimationFrame() {
|
|
114
122
|
if (frameCount++ % skipFrames !== 0) {
|
|
115
|
-
|
|
123
|
+
frameScheduled = false;
|
|
124
|
+
scheduleLayoutFrame2();
|
|
116
125
|
return;
|
|
117
126
|
}
|
|
118
127
|
if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
|
|
@@ -194,9 +203,12 @@ if (ENABLE) {
|
|
|
194
203
|
for (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);
|
|
195
204
|
}
|
|
196
205
|
}
|
|
197
|
-
|
|
206
|
+
frameScheduled = false;
|
|
207
|
+
scheduleLayoutFrame2();
|
|
198
208
|
}
|
|
199
|
-
|
|
209
|
+
resumeLayoutLoop = scheduleLayoutFrame2;
|
|
210
|
+
document.addEventListener("visibilitychange", scheduleLayoutFrame2);
|
|
211
|
+
scheduleLayoutFrame2();
|
|
200
212
|
}
|
|
201
213
|
var getElementLayoutEvent = function (nodeRect, parentRect, node) {
|
|
202
214
|
return {
|
|
@@ -266,6 +278,7 @@ function observeLayoutNode(node, disableKey) {
|
|
|
266
278
|
globalIntersectionObserver.observe(node);
|
|
267
279
|
IntersectionState.set(node, true);
|
|
268
280
|
}
|
|
281
|
+
resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
|
|
269
282
|
}
|
|
270
283
|
function registerLayoutNode(node, onChange, disableKey) {
|
|
271
284
|
LayoutHandlers.set(node, onChange);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","useIsomorphicLayoutEffect","createContext","useContext","useId","_instanceof","left","right","Symbol","hasInstance","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","LayoutMeasurementController","param","disable","children","id","Provider","value","globalIntersectionObserver","strategy","setOnLayoutStrategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","startGlobalObservers","IntersectionObserver","entries","i","length","entry","node","target","get","isIntersecting","set","threshold","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver2","rectFetchObserver","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","BoundingRects","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","updateLayoutIfChanged","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","rAF","requestAnimationFrame","userSkipVal","TAMAGUI_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","getElementLayoutEvent","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","registerLayoutNode","onChange","PrevHostNode","emitLayoutSync","useElementLayout","ref","_ref_current","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","node2","totalNodes","size","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["index.native.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nimport { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useId } from \"react\";\n\nfunction _instanceof(left, right) {\n\tif (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) return !!right[Symbol.hasInstance](left);\n\telse return left instanceof right;\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\treturn globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\n};\nvar _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nvar DisableLayoutContextValues = {};\nvar DisableLayoutContextKey = /* @__PURE__ */ createContext(\"\");\nvar ENABLE = false;\nvar LayoutMeasurementController = function(param) {\n\tvar { disable, children } = param;\n\tvar id = useId();\n\tuseIsomorphicLayoutEffect(function() {\n\t\tDisableLayoutContextValues[id] = disable;\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ jsx(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nvar globalIntersectionObserver = null;\nvar strategy = \"async\";\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n}\nvar NodeRectCache = /* @__PURE__ */ new WeakMap();\nvar avoidUpdates = true;\nvar queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach(function(cb) {\n\t\t\t\treturn cb();\n\t\t\t});\n\t\t\tqueuedUpdates.clear();\n\t\t}\n\t}\n}\nfunction startGlobalObservers() {\n\tif (!ENABLE || globalIntersectionObserver) return;\n\tglobalIntersectionObserver = new IntersectionObserver(function(entries) {\n\t\tfor (var i = 0; i < entries.length; i++) {\n\t\t\tvar entry = entries[i];\n\t\t\tvar node = entry.target;\n\t\t\tif (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);\n\t\t}\n\t}, { threshold: 0 });\n}\nfunction rectsEqual(a, b) {\n\treturn a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\nif (ENABLE) {\n\tlet ensureRectFetchObserver2 = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver(function(entries) {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (var i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);\n\t\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout() && lastCallbackDelay > 50) console.warn(\"[onLayout-io-delay]\", lastCallbackDelay + \"ms\", entries.length, \"entries\");\n\t\t\tif (rectFetchResolve) {\n\t\t\t\trectFetchResolve(true);\n\t\t\t\trectFetchResolve = null;\n\t\t\t}\n\t\t}, { threshold: 0 });\n\t\treturn rectFetchObserver;\n\t};\n\tvar BoundingRects = /* @__PURE__ */ new WeakMap();\n\tvar rectFetchObserver = null;\n\tvar rectFetchResolve = null;\n\tvar rectFetchStartTime = 0;\n\tvar lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tvar parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tvar nodeRect;\n\t\tvar parentRect;\n\t\tif (strategy === \"async\") {\n\t\t\tnodeRect = BoundingRects.get(node);\n\t\t\tparentRect = BoundingRects.get(parentNode);\n\t\t\tif (!nodeRect || !parentRect) return;\n\t\t} else {\n\t\t\tnodeRect = node.getBoundingClientRect();\n\t\t\tparentRect = parentNode.getBoundingClientRect();\n\t\t}\n\t\temitLayoutIfChanged(node, parentNode, nodeRect, parentRect);\n\t}\n\tvar rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tvar userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tvar BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tvar MAX_SKIP_FRAMES = 20;\n\tvar skipFrames = BASE_SKIP_FRAMES;\n\tvar frameCount = 0;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t\t\treturn;\n\t\t}\n\t\tif (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;\n\t\tif (strategy !== \"off\") {\n\t\t\tvar visibleNodes = [];\n\t\t\tvar parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar node = _step.value;\n\t\t\t\t\tvar parentElement = node.parentElement;\n\t\t\t\t\tif (!_instanceof(parentElement, HTMLElement)) {\n\t\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvar disableKey = LayoutDisableKey.get(node);\n\t\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\t\tif (IntersectionState.get(node) === false) continue;\n\t\t\t\t\tvisibleNodes.push(node);\n\t\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (visibleNodes.length > 0) {\n\t\t\t\tvar io = ensureRectFetchObserver2();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (var i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);\n\t\t\t\tvar _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator1 = parentsToObserve[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n\t\t\t\t\t\tvar parent = _step1.value;\n\t\t\t\t\t\tio.observe(parent);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError1 = true;\n\t\t\t\t\t_iteratorError1 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError1) throw _iteratorError1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait new Promise(function(res) {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (var i1 = 0; i1 < visibleNodes.length; i1++) io.unobserve(visibleNodes[i1]);\n\t\t\t\tvar _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator2 = parentsToObserve[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\t\tvar parent1 = _step2.value;\n\t\t\t\t\t\tio.unobserve(parent1);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t\t_iteratorError2 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return != null) _iterator2.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError2) throw _iteratorError2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);\n\t\t\t\telse if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);\n\t\t\t\tfor (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);\n\t\t\t}\n\t\t}\n\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t}\n\tlayoutOnAnimationFrame();\n}\nvar getElementLayoutEvent = function(nodeRect, parentRect, node) {\n\treturn {\n\t\tnativeEvent: {\n\t\t\tlayout: getRelativeDimensions(nodeRect, parentRect, node),\n\t\t\ttarget: nodeRect\n\t\t},\n\t\ttimeStamp: Date.now()\n\t};\n};\nvar getPreTransformDimensions = function(node) {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nvar getRelativeDimensions = function(a, b, aNode) {\n\tvar { left, top } = a;\n\tvar x = left - b.left;\n\tvar y = top - b.top;\n\tvar { width, height } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {\n\t\twidth: a.width,\n\t\theight: a.height\n\t};\n\treturn {\n\t\tx,\n\t\ty,\n\t\twidth,\n\t\theight,\n\t\tpageX: a.left,\n\t\tpageY: a.top\n\t};\n};\nfunction emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar cachedRect = NodeRectCache.get(node);\n\tvar cachedParentRect = NodeRectCache.get(parentNode);\n\tvar nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tvar parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tvar event = getElementLayoutEvent(nodeRect, parentRect, node);\n\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] change\", {\n\t\ttag: node.tagName,\n\t\tid: node.id || void 0,\n\t\tclassName: (node.className || \"\").slice(0, 60) || void 0,\n\t\tlayout: event.nativeEvent.layout,\n\t\tfirst: !cachedRect\n\t});\n\tif (avoidUpdates) queuedUpdates.set(node, function() {\n\t\treturn onLayout(event);\n\t});\n\telse onLayout(event);\n}\nfunction observeLayoutNode(node, disableKey) {\n\tNodes.add(node);\n\tif (disableKey) LayoutDisableKey.set(node, disableKey);\n\telse LayoutDisableKey.delete(node);\n\tstartGlobalObservers();\n\tif (globalIntersectionObserver) {\n\t\tglobalIntersectionObserver.observe(node);\n\t\tIntersectionState.set(node, true);\n\t}\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn function() {\n\t\treturn cleanupNode(node);\n\t};\n}\nfunction cleanupNode(node) {\n\tNodes.delete(node);\n\tLayoutHandlers.delete(node);\n\tLayoutDisableKey.delete(node);\n\tNodeRectCache.delete(node);\n\tIntersectionState.delete(node);\n\tif (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);\n}\nvar PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tvar nodeRect = node.getBoundingClientRect();\n\tvar parentRect = parentNode.getBoundingClientRect();\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tonLayout(getElementLayoutEvent(nodeRect, parentRect, node));\n}\nfunction useElementLayout(ref, onLayout) {\n\tvar _ref_current;\n\tvar disableKey = useContext(DisableLayoutContextKey);\n\tvar node = ensureWebElement((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\tuseIsomorphicLayoutEffect(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar nextNode = ensureWebElement((_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host);\n\t\tvar prevNode = PrevHostNode.get(ref);\n\t\tif (nextNode === prevNode) return;\n\t\tif (prevNode) cleanupNode(prevNode);\n\t\tPrevHostNode.set(ref, nextNode);\n\t\tif (!nextNode) return;\n\t\tLayoutHandlers.set(nextNode, onLayout);\n\t\tobserveLayoutNode(nextNode, disableKey);\n\t\temitLayoutSync(nextNode);\n\t});\n\tuseIsomorphicLayoutEffect(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;\n\t\tif (!node2) return;\n\t\tLayoutHandlers.set(node2, onLayout);\n\t\tobserveLayoutNode(node2, disableKey);\n\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] register\", {\n\t\t\ttag: node2.tagName,\n\t\t\tid: node2.id || void 0,\n\t\t\tclassName: (node2.className || \"\").slice(0, 60) || void 0,\n\t\t\ttotalNodes: Nodes.size\n\t\t});\n\t\treturn function() {\n\t\t\tcleanupNode(node2);\n\t\t\tvar swappedNode = PrevHostNode.get(ref);\n\t\t\tif (swappedNode && swappedNode !== node2) cleanupNode(swappedNode);\n\t\t\tPrevHostNode.delete(ref);\n\t\t};\n\t}, [ref, !!onLayout]);\n}\nfunction ensureWebElement(x) {\n\tif (typeof HTMLElement === \"undefined\") return;\n\treturn _instanceof(x, HTMLElement) ? x : void 0;\n}\nvar getBoundingClientRectAsync = function(node) {\n\treturn new Promise(function(res) {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tvar io = new IntersectionObserver(function(entries) {\n\t\t\tio.disconnect();\n\t\t\treturn res(entries[0].boundingClientRect);\n\t\t}, { threshold: 0 });\n\t\tio.observe(node);\n\t});\n};\nvar measureNode = async function(node, relativeTo) {\n\tvar relativeNode = relativeTo || (node === null || node === void 0 ? void 0 : node.parentElement);\n\tif (_instanceof(relativeNode, HTMLElement)) {\n\t\tvar [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);\n\t\tif (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);\n\t}\n\treturn null;\n};\nvar measure = async function(node, callback) {\n\tvar out = await measureNode(node, _instanceof(node.parentNode, HTMLElement) ? node.parentNode : null);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn function(callback) {\n\t\treturn measure(node, callback);\n\t};\n}\nvar measureInWindow = async function(node, callback) {\n\tvar out = await measureNode(node, null);\n\tif (out) callback === null || callback === void 0 || callback(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nvar createMeasureInWindow = function(node) {\n\treturn function(callback) {\n\t\treturn measureInWindow(node, callback);\n\t};\n};\nvar measureLayout = async function(node, relativeNode, callback) {\n\tvar out = await measureNode(node, relativeNode);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn function(relativeTo, callback) {\n\t\treturn measureLayout(node, relativeTo, callback);\n\t};\n}\n\nexport { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["jsx","useIsomorphicLayoutEffect","createContext","useContext","useId","_instanceof","left","right","Symbol","hasInstance","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","LayoutMeasurementController","param","disable","children","id","Provider","value","globalIntersectionObserver","strategy","resumeLayoutLoop","setOnLayoutStrategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","startGlobalObservers","IntersectionObserver","entries","i","length","entry","node","target","get","isIntersecting","set","threshold","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver2","rectFetchObserver","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","BoundingRects","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","scheduleLayoutFrame2","frameScheduled","size","document","hidden","rAF","layoutOnAnimationFrame","setTimeout","updateLayoutIfChanged","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","requestAnimationFrame","userSkipVal","TAMAGUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","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","addEventListener","getElementLayoutEvent","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","registerLayoutNode","onChange","PrevHostNode","emitLayoutSync","useElementLayout","ref","_ref_current","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","node2","totalNodes","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["index.native.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nimport { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useId } from \"react\";\n\nfunction _instanceof(left, right) {\n\tif (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) return !!right[Symbol.hasInstance](left);\n\telse return left instanceof right;\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\treturn globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\n};\nvar _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nvar DisableLayoutContextValues = {};\nvar DisableLayoutContextKey = /* @__PURE__ */ createContext(\"\");\nvar ENABLE = false;\nvar LayoutMeasurementController = function(param) {\n\tvar { disable, children } = param;\n\tvar id = useId();\n\tuseIsomorphicLayoutEffect(function() {\n\t\tDisableLayoutContextValues[id] = disable;\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ jsx(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nvar globalIntersectionObserver = null;\nvar strategy = \"async\";\nvar resumeLayoutLoop;\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n\tresumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();\n}\nvar NodeRectCache = /* @__PURE__ */ new WeakMap();\nvar avoidUpdates = true;\nvar queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach(function(cb) {\n\t\t\t\treturn cb();\n\t\t\t});\n\t\t\tqueuedUpdates.clear();\n\t\t}\n\t}\n}\nfunction startGlobalObservers() {\n\tif (!ENABLE || globalIntersectionObserver) return;\n\tglobalIntersectionObserver = new IntersectionObserver(function(entries) {\n\t\tfor (var i = 0; i < entries.length; i++) {\n\t\t\tvar entry = entries[i];\n\t\t\tvar node = entry.target;\n\t\t\tif (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);\n\t\t}\n\t}, { threshold: 0 });\n}\nfunction rectsEqual(a, b) {\n\treturn a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\nif (ENABLE) {\n\tlet ensureRectFetchObserver2 = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver(function(entries) {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (var i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);\n\t\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout() && lastCallbackDelay > 50) console.warn(\"[onLayout-io-delay]\", lastCallbackDelay + \"ms\", entries.length, \"entries\");\n\t\t\tif (rectFetchResolve) {\n\t\t\t\trectFetchResolve(true);\n\t\t\t\trectFetchResolve = null;\n\t\t\t}\n\t\t}, { threshold: 0 });\n\t\treturn rectFetchObserver;\n\t}, scheduleLayoutFrame2 = function() {\n\t\tif (frameScheduled || strategy === \"off\" || Nodes.size === 0 || document.hidden) return;\n\t\tframeScheduled = true;\n\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t};\n\tvar BoundingRects = /* @__PURE__ */ new WeakMap();\n\tvar rectFetchObserver = null;\n\tvar rectFetchResolve = null;\n\tvar rectFetchStartTime = 0;\n\tvar lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tvar parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tvar nodeRect;\n\t\tvar parentRect;\n\t\tif (strategy === \"async\") {\n\t\t\tnodeRect = BoundingRects.get(node);\n\t\t\tparentRect = BoundingRects.get(parentNode);\n\t\t\tif (!nodeRect || !parentRect) return;\n\t\t} else {\n\t\t\tnodeRect = node.getBoundingClientRect();\n\t\t\tparentRect = parentNode.getBoundingClientRect();\n\t\t}\n\t\temitLayoutIfChanged(node, parentNode, nodeRect, parentRect);\n\t}\n\tvar rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tvar userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tvar BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tvar MAX_SKIP_FRAMES = 20;\n\tvar skipFrames = BASE_SKIP_FRAMES;\n\tvar frameCount = 0;\n\tvar frameScheduled = false;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\tframeScheduled = false;\n\t\t\tscheduleLayoutFrame2();\n\t\t\treturn;\n\t\t}\n\t\tif (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;\n\t\tif (strategy !== \"off\") {\n\t\t\tvar visibleNodes = [];\n\t\t\tvar parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar node = _step.value;\n\t\t\t\t\tvar parentElement = node.parentElement;\n\t\t\t\t\tif (!_instanceof(parentElement, HTMLElement)) {\n\t\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvar disableKey = LayoutDisableKey.get(node);\n\t\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\t\tif (IntersectionState.get(node) === false) continue;\n\t\t\t\t\tvisibleNodes.push(node);\n\t\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (visibleNodes.length > 0) {\n\t\t\t\tvar io = ensureRectFetchObserver2();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (var i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);\n\t\t\t\tvar _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator1 = parentsToObserve[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n\t\t\t\t\t\tvar parent = _step1.value;\n\t\t\t\t\t\tio.observe(parent);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError1 = true;\n\t\t\t\t\t_iteratorError1 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError1) throw _iteratorError1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait new Promise(function(res) {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (var i1 = 0; i1 < visibleNodes.length; i1++) io.unobserve(visibleNodes[i1]);\n\t\t\t\tvar _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator2 = parentsToObserve[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\t\tvar parent1 = _step2.value;\n\t\t\t\t\t\tio.unobserve(parent1);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t\t_iteratorError2 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return != null) _iterator2.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError2) throw _iteratorError2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);\n\t\t\t\telse if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);\n\t\t\t\tfor (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);\n\t\t\t}\n\t\t}\n\t\tframeScheduled = false;\n\t\tscheduleLayoutFrame2();\n\t}\n\tresumeLayoutLoop = scheduleLayoutFrame2;\n\tdocument.addEventListener(\"visibilitychange\", scheduleLayoutFrame2);\n\tscheduleLayoutFrame2();\n}\nvar getElementLayoutEvent = function(nodeRect, parentRect, node) {\n\treturn {\n\t\tnativeEvent: {\n\t\t\tlayout: getRelativeDimensions(nodeRect, parentRect, node),\n\t\t\ttarget: nodeRect\n\t\t},\n\t\ttimeStamp: Date.now()\n\t};\n};\nvar getPreTransformDimensions = function(node) {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nvar getRelativeDimensions = function(a, b, aNode) {\n\tvar { left, top } = a;\n\tvar x = left - b.left;\n\tvar y = top - b.top;\n\tvar { width, height } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {\n\t\twidth: a.width,\n\t\theight: a.height\n\t};\n\treturn {\n\t\tx,\n\t\ty,\n\t\twidth,\n\t\theight,\n\t\tpageX: a.left,\n\t\tpageY: a.top\n\t};\n};\nfunction emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar cachedRect = NodeRectCache.get(node);\n\tvar cachedParentRect = NodeRectCache.get(parentNode);\n\tvar nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tvar parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tvar event = getElementLayoutEvent(nodeRect, parentRect, node);\n\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] change\", {\n\t\ttag: node.tagName,\n\t\tid: node.id || void 0,\n\t\tclassName: (node.className || \"\").slice(0, 60) || void 0,\n\t\tlayout: event.nativeEvent.layout,\n\t\tfirst: !cachedRect\n\t});\n\tif (avoidUpdates) queuedUpdates.set(node, function() {\n\t\treturn onLayout(event);\n\t});\n\telse onLayout(event);\n}\nfunction observeLayoutNode(node, disableKey) {\n\tNodes.add(node);\n\tif (disableKey) LayoutDisableKey.set(node, disableKey);\n\telse LayoutDisableKey.delete(node);\n\tstartGlobalObservers();\n\tif (globalIntersectionObserver) {\n\t\tglobalIntersectionObserver.observe(node);\n\t\tIntersectionState.set(node, true);\n\t}\n\tresumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn function() {\n\t\treturn cleanupNode(node);\n\t};\n}\nfunction cleanupNode(node) {\n\tNodes.delete(node);\n\tLayoutHandlers.delete(node);\n\tLayoutDisableKey.delete(node);\n\tNodeRectCache.delete(node);\n\tIntersectionState.delete(node);\n\tif (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);\n}\nvar PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tvar nodeRect = node.getBoundingClientRect();\n\tvar parentRect = parentNode.getBoundingClientRect();\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tonLayout(getElementLayoutEvent(nodeRect, parentRect, node));\n}\nfunction useElementLayout(ref, onLayout) {\n\tvar _ref_current;\n\tvar disableKey = useContext(DisableLayoutContextKey);\n\tvar node = ensureWebElement((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\tuseIsomorphicLayoutEffect(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar nextNode = ensureWebElement((_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host);\n\t\tvar prevNode = PrevHostNode.get(ref);\n\t\tif (nextNode === prevNode) return;\n\t\tif (prevNode) cleanupNode(prevNode);\n\t\tPrevHostNode.set(ref, nextNode);\n\t\tif (!nextNode) return;\n\t\tLayoutHandlers.set(nextNode, onLayout);\n\t\tobserveLayoutNode(nextNode, disableKey);\n\t\temitLayoutSync(nextNode);\n\t});\n\tuseIsomorphicLayoutEffect(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;\n\t\tif (!node2) return;\n\t\tLayoutHandlers.set(node2, onLayout);\n\t\tobserveLayoutNode(node2, disableKey);\n\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] register\", {\n\t\t\ttag: node2.tagName,\n\t\t\tid: node2.id || void 0,\n\t\t\tclassName: (node2.className || \"\").slice(0, 60) || void 0,\n\t\t\ttotalNodes: Nodes.size\n\t\t});\n\t\treturn function() {\n\t\t\tcleanupNode(node2);\n\t\t\tvar swappedNode = PrevHostNode.get(ref);\n\t\t\tif (swappedNode && swappedNode !== node2) cleanupNode(swappedNode);\n\t\t\tPrevHostNode.delete(ref);\n\t\t};\n\t}, [ref, !!onLayout]);\n}\nfunction ensureWebElement(x) {\n\tif (typeof HTMLElement === \"undefined\") return;\n\treturn _instanceof(x, HTMLElement) ? x : void 0;\n}\nvar getBoundingClientRectAsync = function(node) {\n\treturn new Promise(function(res) {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tvar io = new IntersectionObserver(function(entries) {\n\t\t\tio.disconnect();\n\t\t\treturn res(entries[0].boundingClientRect);\n\t\t}, { threshold: 0 });\n\t\tio.observe(node);\n\t});\n};\nvar measureNode = async function(node, relativeTo) {\n\tvar relativeNode = relativeTo || (node === null || node === void 0 ? void 0 : node.parentElement);\n\tif (_instanceof(relativeNode, HTMLElement)) {\n\t\tvar [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);\n\t\tif (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);\n\t}\n\treturn null;\n};\nvar measure = async function(node, callback) {\n\tvar out = await measureNode(node, _instanceof(node.parentNode, HTMLElement) ? node.parentNode : null);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn function(callback) {\n\t\treturn measure(node, callback);\n\t};\n}\nvar measureInWindow = async function(node, callback) {\n\tvar out = await measureNode(node, null);\n\tif (out) callback === null || callback === void 0 || callback(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nvar createMeasureInWindow = function(node) {\n\treturn function(callback) {\n\t\treturn measureInWindow(node, callback);\n\t};\n};\nvar measureLayout = async function(node, relativeNode, callback) {\n\tvar out = await measureNode(node, relativeNode);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn function(relativeTo, callback) {\n\t\treturn measureLayout(node, relativeTo, callback);\n\t};\n}\n\nexport { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/use-element-layout",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.3-1786169532869",
|
|
4
4
|
"gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"clean:build": "tamagui-build clean:build"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@tamagui/constants": "2.7.
|
|
38
|
-
"@tamagui/is-equal-shallow": "2.7.
|
|
37
|
+
"@tamagui/constants": "2.7.3-1786169532869",
|
|
38
|
+
"@tamagui/is-equal-shallow": "2.7.3-1786169532869"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@tamagui/build": "2.7.
|
|
41
|
+
"@tamagui/build": "2.7.3-1786169532869",
|
|
42
42
|
"react": ">=19"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
package/src/index.tsx
CHANGED
|
@@ -65,8 +65,14 @@ type LayoutMeasurementStrategy = 'off' | 'sync' | 'async'
|
|
|
65
65
|
|
|
66
66
|
let strategy: LayoutMeasurementStrategy = 'async'
|
|
67
67
|
|
|
68
|
+
// the measurement loop parks itself whenever it provably has nothing to do: no
|
|
69
|
+
// registered nodes, a hidden document, or measurement turned off. these are the
|
|
70
|
+
// only three ways work can reappear, so each one restarts it.
|
|
71
|
+
let resumeLayoutLoop: (() => void) | undefined
|
|
72
|
+
|
|
68
73
|
export function setOnLayoutStrategy(state: LayoutMeasurementStrategy): void {
|
|
69
74
|
strategy = state
|
|
75
|
+
resumeLayoutLoop?.()
|
|
70
76
|
}
|
|
71
77
|
|
|
72
78
|
export type LayoutValue = {
|
|
@@ -209,10 +215,23 @@ if (ENABLE) {
|
|
|
209
215
|
let skipFrames = BASE_SKIP_FRAMES
|
|
210
216
|
let frameCount = 0
|
|
211
217
|
|
|
218
|
+
// stays true across the await below so a node registering mid-cycle cannot
|
|
219
|
+
// start a second concurrent loop
|
|
220
|
+
let frameScheduled = false
|
|
221
|
+
|
|
222
|
+
function scheduleLayoutFrame() {
|
|
223
|
+
if (frameScheduled || strategy === 'off' || Nodes.size === 0 || document.hidden) {
|
|
224
|
+
return
|
|
225
|
+
}
|
|
226
|
+
frameScheduled = true
|
|
227
|
+
rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16)
|
|
228
|
+
}
|
|
229
|
+
|
|
212
230
|
async function layoutOnAnimationFrame() {
|
|
213
231
|
// skip frames based on adaptive rate
|
|
214
232
|
if (frameCount++ % skipFrames !== 0) {
|
|
215
|
-
|
|
233
|
+
frameScheduled = false
|
|
234
|
+
scheduleLayoutFrame()
|
|
216
235
|
return
|
|
217
236
|
}
|
|
218
237
|
|
|
@@ -283,10 +302,13 @@ if (ENABLE) {
|
|
|
283
302
|
}
|
|
284
303
|
|
|
285
304
|
// schedule next frame
|
|
286
|
-
|
|
305
|
+
frameScheduled = false
|
|
306
|
+
scheduleLayoutFrame()
|
|
287
307
|
}
|
|
288
308
|
|
|
289
|
-
|
|
309
|
+
resumeLayoutLoop = scheduleLayoutFrame
|
|
310
|
+
document.addEventListener('visibilitychange', scheduleLayoutFrame)
|
|
311
|
+
scheduleLayoutFrame()
|
|
290
312
|
}
|
|
291
313
|
|
|
292
314
|
export const getElementLayoutEvent = (
|
|
@@ -388,6 +410,7 @@ function observeLayoutNode(node: HTMLElement, disableKey?: string) {
|
|
|
388
410
|
globalIntersectionObserver.observe(node)
|
|
389
411
|
IntersectionState.set(node, true)
|
|
390
412
|
}
|
|
413
|
+
resumeLayoutLoop?.()
|
|
391
414
|
}
|
|
392
415
|
|
|
393
416
|
// register an arbitrary DOM element into the measurement loop without React lifecycle
|