@hanzogui/use-element-layout 3.0.5 → 4.3.1

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