@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,333 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
3
+ import { createContext, useContext, useId } from "react";
4
+ function _instanceof(left, right) {
5
+ return right != null && typeof Symbol < "u" && right[Symbol.hasInstance] ? !!right[Symbol.hasInstance](left) : left instanceof right;
6
+ }
7
+ var LayoutHandlers = /* @__PURE__ */new WeakMap(),
8
+ LayoutDisableKey = /* @__PURE__ */new WeakMap(),
9
+ Nodes = /* @__PURE__ */new Set(),
10
+ IntersectionState = /* @__PURE__ */new WeakMap(),
11
+ usePretransformDimensions = function () {
12
+ return globalThis.__HANZO_GUI_ONLAYOUT_PRETRANSFORM === !0 || process.env.HANZO_GUI_ONLAYOUT_PRETRANSFORM === "1";
13
+ },
14
+ _debugLayout;
15
+ function isDebugLayout() {
16
+ return _debugLayout === void 0 && (_debugLayout = typeof window < "u" && new URLSearchParams(window.location.search).has("__tamaDebugLayout")), _debugLayout;
17
+ }
18
+ var DisableLayoutContextValues = {},
19
+ DisableLayoutContextKey = /* @__PURE__ */createContext(""),
20
+ ENABLE = !1,
21
+ LayoutMeasurementController = function (param) {
22
+ var {
23
+ disable,
24
+ children
25
+ } = param,
26
+ id = useId();
27
+ return useIsomorphicLayoutEffect(function () {
28
+ DisableLayoutContextValues[id] = disable;
29
+ }, [disable, id]), /* @__PURE__ */_jsx(DisableLayoutContextKey.Provider, {
30
+ value: id,
31
+ children
32
+ });
33
+ },
34
+ globalIntersectionObserver = null,
35
+ strategy = "async";
36
+ function setOnLayoutStrategy(state) {
37
+ strategy = state;
38
+ }
39
+ var NodeRectCache = /* @__PURE__ */new WeakMap(),
40
+ avoidUpdates = !0,
41
+ queuedUpdates = /* @__PURE__ */new Map();
42
+ function enable() {
43
+ avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function (cb) {
44
+ return cb();
45
+ }), queuedUpdates.clear()));
46
+ }
47
+ function startGlobalObservers() {
48
+ !ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(function (entries) {
49
+ for (var i = 0; i < entries.length; i++) {
50
+ var entry = entries[i],
51
+ node = entry.target;
52
+ IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
53
+ }
54
+ }, {
55
+ threshold: 0
56
+ }));
57
+ }
58
+ function rectsEqual(a, b) {
59
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
60
+ }
61
+ if (ENABLE) {
62
+ let ensureRectFetchObserver = function () {
63
+ return rectFetchObserver || (rectFetchObserver = new IntersectionObserver(function (entries) {
64
+ lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
65
+ for (var i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
66
+ process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50 && console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries"), rectFetchResolve && (rectFetchResolve(!0), rectFetchResolve = null);
67
+ }, {
68
+ threshold: 0
69
+ }), rectFetchObserver);
70
+ };
71
+ var ensureRectFetchObserver2 = ensureRectFetchObserver,
72
+ BoundingRects = /* @__PURE__ */new WeakMap(),
73
+ rectFetchObserver = null,
74
+ rectFetchResolve = null,
75
+ rectFetchStartTime = 0,
76
+ lastCallbackDelay = 0;
77
+ async function updateLayoutIfChanged(node) {
78
+ var onLayout = LayoutHandlers.get(node);
79
+ if (typeof onLayout == "function") {
80
+ var parentNode = node.parentElement;
81
+ if (parentNode) {
82
+ var nodeRect, parentRect;
83
+ if (strategy === "async") {
84
+ if (nodeRect = BoundingRects.get(node), parentRect = BoundingRects.get(parentNode), !nodeRect || !parentRect) return;
85
+ } else nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
86
+ var cachedRect = NodeRectCache.get(node),
87
+ cachedParentRect = NodeRectCache.get(parentNode),
88
+ nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect),
89
+ parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
90
+ if (nodeChanged || parentChanged) {
91
+ NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
92
+ var event = getElementLayoutEvent(nodeRect, parentRect, node);
93
+ process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] change", {
94
+ tag: node.tagName,
95
+ id: node.id || void 0,
96
+ className: (node.className || "").slice(0, 60) || void 0,
97
+ layout: event.nativeEvent.layout,
98
+ first: !cachedRect
99
+ }), avoidUpdates ? queuedUpdates.set(node, function () {
100
+ return onLayout(event);
101
+ }) : onLayout(event);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ var rAF = typeof requestAnimationFrame < "u" ? requestAnimationFrame : void 0,
107
+ userSkipVal = process.env.HANZO_GUI_LAYOUT_FRAME_SKIP,
108
+ BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10,
109
+ MAX_SKIP_FRAMES = 20,
110
+ skipFrames = BASE_SKIP_FRAMES,
111
+ frameCount = 0;
112
+ async function layoutOnAnimationFrame() {
113
+ if (frameCount++ % skipFrames !== 0) {
114
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
115
+ return;
116
+ }
117
+ if (frameCount >= Number.MAX_SAFE_INTEGER && (frameCount = 0), strategy !== "off") {
118
+ var visibleNodes = [],
119
+ parentsToObserve = /* @__PURE__ */new Set(),
120
+ _iteratorNormalCompletion = !0,
121
+ _didIteratorError = !1,
122
+ _iteratorError = void 0;
123
+ try {
124
+ for (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
125
+ var node = _step.value,
126
+ parentElement = node.parentElement;
127
+ if (!_instanceof(parentElement, HTMLElement)) {
128
+ cleanupNode(node);
129
+ continue;
130
+ }
131
+ var disableKey = LayoutDisableKey.get(node);
132
+ disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (visibleNodes.push(node), parentsToObserve.add(parentElement));
133
+ }
134
+ } catch (err) {
135
+ _didIteratorError = !0, _iteratorError = err;
136
+ } finally {
137
+ try {
138
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
139
+ } finally {
140
+ if (_didIteratorError) throw _iteratorError;
141
+ }
142
+ }
143
+ if (visibleNodes.length > 0) {
144
+ var io = ensureRectFetchObserver();
145
+ rectFetchStartTime = performance.now();
146
+ for (var i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
147
+ var _iteratorNormalCompletion1 = !0,
148
+ _didIteratorError1 = !1,
149
+ _iteratorError1 = void 0;
150
+ try {
151
+ for (var _iterator1 = parentsToObserve[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
152
+ var parent = _step1.value;
153
+ io.observe(parent);
154
+ }
155
+ } catch (err) {
156
+ _didIteratorError1 = !0, _iteratorError1 = err;
157
+ } finally {
158
+ try {
159
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
160
+ } finally {
161
+ if (_didIteratorError1) throw _iteratorError1;
162
+ }
163
+ }
164
+ await new Promise(function (res) {
165
+ rectFetchResolve = res;
166
+ });
167
+ for (var i1 = 0; i1 < visibleNodes.length; i1++) io.unobserve(visibleNodes[i1]);
168
+ var _iteratorNormalCompletion2 = !0,
169
+ _didIteratorError2 = !1,
170
+ _iteratorError2 = void 0;
171
+ try {
172
+ for (var _iterator2 = parentsToObserve[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = !0) {
173
+ var parent1 = _step2.value;
174
+ io.unobserve(parent1);
175
+ }
176
+ } catch (err) {
177
+ _didIteratorError2 = !0, _iteratorError2 = err;
178
+ } finally {
179
+ try {
180
+ !_iteratorNormalCompletion2 && _iterator2.return != null && _iterator2.return();
181
+ } finally {
182
+ if (_didIteratorError2) throw _iteratorError2;
183
+ }
184
+ }
185
+ lastCallbackDelay > 50 ? skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES) : lastCallbackDelay < 20 && (skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES));
186
+ for (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);
187
+ }
188
+ }
189
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
190
+ }
191
+ layoutOnAnimationFrame();
192
+ }
193
+ var getElementLayoutEvent = function (nodeRect, parentRect, node) {
194
+ return {
195
+ nativeEvent: {
196
+ layout: getRelativeDimensions(nodeRect, parentRect, node),
197
+ target: nodeRect
198
+ },
199
+ timeStamp: Date.now()
200
+ };
201
+ },
202
+ getPreTransformDimensions = function (node) {
203
+ return {
204
+ width: node.offsetWidth,
205
+ height: node.offsetHeight
206
+ };
207
+ },
208
+ getRelativeDimensions = function (a, b, aNode) {
209
+ var {
210
+ left,
211
+ top
212
+ } = a,
213
+ x = left - b.left,
214
+ y = top - b.top,
215
+ {
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
+ };
231
+ function registerLayoutNode(node, onChange, disableKey) {
232
+ return Nodes.add(node), LayoutHandlers.set(node, onChange), disableKey && LayoutDisableKey.set(node, disableKey), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node), IntersectionState.set(node, !0)), function () {
233
+ return cleanupNode(node);
234
+ };
235
+ }
236
+ function cleanupNode(node) {
237
+ Nodes.delete(node), LayoutHandlers.delete(node), LayoutDisableKey.delete(node), NodeRectCache.delete(node), IntersectionState.delete(node), globalIntersectionObserver && globalIntersectionObserver.unobserve(node);
238
+ }
239
+ var PrevHostNode = /* @__PURE__ */new WeakMap();
240
+ function useElementLayout(ref, onLayout) {
241
+ var _ref_current,
242
+ disableKey = useContext(DisableLayoutContextKey),
243
+ node = ensureWebElement((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host);
244
+ node && onLayout && (LayoutHandlers.set(node, onLayout), LayoutDisableKey.set(node, disableKey)), useIsomorphicLayoutEffect(function () {
245
+ var _ref_current2;
246
+ if (onLayout) {
247
+ var nextNode = ensureWebElement((_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host),
248
+ prevNode = PrevHostNode.get(ref);
249
+ if (nextNode !== prevNode && (prevNode && cleanupNode(prevNode), PrevHostNode.set(ref, nextNode), !!nextNode)) {
250
+ Nodes.add(nextNode), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(nextNode), IntersectionState.set(nextNode, !0));
251
+ var handler = LayoutHandlers.get(nextNode);
252
+ if (typeof handler == "function") {
253
+ var parentNode = nextNode.parentElement;
254
+ if (parentNode) {
255
+ var nodeRect = nextNode.getBoundingClientRect(),
256
+ parentRect = parentNode.getBoundingClientRect();
257
+ NodeRectCache.set(nextNode, nodeRect), NodeRectCache.set(parentNode, parentRect), handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
258
+ }
259
+ }
260
+ }
261
+ }
262
+ }), useIsomorphicLayoutEffect(function () {
263
+ var _ref_current2;
264
+ if (onLayout) {
265
+ var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
266
+ if (node2) {
267
+ Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0)), process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] register", {
268
+ tag: node2.tagName,
269
+ id: node2.id || void 0,
270
+ className: (node2.className || "").slice(0, 60) || void 0,
271
+ totalNodes: Nodes.size
272
+ });
273
+ var parentNode = node2.parentNode;
274
+ return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2)), function () {
275
+ cleanupNode(node2);
276
+ var swappedNode = PrevHostNode.get(ref);
277
+ swappedNode && swappedNode !== node2 && cleanupNode(swappedNode), PrevHostNode.delete(ref);
278
+ };
279
+ }
280
+ }
281
+ }, [ref, !!onLayout]);
282
+ }
283
+ function ensureWebElement(x) {
284
+ if (!(typeof HTMLElement > "u")) return _instanceof(x, HTMLElement) ? x : void 0;
285
+ }
286
+ var getBoundingClientRectAsync = function (node) {
287
+ return new Promise(function (res) {
288
+ if (!node || node.nodeType !== 1) return res(!1);
289
+ var io = new IntersectionObserver(function (entries) {
290
+ return io.disconnect(), res(entries[0].boundingClientRect);
291
+ }, {
292
+ threshold: 0
293
+ });
294
+ io.observe(node);
295
+ });
296
+ },
297
+ measureNode = async function (node, relativeTo) {
298
+ var relativeNode = relativeTo || node?.parentElement;
299
+ if (_instanceof(relativeNode, HTMLElement)) {
300
+ var [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
301
+ if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);
302
+ }
303
+ return null;
304
+ },
305
+ measure = async function (node, callback) {
306
+ var out = await measureNode(node, _instanceof(node.parentNode, HTMLElement) ? node.parentNode : null);
307
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
308
+ };
309
+ function createMeasure(node) {
310
+ return function (callback) {
311
+ return measure(node, callback);
312
+ };
313
+ }
314
+ var measureInWindow = async function (node, callback) {
315
+ var out = await measureNode(node, null);
316
+ return out && callback?.(out.pageX, out.pageY, out.width, out.height), out;
317
+ },
318
+ createMeasureInWindow = function (node) {
319
+ return function (callback) {
320
+ return measureInWindow(node, callback);
321
+ };
322
+ },
323
+ measureLayout = async function (node, relativeNode, callback) {
324
+ var out = await measureNode(node, relativeNode);
325
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
326
+ };
327
+ function createMeasureLayout(node) {
328
+ return function (relativeTo, callback) {
329
+ return measureLayout(node, relativeTo, callback);
330
+ };
331
+ }
332
+ export { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };
333
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","useIsomorphicLayoutEffect","createContext","useContext","useId","_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","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","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","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","_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","registerLayoutNode","onChange","delete","PrevHostNode","useElementLayout","ref","_ref_current","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","handler","node2","totalNodes","size"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@hanzogui/use-element-layout",
3
+ "version": "2.0.0",
4
+ "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
5
+ "files": [
6
+ "src",
7
+ "types",
8
+ "dist"
9
+ ],
10
+ "type": "module",
11
+ "sideEffects": false,
12
+ "main": "dist/cjs",
13
+ "module": "dist/esm",
14
+ "types": "./types/index.d.ts",
15
+ "exports": {
16
+ "./package.json": "./package.json",
17
+ ".": {
18
+ "types": "./types/index.d.ts",
19
+ "react-native": "./dist/esm/index.native.js",
20
+ "browser": "./dist/esm/index.mjs",
21
+ "module": "./dist/esm/index.mjs",
22
+ "import": "./dist/esm/index.mjs",
23
+ "require": "./dist/cjs/index.cjs",
24
+ "default": "./dist/esm/index.mjs"
25
+ }
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "scripts": {
31
+ "build": "hanzo-gui-build",
32
+ "watch": "hanzo-gui-build --watch",
33
+ "clean": "hanzo-gui-build clean",
34
+ "clean:build": "hanzo-gui-build clean:build"
35
+ },
36
+ "dependencies": {
37
+ "@hanzogui/constants": "workspace:*",
38
+ "@hanzogui/is-equal-shallow": "workspace:*"
39
+ },
40
+ "devDependencies": {
41
+ "@hanzogui/build": "workspace:*",
42
+ "react": ">=19"
43
+ },
44
+ "peerDependencies": {
45
+ "react": ">=19"
46
+ }
47
+ }