@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.
- package/LICENSE +21 -0
- package/dist/cjs/index.cjs +283 -0
- package/dist/cjs/index.native.js +372 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/esm/index.js +247 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +247 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +333 -0
- package/dist/esm/index.native.js.map +1 -0
- package/package.json +47 -0
- package/src/index.tsx +597 -0
- package/types/index.d.ts +48 -0
- package/types/index.d.ts.map +11 -0
|
@@ -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":[]}
|