@hanzogui/use-element-layout 2.0.0

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.
@@ -0,0 +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":[]}
@@ -0,0 +1,247 @@
1
+ import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
2
+ import { createContext, useContext, useId } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ const LayoutHandlers = /* @__PURE__ */new WeakMap(),
5
+ LayoutDisableKey = /* @__PURE__ */new WeakMap(),
6
+ Nodes = /* @__PURE__ */new Set(),
7
+ IntersectionState = /* @__PURE__ */new WeakMap(),
8
+ usePretransformDimensions = () => globalThis.__HANZO_GUI_ONLAYOUT_PRETRANSFORM === !0 || process.env.HANZO_GUI_ONLAYOUT_PRETRANSFORM === "1";
9
+ let _debugLayout;
10
+ function isDebugLayout() {
11
+ return _debugLayout === void 0 && (_debugLayout = typeof window < "u" && new URLSearchParams(window.location.search).has("__tamaDebugLayout")), _debugLayout;
12
+ }
13
+ const DisableLayoutContextValues = {},
14
+ DisableLayoutContextKey = createContext(""),
15
+ ENABLE = typeof IntersectionObserver < "u",
16
+ LayoutMeasurementController = ({
17
+ disable,
18
+ children
19
+ }) => {
20
+ const id = useId();
21
+ return useIsomorphicLayoutEffect(() => {
22
+ DisableLayoutContextValues[id] = disable;
23
+ }, [disable, id]), /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
24
+ value: id,
25
+ children
26
+ });
27
+ };
28
+ let globalIntersectionObserver = null,
29
+ strategy = "async";
30
+ function setOnLayoutStrategy(state) {
31
+ strategy = state;
32
+ }
33
+ const NodeRectCache = /* @__PURE__ */new WeakMap();
34
+ let avoidUpdates = !0;
35
+ const queuedUpdates = /* @__PURE__ */new Map();
36
+ function enable() {
37
+ avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(cb => cb()), queuedUpdates.clear()));
38
+ }
39
+ function startGlobalObservers() {
40
+ !ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(entries => {
41
+ for (let i = 0; i < entries.length; i++) {
42
+ const entry = entries[i],
43
+ node = entry.target;
44
+ IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
45
+ }
46
+ }, {
47
+ threshold: 0
48
+ }));
49
+ }
50
+ function rectsEqual(a, b) {
51
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
52
+ }
53
+ if (ENABLE) {
54
+ let ensureRectFetchObserver = function () {
55
+ return rectFetchObserver || (rectFetchObserver = new IntersectionObserver(entries => {
56
+ lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
57
+ for (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
58
+ process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50 && console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries"), rectFetchResolve && (rectFetchResolve(!0), rectFetchResolve = null);
59
+ }, {
60
+ threshold: 0
61
+ }), rectFetchObserver);
62
+ };
63
+ const BoundingRects = /* @__PURE__ */new WeakMap();
64
+ let rectFetchObserver = null,
65
+ rectFetchResolve = null,
66
+ rectFetchStartTime = 0,
67
+ lastCallbackDelay = 0;
68
+ async function updateLayoutIfChanged(node) {
69
+ const onLayout = LayoutHandlers.get(node);
70
+ if (typeof onLayout != "function") return;
71
+ const parentNode = node.parentElement;
72
+ if (!parentNode) return;
73
+ let nodeRect, parentRect;
74
+ if (strategy === "async") {
75
+ if (nodeRect = BoundingRects.get(node), parentRect = BoundingRects.get(parentNode), !nodeRect || !parentRect) return;
76
+ } else nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
77
+ const cachedRect = NodeRectCache.get(node),
78
+ cachedParentRect = NodeRectCache.get(parentNode),
79
+ nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect),
80
+ parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
81
+ if (nodeChanged || parentChanged) {
82
+ NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
83
+ const event = getElementLayoutEvent(nodeRect, parentRect, node);
84
+ process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] change", {
85
+ tag: node.tagName,
86
+ id: node.id || void 0,
87
+ className: (node.className || "").slice(0, 60) || void 0,
88
+ layout: event.nativeEvent.layout,
89
+ first: !cachedRect
90
+ }), avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
91
+ }
92
+ }
93
+ const rAF = typeof requestAnimationFrame < "u" ? requestAnimationFrame : void 0,
94
+ userSkipVal = process.env.HANZO_GUI_LAYOUT_FRAME_SKIP,
95
+ BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10,
96
+ MAX_SKIP_FRAMES = 20;
97
+ let skipFrames = BASE_SKIP_FRAMES,
98
+ frameCount = 0;
99
+ async function layoutOnAnimationFrame() {
100
+ if (frameCount++ % skipFrames !== 0) {
101
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
102
+ return;
103
+ }
104
+ if (frameCount >= Number.MAX_SAFE_INTEGER && (frameCount = 0), strategy !== "off") {
105
+ const visibleNodes = [],
106
+ parentsToObserve = /* @__PURE__ */new Set();
107
+ for (const node of Nodes) {
108
+ const parentElement = node.parentElement;
109
+ if (!(parentElement instanceof HTMLElement)) {
110
+ cleanupNode(node);
111
+ continue;
112
+ }
113
+ const disableKey = LayoutDisableKey.get(node);
114
+ disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (visibleNodes.push(node), parentsToObserve.add(parentElement));
115
+ }
116
+ if (visibleNodes.length > 0) {
117
+ const io = ensureRectFetchObserver();
118
+ rectFetchStartTime = performance.now();
119
+ for (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
120
+ for (const parent of parentsToObserve) io.observe(parent);
121
+ await new Promise(res => {
122
+ rectFetchResolve = res;
123
+ });
124
+ for (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);
125
+ for (const parent of parentsToObserve) io.unobserve(parent);
126
+ lastCallbackDelay > 50 ? skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES) : lastCallbackDelay < 20 && (skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES));
127
+ for (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);
128
+ }
129
+ }
130
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
131
+ }
132
+ layoutOnAnimationFrame();
133
+ }
134
+ const getElementLayoutEvent = (nodeRect, parentRect, node) => ({
135
+ nativeEvent: {
136
+ layout: getRelativeDimensions(nodeRect, parentRect, node),
137
+ target: nodeRect
138
+ },
139
+ timeStamp: Date.now()
140
+ }),
141
+ getPreTransformDimensions = node => ({
142
+ width: node.offsetWidth,
143
+ 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
+ };
168
+ function registerLayoutNode(node, onChange, disableKey) {
169
+ return Nodes.add(node), LayoutHandlers.set(node, onChange), disableKey && LayoutDisableKey.set(node, disableKey), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node), IntersectionState.set(node, !0)), () => cleanupNode(node);
170
+ }
171
+ function cleanupNode(node) {
172
+ Nodes.delete(node), LayoutHandlers.delete(node), LayoutDisableKey.delete(node), NodeRectCache.delete(node), IntersectionState.delete(node), globalIntersectionObserver && globalIntersectionObserver.unobserve(node);
173
+ }
174
+ const PrevHostNode = /* @__PURE__ */new WeakMap();
175
+ function useElementLayout(ref, onLayout) {
176
+ const disableKey = useContext(DisableLayoutContextKey),
177
+ node = ensureWebElement(ref.current?.host);
178
+ node && onLayout && (LayoutHandlers.set(node, onLayout), LayoutDisableKey.set(node, disableKey)), useIsomorphicLayoutEffect(() => {
179
+ if (!onLayout) return;
180
+ const nextNode = ensureWebElement(ref.current?.host),
181
+ prevNode = PrevHostNode.get(ref);
182
+ if (nextNode === prevNode || (prevNode && cleanupNode(prevNode), PrevHostNode.set(ref, nextNode), !nextNode)) return;
183
+ Nodes.add(nextNode), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(nextNode), IntersectionState.set(nextNode, !0));
184
+ const handler = LayoutHandlers.get(nextNode);
185
+ if (typeof handler != "function") return;
186
+ const parentNode = nextNode.parentElement;
187
+ if (!parentNode) return;
188
+ const nodeRect = nextNode.getBoundingClientRect(),
189
+ parentRect = parentNode.getBoundingClientRect();
190
+ NodeRectCache.set(nextNode, nodeRect), NodeRectCache.set(parentNode, parentRect), handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
191
+ }), useIsomorphicLayoutEffect(() => {
192
+ if (!onLayout) return;
193
+ const node2 = ref.current?.host;
194
+ if (!node2) return;
195
+ Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0)), process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] register", {
196
+ tag: node2.tagName,
197
+ id: node2.id || void 0,
198
+ className: (node2.className || "").slice(0, 60) || void 0,
199
+ totalNodes: Nodes.size
200
+ });
201
+ const parentNode = node2.parentNode;
202
+ return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2)), () => {
203
+ cleanupNode(node2);
204
+ const swappedNode = PrevHostNode.get(ref);
205
+ swappedNode && swappedNode !== node2 && cleanupNode(swappedNode), PrevHostNode.delete(ref);
206
+ };
207
+ }, [ref, !!onLayout]);
208
+ }
209
+ function ensureWebElement(x) {
210
+ if (!(typeof HTMLElement > "u")) return x instanceof HTMLElement ? x : void 0;
211
+ }
212
+ const getBoundingClientRectAsync = node => new Promise(res => {
213
+ if (!node || node.nodeType !== 1) return res(!1);
214
+ const io = new IntersectionObserver(entries => (io.disconnect(), res(entries[0].boundingClientRect)), {
215
+ threshold: 0
216
+ });
217
+ io.observe(node);
218
+ }),
219
+ measureNode = async (node, relativeTo) => {
220
+ const relativeNode = relativeTo || node?.parentElement;
221
+ if (relativeNode instanceof HTMLElement) {
222
+ const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
223
+ if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);
224
+ }
225
+ return null;
226
+ },
227
+ measure = async (node, callback) => {
228
+ const out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);
229
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
230
+ };
231
+ function createMeasure(node) {
232
+ return callback => measure(node, callback);
233
+ }
234
+ const measureInWindow = async (node, callback) => {
235
+ const out = await measureNode(node, null);
236
+ return out && callback?.(out.pageX, out.pageY, out.width, out.height), out;
237
+ },
238
+ createMeasureInWindow = node => callback => measureInWindow(node, callback),
239
+ measureLayout = async (node, relativeNode, callback) => {
240
+ const out = await measureNode(node, relativeNode);
241
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
242
+ };
243
+ function createMeasureLayout(node) {
244
+ return (relativeTo, callback) => measureLayout(node, relativeTo, callback);
245
+ }
246
+ export { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };
247
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","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","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","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","getElementLayoutEvent","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","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","registerLayoutNode","onChange","delete","PrevHostNode","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","handler","node2","totalNodes","size","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,247 @@
1
+ import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
2
+ import { createContext, useContext, useId } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ const LayoutHandlers = /* @__PURE__ */new WeakMap(),
5
+ LayoutDisableKey = /* @__PURE__ */new WeakMap(),
6
+ Nodes = /* @__PURE__ */new Set(),
7
+ IntersectionState = /* @__PURE__ */new WeakMap(),
8
+ usePretransformDimensions = () => globalThis.__HANZO_GUI_ONLAYOUT_PRETRANSFORM === !0 || process.env.HANZO_GUI_ONLAYOUT_PRETRANSFORM === "1";
9
+ let _debugLayout;
10
+ function isDebugLayout() {
11
+ return _debugLayout === void 0 && (_debugLayout = typeof window < "u" && new URLSearchParams(window.location.search).has("__tamaDebugLayout")), _debugLayout;
12
+ }
13
+ const DisableLayoutContextValues = {},
14
+ DisableLayoutContextKey = createContext(""),
15
+ ENABLE = typeof IntersectionObserver < "u",
16
+ LayoutMeasurementController = ({
17
+ disable,
18
+ children
19
+ }) => {
20
+ const id = useId();
21
+ return useIsomorphicLayoutEffect(() => {
22
+ DisableLayoutContextValues[id] = disable;
23
+ }, [disable, id]), /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
24
+ value: id,
25
+ children
26
+ });
27
+ };
28
+ let globalIntersectionObserver = null,
29
+ strategy = "async";
30
+ function setOnLayoutStrategy(state) {
31
+ strategy = state;
32
+ }
33
+ const NodeRectCache = /* @__PURE__ */new WeakMap();
34
+ let avoidUpdates = !0;
35
+ const queuedUpdates = /* @__PURE__ */new Map();
36
+ function enable() {
37
+ avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(cb => cb()), queuedUpdates.clear()));
38
+ }
39
+ function startGlobalObservers() {
40
+ !ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(entries => {
41
+ for (let i = 0; i < entries.length; i++) {
42
+ const entry = entries[i],
43
+ node = entry.target;
44
+ IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
45
+ }
46
+ }, {
47
+ threshold: 0
48
+ }));
49
+ }
50
+ function rectsEqual(a, b) {
51
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
52
+ }
53
+ if (ENABLE) {
54
+ let ensureRectFetchObserver = function () {
55
+ return rectFetchObserver || (rectFetchObserver = new IntersectionObserver(entries => {
56
+ lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
57
+ for (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
58
+ process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50 && console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries"), rectFetchResolve && (rectFetchResolve(!0), rectFetchResolve = null);
59
+ }, {
60
+ threshold: 0
61
+ }), rectFetchObserver);
62
+ };
63
+ const BoundingRects = /* @__PURE__ */new WeakMap();
64
+ let rectFetchObserver = null,
65
+ rectFetchResolve = null,
66
+ rectFetchStartTime = 0,
67
+ lastCallbackDelay = 0;
68
+ async function updateLayoutIfChanged(node) {
69
+ const onLayout = LayoutHandlers.get(node);
70
+ if (typeof onLayout != "function") return;
71
+ const parentNode = node.parentElement;
72
+ if (!parentNode) return;
73
+ let nodeRect, parentRect;
74
+ if (strategy === "async") {
75
+ if (nodeRect = BoundingRects.get(node), parentRect = BoundingRects.get(parentNode), !nodeRect || !parentRect) return;
76
+ } else nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
77
+ const cachedRect = NodeRectCache.get(node),
78
+ cachedParentRect = NodeRectCache.get(parentNode),
79
+ nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect),
80
+ parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
81
+ if (nodeChanged || parentChanged) {
82
+ NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
83
+ const event = getElementLayoutEvent(nodeRect, parentRect, node);
84
+ process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] change", {
85
+ tag: node.tagName,
86
+ id: node.id || void 0,
87
+ className: (node.className || "").slice(0, 60) || void 0,
88
+ layout: event.nativeEvent.layout,
89
+ first: !cachedRect
90
+ }), avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
91
+ }
92
+ }
93
+ const rAF = typeof requestAnimationFrame < "u" ? requestAnimationFrame : void 0,
94
+ userSkipVal = process.env.HANZO_GUI_LAYOUT_FRAME_SKIP,
95
+ BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10,
96
+ MAX_SKIP_FRAMES = 20;
97
+ let skipFrames = BASE_SKIP_FRAMES,
98
+ frameCount = 0;
99
+ async function layoutOnAnimationFrame() {
100
+ if (frameCount++ % skipFrames !== 0) {
101
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
102
+ return;
103
+ }
104
+ if (frameCount >= Number.MAX_SAFE_INTEGER && (frameCount = 0), strategy !== "off") {
105
+ const visibleNodes = [],
106
+ parentsToObserve = /* @__PURE__ */new Set();
107
+ for (const node of Nodes) {
108
+ const parentElement = node.parentElement;
109
+ if (!(parentElement instanceof HTMLElement)) {
110
+ cleanupNode(node);
111
+ continue;
112
+ }
113
+ const disableKey = LayoutDisableKey.get(node);
114
+ disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (visibleNodes.push(node), parentsToObserve.add(parentElement));
115
+ }
116
+ if (visibleNodes.length > 0) {
117
+ const io = ensureRectFetchObserver();
118
+ rectFetchStartTime = performance.now();
119
+ for (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
120
+ for (const parent of parentsToObserve) io.observe(parent);
121
+ await new Promise(res => {
122
+ rectFetchResolve = res;
123
+ });
124
+ for (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);
125
+ for (const parent of parentsToObserve) io.unobserve(parent);
126
+ lastCallbackDelay > 50 ? skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES) : lastCallbackDelay < 20 && (skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES));
127
+ for (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);
128
+ }
129
+ }
130
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
131
+ }
132
+ layoutOnAnimationFrame();
133
+ }
134
+ const getElementLayoutEvent = (nodeRect, parentRect, node) => ({
135
+ nativeEvent: {
136
+ layout: getRelativeDimensions(nodeRect, parentRect, node),
137
+ target: nodeRect
138
+ },
139
+ timeStamp: Date.now()
140
+ }),
141
+ getPreTransformDimensions = node => ({
142
+ width: node.offsetWidth,
143
+ 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
+ };
168
+ function registerLayoutNode(node, onChange, disableKey) {
169
+ return Nodes.add(node), LayoutHandlers.set(node, onChange), disableKey && LayoutDisableKey.set(node, disableKey), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node), IntersectionState.set(node, !0)), () => cleanupNode(node);
170
+ }
171
+ function cleanupNode(node) {
172
+ Nodes.delete(node), LayoutHandlers.delete(node), LayoutDisableKey.delete(node), NodeRectCache.delete(node), IntersectionState.delete(node), globalIntersectionObserver && globalIntersectionObserver.unobserve(node);
173
+ }
174
+ const PrevHostNode = /* @__PURE__ */new WeakMap();
175
+ function useElementLayout(ref, onLayout) {
176
+ const disableKey = useContext(DisableLayoutContextKey),
177
+ node = ensureWebElement(ref.current?.host);
178
+ node && onLayout && (LayoutHandlers.set(node, onLayout), LayoutDisableKey.set(node, disableKey)), useIsomorphicLayoutEffect(() => {
179
+ if (!onLayout) return;
180
+ const nextNode = ensureWebElement(ref.current?.host),
181
+ prevNode = PrevHostNode.get(ref);
182
+ if (nextNode === prevNode || (prevNode && cleanupNode(prevNode), PrevHostNode.set(ref, nextNode), !nextNode)) return;
183
+ Nodes.add(nextNode), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(nextNode), IntersectionState.set(nextNode, !0));
184
+ const handler = LayoutHandlers.get(nextNode);
185
+ if (typeof handler != "function") return;
186
+ const parentNode = nextNode.parentElement;
187
+ if (!parentNode) return;
188
+ const nodeRect = nextNode.getBoundingClientRect(),
189
+ parentRect = parentNode.getBoundingClientRect();
190
+ NodeRectCache.set(nextNode, nodeRect), NodeRectCache.set(parentNode, parentRect), handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
191
+ }), useIsomorphicLayoutEffect(() => {
192
+ if (!onLayout) return;
193
+ const node2 = ref.current?.host;
194
+ if (!node2) return;
195
+ Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0)), process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] register", {
196
+ tag: node2.tagName,
197
+ id: node2.id || void 0,
198
+ className: (node2.className || "").slice(0, 60) || void 0,
199
+ totalNodes: Nodes.size
200
+ });
201
+ const parentNode = node2.parentNode;
202
+ return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2)), () => {
203
+ cleanupNode(node2);
204
+ const swappedNode = PrevHostNode.get(ref);
205
+ swappedNode && swappedNode !== node2 && cleanupNode(swappedNode), PrevHostNode.delete(ref);
206
+ };
207
+ }, [ref, !!onLayout]);
208
+ }
209
+ function ensureWebElement(x) {
210
+ if (!(typeof HTMLElement > "u")) return x instanceof HTMLElement ? x : void 0;
211
+ }
212
+ const getBoundingClientRectAsync = node => new Promise(res => {
213
+ if (!node || node.nodeType !== 1) return res(!1);
214
+ const io = new IntersectionObserver(entries => (io.disconnect(), res(entries[0].boundingClientRect)), {
215
+ threshold: 0
216
+ });
217
+ io.observe(node);
218
+ }),
219
+ measureNode = async (node, relativeTo) => {
220
+ const relativeNode = relativeTo || node?.parentElement;
221
+ if (relativeNode instanceof HTMLElement) {
222
+ const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
223
+ if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);
224
+ }
225
+ return null;
226
+ },
227
+ measure = async (node, callback) => {
228
+ const out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);
229
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
230
+ };
231
+ function createMeasure(node) {
232
+ return callback => measure(node, callback);
233
+ }
234
+ const measureInWindow = async (node, callback) => {
235
+ const out = await measureNode(node, null);
236
+ return out && callback?.(out.pageX, out.pageY, out.width, out.height), out;
237
+ },
238
+ createMeasureInWindow = node => callback => measureInWindow(node, callback),
239
+ measureLayout = async (node, relativeNode, callback) => {
240
+ const out = await measureNode(node, relativeNode);
241
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
242
+ };
243
+ function createMeasureLayout(node) {
244
+ return (relativeTo, callback) => measureLayout(node, relativeTo, callback);
245
+ }
246
+ export { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };
247
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","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","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","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","getElementLayoutEvent","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","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","registerLayoutNode","onChange","delete","PrevHostNode","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","handler","node2","totalNodes","size","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}