@tamagui/use-element-layout 2.7.3-1786169532869 → 2.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +13 -28
- package/dist/cjs/index.native.js +13 -28
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +13 -28
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +13 -28
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +13 -28
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +4 -4
- package/src/index.tsx +29 -44
- package/types/index.d.ts.map +2 -2
package/dist/cjs/index.cjs
CHANGED
|
@@ -44,7 +44,6 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
44
44
|
const LayoutHandlers = /* @__PURE__ */new WeakMap();
|
|
45
45
|
const LayoutDisableKey = /* @__PURE__ */new WeakMap();
|
|
46
46
|
const Nodes = /* @__PURE__ */new Set();
|
|
47
|
-
const IntersectionState = /* @__PURE__ */new WeakMap();
|
|
48
47
|
const usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === "1";
|
|
49
48
|
let _debugLayout;
|
|
50
49
|
function isDebugLayout() {
|
|
@@ -60,16 +59,18 @@ const LayoutMeasurementController = ({
|
|
|
60
59
|
}) => {
|
|
61
60
|
const id = (0, import_react.useId)();
|
|
62
61
|
(0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
62
|
+
const wasDisabled = DisableLayoutContextValues[id] === true;
|
|
63
63
|
DisableLayoutContextValues[id] = disable;
|
|
64
|
+
if (wasDisabled && !disable) measureOnNextFrame?.();
|
|
64
65
|
}, [disable, id]);
|
|
65
66
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DisableLayoutContextKey.Provider, {
|
|
66
67
|
value: id,
|
|
67
68
|
children
|
|
68
69
|
});
|
|
69
70
|
};
|
|
70
|
-
let globalIntersectionObserver = null;
|
|
71
71
|
let strategy = "async";
|
|
72
72
|
let resumeLayoutLoop;
|
|
73
|
+
let measureOnNextFrame;
|
|
73
74
|
function setOnLayoutStrategy(state) {
|
|
74
75
|
strategy = state;
|
|
75
76
|
resumeLayoutLoop?.();
|
|
@@ -86,18 +87,6 @@ function enable() {
|
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
|
-
function startGlobalObservers() {
|
|
90
|
-
if (!ENABLE || globalIntersectionObserver) return;
|
|
91
|
-
globalIntersectionObserver = new IntersectionObserver(entries => {
|
|
92
|
-
for (let i = 0; i < entries.length; i++) {
|
|
93
|
-
const entry = entries[i];
|
|
94
|
-
const node = entry.target;
|
|
95
|
-
if (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);
|
|
96
|
-
}
|
|
97
|
-
}, {
|
|
98
|
-
threshold: 0
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
90
|
function rectsEqual(a, b) {
|
|
102
91
|
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
103
92
|
}
|
|
@@ -158,7 +147,7 @@ if (ENABLE) {
|
|
|
158
147
|
}
|
|
159
148
|
if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
|
|
160
149
|
if (strategy !== "off") {
|
|
161
|
-
const
|
|
150
|
+
const activeNodes = [];
|
|
162
151
|
const parentsToObserve = /* @__PURE__ */new Set();
|
|
163
152
|
for (const node of Nodes) {
|
|
164
153
|
const parentElement = node.parentElement;
|
|
@@ -168,28 +157,31 @@ if (ENABLE) {
|
|
|
168
157
|
}
|
|
169
158
|
const disableKey = LayoutDisableKey.get(node);
|
|
170
159
|
if (disableKey && DisableLayoutContextValues[disableKey] === true) continue;
|
|
171
|
-
|
|
172
|
-
visibleNodes.push(node);
|
|
160
|
+
activeNodes.push(node);
|
|
173
161
|
parentsToObserve.add(parentElement);
|
|
174
162
|
}
|
|
175
|
-
if (
|
|
163
|
+
if (activeNodes.length > 0) {
|
|
176
164
|
const io = ensureRectFetchObserver();
|
|
177
165
|
rectFetchStartTime = performance.now();
|
|
178
|
-
for (let i = 0; i <
|
|
166
|
+
for (let i = 0; i < activeNodes.length; i++) io.observe(activeNodes[i]);
|
|
179
167
|
for (const parent of parentsToObserve) io.observe(parent);
|
|
180
168
|
await new Promise(res => {
|
|
181
169
|
rectFetchResolve = res;
|
|
182
170
|
});
|
|
183
|
-
for (let i = 0; i <
|
|
171
|
+
for (let i = 0; i < activeNodes.length; i++) io.unobserve(activeNodes[i]);
|
|
184
172
|
for (const parent of parentsToObserve) io.unobserve(parent);
|
|
185
173
|
if (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);else if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);
|
|
186
|
-
for (let i = 0; i <
|
|
174
|
+
for (let i = 0; i < activeNodes.length; i++) updateLayoutIfChanged(activeNodes[i]);
|
|
187
175
|
}
|
|
188
176
|
}
|
|
189
177
|
frameScheduled = false;
|
|
190
178
|
scheduleLayoutFrame();
|
|
191
179
|
}
|
|
192
180
|
resumeLayoutLoop = scheduleLayoutFrame;
|
|
181
|
+
measureOnNextFrame = () => {
|
|
182
|
+
frameCount = 0;
|
|
183
|
+
scheduleLayoutFrame();
|
|
184
|
+
};
|
|
193
185
|
document.addEventListener("visibilitychange", scheduleLayoutFrame);
|
|
194
186
|
scheduleLayoutFrame();
|
|
195
187
|
}
|
|
@@ -254,11 +246,6 @@ function emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {
|
|
|
254
246
|
function observeLayoutNode(node, disableKey) {
|
|
255
247
|
Nodes.add(node);
|
|
256
248
|
if (disableKey) LayoutDisableKey.set(node, disableKey);else LayoutDisableKey.delete(node);
|
|
257
|
-
startGlobalObservers();
|
|
258
|
-
if (globalIntersectionObserver) {
|
|
259
|
-
globalIntersectionObserver.observe(node);
|
|
260
|
-
IntersectionState.set(node, true);
|
|
261
|
-
}
|
|
262
249
|
resumeLayoutLoop?.();
|
|
263
250
|
}
|
|
264
251
|
function registerLayoutNode(node, onChange, disableKey) {
|
|
@@ -271,8 +258,6 @@ function cleanupNode(node) {
|
|
|
271
258
|
LayoutHandlers.delete(node);
|
|
272
259
|
LayoutDisableKey.delete(node);
|
|
273
260
|
NodeRectCache.delete(node);
|
|
274
|
-
IntersectionState.delete(node);
|
|
275
|
-
if (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);
|
|
276
261
|
}
|
|
277
262
|
const PrevHostNode = /* @__PURE__ */new WeakMap();
|
|
278
263
|
function emitLayoutSync(node) {
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -49,7 +49,6 @@ function _instanceof(left, right) {
|
|
|
49
49
|
var LayoutHandlers = /* @__PURE__ */new WeakMap();
|
|
50
50
|
var LayoutDisableKey = /* @__PURE__ */new WeakMap();
|
|
51
51
|
var Nodes = /* @__PURE__ */new Set();
|
|
52
|
-
var IntersectionState = /* @__PURE__ */new WeakMap();
|
|
53
52
|
var usePretransformDimensions = function () {
|
|
54
53
|
return globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === "1";
|
|
55
54
|
};
|
|
@@ -68,16 +67,18 @@ var LayoutMeasurementController = function (param) {
|
|
|
68
67
|
} = param;
|
|
69
68
|
var id = (0, import_react.useId)();
|
|
70
69
|
(0, import_constants.useIsomorphicLayoutEffect)(function () {
|
|
70
|
+
var wasDisabled = DisableLayoutContextValues[id] === true;
|
|
71
71
|
DisableLayoutContextValues[id] = disable;
|
|
72
|
+
if (wasDisabled && !disable) measureOnNextFrame === null || measureOnNextFrame === void 0 || measureOnNextFrame();
|
|
72
73
|
}, [disable, id]);
|
|
73
74
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DisableLayoutContextKey.Provider, {
|
|
74
75
|
value: id,
|
|
75
76
|
children
|
|
76
77
|
});
|
|
77
78
|
};
|
|
78
|
-
var globalIntersectionObserver = null;
|
|
79
79
|
var strategy = "async";
|
|
80
80
|
var resumeLayoutLoop;
|
|
81
|
+
var measureOnNextFrame;
|
|
81
82
|
function setOnLayoutStrategy(state) {
|
|
82
83
|
strategy = state;
|
|
83
84
|
resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
|
|
@@ -96,18 +97,6 @@ function enable() {
|
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
function startGlobalObservers() {
|
|
100
|
-
if (!ENABLE || globalIntersectionObserver) return;
|
|
101
|
-
globalIntersectionObserver = new IntersectionObserver(function (entries) {
|
|
102
|
-
for (var i = 0; i < entries.length; i++) {
|
|
103
|
-
var entry = entries[i];
|
|
104
|
-
var node = entry.target;
|
|
105
|
-
if (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);
|
|
106
|
-
}
|
|
107
|
-
}, {
|
|
108
|
-
threshold: 0
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
100
|
function rectsEqual(a, b) {
|
|
112
101
|
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
113
102
|
}
|
|
@@ -168,7 +157,7 @@ if (ENABLE) {
|
|
|
168
157
|
}
|
|
169
158
|
if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
|
|
170
159
|
if (strategy !== "off") {
|
|
171
|
-
var
|
|
160
|
+
var activeNodes = [];
|
|
172
161
|
var parentsToObserve = /* @__PURE__ */new Set();
|
|
173
162
|
var _iteratorNormalCompletion = true,
|
|
174
163
|
_didIteratorError = false,
|
|
@@ -183,8 +172,7 @@ if (ENABLE) {
|
|
|
183
172
|
}
|
|
184
173
|
var disableKey = LayoutDisableKey.get(node);
|
|
185
174
|
if (disableKey && DisableLayoutContextValues[disableKey] === true) continue;
|
|
186
|
-
|
|
187
|
-
visibleNodes.push(node);
|
|
175
|
+
activeNodes.push(node);
|
|
188
176
|
parentsToObserve.add(parentElement);
|
|
189
177
|
}
|
|
190
178
|
} catch (err) {
|
|
@@ -197,10 +185,10 @@ if (ENABLE) {
|
|
|
197
185
|
if (_didIteratorError) throw _iteratorError;
|
|
198
186
|
}
|
|
199
187
|
}
|
|
200
|
-
if (
|
|
188
|
+
if (activeNodes.length > 0) {
|
|
201
189
|
var io = ensureRectFetchObserver2();
|
|
202
190
|
rectFetchStartTime = performance.now();
|
|
203
|
-
for (var i = 0; i <
|
|
191
|
+
for (var i = 0; i < activeNodes.length; i++) io.observe(activeNodes[i]);
|
|
204
192
|
var _iteratorNormalCompletion1 = true,
|
|
205
193
|
_didIteratorError1 = false,
|
|
206
194
|
_iteratorError1 = void 0;
|
|
@@ -222,7 +210,7 @@ if (ENABLE) {
|
|
|
222
210
|
await new Promise(function (res) {
|
|
223
211
|
rectFetchResolve = res;
|
|
224
212
|
});
|
|
225
|
-
for (var i1 = 0; i1 <
|
|
213
|
+
for (var i1 = 0; i1 < activeNodes.length; i1++) io.unobserve(activeNodes[i1]);
|
|
226
214
|
var _iteratorNormalCompletion2 = true,
|
|
227
215
|
_didIteratorError2 = false,
|
|
228
216
|
_iteratorError2 = void 0;
|
|
@@ -242,13 +230,17 @@ if (ENABLE) {
|
|
|
242
230
|
}
|
|
243
231
|
}
|
|
244
232
|
if (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);else if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);
|
|
245
|
-
for (var i2 = 0; i2 <
|
|
233
|
+
for (var i2 = 0; i2 < activeNodes.length; i2++) updateLayoutIfChanged(activeNodes[i2]);
|
|
246
234
|
}
|
|
247
235
|
}
|
|
248
236
|
frameScheduled = false;
|
|
249
237
|
scheduleLayoutFrame2();
|
|
250
238
|
}
|
|
251
239
|
resumeLayoutLoop = scheduleLayoutFrame2;
|
|
240
|
+
measureOnNextFrame = function () {
|
|
241
|
+
frameCount = 0;
|
|
242
|
+
scheduleLayoutFrame2();
|
|
243
|
+
};
|
|
252
244
|
document.addEventListener("visibilitychange", scheduleLayoutFrame2);
|
|
253
245
|
scheduleLayoutFrame2();
|
|
254
246
|
}
|
|
@@ -315,11 +307,6 @@ function emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {
|
|
|
315
307
|
function observeLayoutNode(node, disableKey) {
|
|
316
308
|
Nodes.add(node);
|
|
317
309
|
if (disableKey) LayoutDisableKey.set(node, disableKey);else LayoutDisableKey.delete(node);
|
|
318
|
-
startGlobalObservers();
|
|
319
|
-
if (globalIntersectionObserver) {
|
|
320
|
-
globalIntersectionObserver.observe(node);
|
|
321
|
-
IntersectionState.set(node, true);
|
|
322
|
-
}
|
|
323
310
|
resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
|
|
324
311
|
}
|
|
325
312
|
function registerLayoutNode(node, onChange, disableKey) {
|
|
@@ -334,8 +321,6 @@ function cleanupNode(node) {
|
|
|
334
321
|
LayoutHandlers.delete(node);
|
|
335
322
|
LayoutDisableKey.delete(node);
|
|
336
323
|
NodeRectCache.delete(node);
|
|
337
|
-
IntersectionState.delete(node);
|
|
338
|
-
if (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);
|
|
339
324
|
}
|
|
340
325
|
var PrevHostNode = /* @__PURE__ */new WeakMap();
|
|
341
326
|
function emitLayoutSync(node) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","index_exports","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","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","createContext","ENABLE","param","disable","children","id","useId","useIsomorphicLayoutEffect","jsx","Provider","globalIntersectionObserver","strategy","resumeLayoutLoop","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","forEach","cb","clear","startGlobalObservers","IntersectionObserver","entries","i","length","entry","node","isIntersecting","set","threshold","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver2","rectFetchObserver","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","BoundingRects","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","scheduleLayoutFrame2","frameScheduled","size","document","hidden","rAF","layoutOnAnimationFrame","setTimeout","updateLayoutIfChanged","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","requestAnimationFrame","userSkipVal","TAMAGUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","HTMLElement","cleanupNode","disableKey","push","add","err","return","io","observe","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","parent","Promise","res","i1","unobserve","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","parent1","min","max","i2","addEventListener","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","onChange","PrevHostNode","emitLayoutSync","ref","_ref_current","useContext","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","node2","totalNodes","swappedNode","nodeType","disconnect","relativeTo","relativeNode","nodeDim","relativeNodeDim","callback","out"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") {\n\t\tfor (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: () => from[key],\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\n__export(index_exports, {\n\tLayoutMeasurementController: () => LayoutMeasurementController,\n\tcreateMeasure: () => createMeasure,\n\tcreateMeasureInWindow: () => createMeasureInWindow,\n\tcreateMeasureLayout: () => createMeasureLayout,\n\tenable: () => enable,\n\tgetBoundingClientRectAsync: () => getBoundingClientRectAsync,\n\tgetElementLayoutEvent: () => getElementLayoutEvent,\n\tmeasure: () => measure,\n\tmeasureInWindow: () => measureInWindow,\n\tmeasureLayout: () => measureLayout,\n\tmeasureNode: () => measureNode,\n\tregisterLayoutNode: () => registerLayoutNode,\n\tsetOnLayoutStrategy: () => setOnLayoutStrategy,\n\tuseElementLayout: () => useElementLayout\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_constants = require(\"@tamagui/constants\");\nvar import_react = require(\"react\");\nfunction _instanceof(left, right) {\n\tif (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) return !!right[Symbol.hasInstance](left);\n\telse return left instanceof right;\n}\nvar LayoutHandlers = /* @__PURE__ */ new WeakMap();\nvar LayoutDisableKey = /* @__PURE__ */ new WeakMap();\nvar Nodes = /* @__PURE__ */ new Set();\nvar IntersectionState = /* @__PURE__ */ new WeakMap();\nvar usePretransformDimensions = function() {\n\treturn globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\n};\nvar _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nvar DisableLayoutContextValues = {};\nvar DisableLayoutContextKey = /* @__PURE__ */ (0, import_react.createContext)(\"\");\nvar ENABLE = false;\nvar LayoutMeasurementController = function(param) {\n\tvar { disable, children } = param;\n\tvar id = (0, import_react.useId)();\n\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tDisableLayoutContextValues[id] = disable;\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nvar globalIntersectionObserver = null;\nvar strategy = \"async\";\nvar resumeLayoutLoop;\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n\tresumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();\n}\nvar NodeRectCache = /* @__PURE__ */ new WeakMap();\nvar avoidUpdates = true;\nvar queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach(function(cb) {\n\t\t\t\treturn cb();\n\t\t\t});\n\t\t\tqueuedUpdates.clear();\n\t\t}\n\t}\n}\nfunction startGlobalObservers() {\n\tif (!ENABLE || globalIntersectionObserver) return;\n\tglobalIntersectionObserver = new IntersectionObserver(function(entries) {\n\t\tfor (var i = 0; i < entries.length; i++) {\n\t\t\tvar entry = entries[i];\n\t\t\tvar node = entry.target;\n\t\t\tif (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);\n\t\t}\n\t}, { threshold: 0 });\n}\nfunction rectsEqual(a, b) {\n\treturn a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\nif (ENABLE) {\n\tlet ensureRectFetchObserver2 = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver(function(entries) {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (var i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);\n\t\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout() && lastCallbackDelay > 50) console.warn(\"[onLayout-io-delay]\", lastCallbackDelay + \"ms\", entries.length, \"entries\");\n\t\t\tif (rectFetchResolve) {\n\t\t\t\trectFetchResolve(true);\n\t\t\t\trectFetchResolve = null;\n\t\t\t}\n\t\t}, { threshold: 0 });\n\t\treturn rectFetchObserver;\n\t}, scheduleLayoutFrame2 = function() {\n\t\tif (frameScheduled || strategy === \"off\" || Nodes.size === 0 || document.hidden) return;\n\t\tframeScheduled = true;\n\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t};\n\tvar BoundingRects = /* @__PURE__ */ new WeakMap();\n\tvar rectFetchObserver = null;\n\tvar rectFetchResolve = null;\n\tvar rectFetchStartTime = 0;\n\tvar lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tvar parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tvar nodeRect;\n\t\tvar parentRect;\n\t\tif (strategy === \"async\") {\n\t\t\tnodeRect = BoundingRects.get(node);\n\t\t\tparentRect = BoundingRects.get(parentNode);\n\t\t\tif (!nodeRect || !parentRect) return;\n\t\t} else {\n\t\t\tnodeRect = node.getBoundingClientRect();\n\t\t\tparentRect = parentNode.getBoundingClientRect();\n\t\t}\n\t\temitLayoutIfChanged(node, parentNode, nodeRect, parentRect);\n\t}\n\tvar rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tvar userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tvar BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tvar MAX_SKIP_FRAMES = 20;\n\tvar skipFrames = BASE_SKIP_FRAMES;\n\tvar frameCount = 0;\n\tvar frameScheduled = false;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\tframeScheduled = false;\n\t\t\tscheduleLayoutFrame2();\n\t\t\treturn;\n\t\t}\n\t\tif (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;\n\t\tif (strategy !== \"off\") {\n\t\t\tvar visibleNodes = [];\n\t\t\tvar parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar node = _step.value;\n\t\t\t\t\tvar parentElement = node.parentElement;\n\t\t\t\t\tif (!_instanceof(parentElement, HTMLElement)) {\n\t\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvar disableKey = LayoutDisableKey.get(node);\n\t\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\t\tif (IntersectionState.get(node) === false) continue;\n\t\t\t\t\tvisibleNodes.push(node);\n\t\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (visibleNodes.length > 0) {\n\t\t\t\tvar io = ensureRectFetchObserver2();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (var i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);\n\t\t\t\tvar _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator1 = parentsToObserve[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n\t\t\t\t\t\tvar parent = _step1.value;\n\t\t\t\t\t\tio.observe(parent);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError1 = true;\n\t\t\t\t\t_iteratorError1 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError1) throw _iteratorError1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait new Promise(function(res) {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (var i1 = 0; i1 < visibleNodes.length; i1++) io.unobserve(visibleNodes[i1]);\n\t\t\t\tvar _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator2 = parentsToObserve[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\t\tvar parent1 = _step2.value;\n\t\t\t\t\t\tio.unobserve(parent1);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t\t_iteratorError2 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return != null) _iterator2.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError2) throw _iteratorError2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);\n\t\t\t\telse if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);\n\t\t\t\tfor (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);\n\t\t\t}\n\t\t}\n\t\tframeScheduled = false;\n\t\tscheduleLayoutFrame2();\n\t}\n\tresumeLayoutLoop = scheduleLayoutFrame2;\n\tdocument.addEventListener(\"visibilitychange\", scheduleLayoutFrame2);\n\tscheduleLayoutFrame2();\n}\nvar getElementLayoutEvent = function(nodeRect, parentRect, node) {\n\treturn {\n\t\tnativeEvent: {\n\t\t\tlayout: getRelativeDimensions(nodeRect, parentRect, node),\n\t\t\ttarget: nodeRect\n\t\t},\n\t\ttimeStamp: Date.now()\n\t};\n};\nvar getPreTransformDimensions = function(node) {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nvar getRelativeDimensions = function(a, b, aNode) {\n\tvar { left, top } = a;\n\tvar x = left - b.left;\n\tvar y = top - b.top;\n\tvar { width, height } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {\n\t\twidth: a.width,\n\t\theight: a.height\n\t};\n\treturn {\n\t\tx,\n\t\ty,\n\t\twidth,\n\t\theight,\n\t\tpageX: a.left,\n\t\tpageY: a.top\n\t};\n};\nfunction emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar cachedRect = NodeRectCache.get(node);\n\tvar cachedParentRect = NodeRectCache.get(parentNode);\n\tvar nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tvar parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tvar event = getElementLayoutEvent(nodeRect, parentRect, node);\n\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] change\", {\n\t\ttag: node.tagName,\n\t\tid: node.id || void 0,\n\t\tclassName: (node.className || \"\").slice(0, 60) || void 0,\n\t\tlayout: event.nativeEvent.layout,\n\t\tfirst: !cachedRect\n\t});\n\tif (avoidUpdates) queuedUpdates.set(node, function() {\n\t\treturn onLayout(event);\n\t});\n\telse onLayout(event);\n}\nfunction observeLayoutNode(node, disableKey) {\n\tNodes.add(node);\n\tif (disableKey) LayoutDisableKey.set(node, disableKey);\n\telse LayoutDisableKey.delete(node);\n\tstartGlobalObservers();\n\tif (globalIntersectionObserver) {\n\t\tglobalIntersectionObserver.observe(node);\n\t\tIntersectionState.set(node, true);\n\t}\n\tresumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn function() {\n\t\treturn cleanupNode(node);\n\t};\n}\nfunction cleanupNode(node) {\n\tNodes.delete(node);\n\tLayoutHandlers.delete(node);\n\tLayoutDisableKey.delete(node);\n\tNodeRectCache.delete(node);\n\tIntersectionState.delete(node);\n\tif (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);\n}\nvar PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tvar nodeRect = node.getBoundingClientRect();\n\tvar parentRect = parentNode.getBoundingClientRect();\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tonLayout(getElementLayoutEvent(nodeRect, parentRect, node));\n}\nfunction useElementLayout(ref, onLayout) {\n\tvar _ref_current;\n\tvar disableKey = (0, import_react.useContext)(DisableLayoutContextKey);\n\tvar node = ensureWebElement((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar nextNode = ensureWebElement((_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host);\n\t\tvar prevNode = PrevHostNode.get(ref);\n\t\tif (nextNode === prevNode) return;\n\t\tif (prevNode) cleanupNode(prevNode);\n\t\tPrevHostNode.set(ref, nextNode);\n\t\tif (!nextNode) return;\n\t\tLayoutHandlers.set(nextNode, onLayout);\n\t\tobserveLayoutNode(nextNode, disableKey);\n\t\temitLayoutSync(nextNode);\n\t});\n\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;\n\t\tif (!node2) return;\n\t\tLayoutHandlers.set(node2, onLayout);\n\t\tobserveLayoutNode(node2, disableKey);\n\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] register\", {\n\t\t\ttag: node2.tagName,\n\t\t\tid: node2.id || void 0,\n\t\t\tclassName: (node2.className || \"\").slice(0, 60) || void 0,\n\t\t\ttotalNodes: Nodes.size\n\t\t});\n\t\treturn function() {\n\t\t\tcleanupNode(node2);\n\t\t\tvar swappedNode = PrevHostNode.get(ref);\n\t\t\tif (swappedNode && swappedNode !== node2) cleanupNode(swappedNode);\n\t\t\tPrevHostNode.delete(ref);\n\t\t};\n\t}, [ref, !!onLayout]);\n}\nfunction ensureWebElement(x) {\n\tif (typeof HTMLElement === \"undefined\") return;\n\treturn _instanceof(x, HTMLElement) ? x : void 0;\n}\nvar getBoundingClientRectAsync = function(node) {\n\treturn new Promise(function(res) {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tvar io = new IntersectionObserver(function(entries) {\n\t\t\tio.disconnect();\n\t\t\treturn res(entries[0].boundingClientRect);\n\t\t}, { threshold: 0 });\n\t\tio.observe(node);\n\t});\n};\nvar measureNode = async function(node, relativeTo) {\n\tvar relativeNode = relativeTo || (node === null || node === void 0 ? void 0 : node.parentElement);\n\tif (_instanceof(relativeNode, HTMLElement)) {\n\t\tvar [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);\n\t\tif (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);\n\t}\n\treturn null;\n};\nvar measure = async function(node, callback) {\n\tvar out = await measureNode(node, _instanceof(node.parentNode, HTMLElement) ? node.parentNode : null);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn function(callback) {\n\t\treturn measure(node, callback);\n\t};\n}\nvar measureInWindow = async function(node, callback) {\n\tvar out = await measureNode(node, null);\n\tif (out) callback === null || callback === void 0 || callback(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nvar createMeasureInWindow = function(node) {\n\treturn function(callback) {\n\t\treturn measureInWindow(node, callback);\n\t};\n};\nvar measureLayout = async function(node, relativeNode, callback) {\n\tvar out = await measureNode(node, relativeNode);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn function(relativeTo, callback) {\n\t\treturn measureLayout(node, relativeTo, callback);\n\t};\n}\n//# sourceMappingURL=index.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,QAAQ,GAAGA,CAACC,MAAM,EAAEC,GAAG,KAAK;EAC/B,KAAK,IAAIC,IAAI,IAAID,GAAG,EAAEZ,SAAS,CAACW,MAAM,EAAEE,IAAI,EAAE;IAC7CC,GAAG,EAAEF,GAAG,CAACC,IAAI,CAAC;IACdE,UAAU,EAAE;EACb,CAAC,CAAC;AACH,CAAC;AACD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC7C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IACnE,KAAK,IAAIG,GAAG,IAAIhB,iBAAiB,CAACa,IAAI,CAAC,EAAE,IAAI,CAACX,YAAY,CAACe,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAAEnB,SAAS,CAACiB,EAAE,EAAEI,GAAG,EAAE;MAC9GP,GAAG,EAAEA,CAAA,KAAMI,IAAI,CAACG,GAAG,CAAC;MACpBN,UAAU,EAAE,EAAEK,IAAI,GAAGjB,gBAAgB,CAACe,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACL;IAC3D,CAAC,CAAC;EACH;EACA,OAAOE,EAAE;AACV,CAAC;AACD,IAAIM,YAAY,GAAIC,GAAG,IAAKR,WAAW,CAAChB,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAEyB,KAAK,EAAE;AAAK,CAAC,CAAC,EAAED,GAAG,CAAC;AAC1F,IAAIE,aAAa,GAAG,CAAC,CAAC;AACtBhB,QAAQ,CAACgB,aAAa,EAAE;EACvBC,2BAA2B,EAAEA,CAAA,KAAMA,2BAA2B;EAC9DC,aAAa,EAAEA,CAAA,KAAMA,aAAa;EAClCC,qBAAqB,EAAEA,CAAA,KAAMA,qBAAqB;EAClDC,mBAAmB,EAAEA,CAAA,KAAMA,mBAAmB;EAC9CC,MAAM,EAAEA,CAAA,KAAMA,MAAM;EACpBC,0BAA0B,EAAEA,CAAA,KAAMA,0BAA0B;EAC5DC,qBAAqB,EAAEA,CAAA,KAAMA,qBAAqB;EAClDC,OAAO,EAAEA,CAAA,KAAMA,OAAO;EACtBC,eAAe,EAAEA,CAAA,KAAMA,eAAe;EACtCC,aAAa,EAAEA,CAAA,KAAMA,aAAa;EAClCC,WAAW,EAAEA,CAAA,KAAMA,WAAW;EAC9BC,kBAAkB,EAAEA,CAAA,KAAMA,kBAAkB;EAC5CC,mBAAmB,EAAEA,CAAA,KAAMA,mBAAmB;EAC9CC,gBAAgB,EAAEA,CAAA,KAAMA;AACzB,CAAC,CAAC;AACFC,MAAM,CAACC,OAAO,GAAGnB,YAAY,CAACG,aAAa,CAAC;AAC5C,IAAIiB,kBAAkB,GAAGC,OAAO,CAAC,mBAAmB,CAAC;AACrD,IAAIC,gBAAgB,GAAGD,OAAO,CAAC,oBAAoB,CAAC;AACpD,IAAIE,YAAY,GAAGF,OAAO,CAAC,OAAO,CAAC;AACnC,SAASG,WAAWA,CAACC,IAAI,EAAEC,KAAK,EAAE;EACjC,IAAIA,KAAK,IAAI,IAAI,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAID,KAAK,CAACC,MAAM,CAACC,WAAW,CAAC,EAAE,OAAO,CAAC,CAACF,KAAK,CAACC,MAAM,CAACC,WAAW,CAAC,CAACH,IAAI,CAAC,CAAC,KACrH,OAAOA,IAAI,YAAYC,KAAK;AAClC;AACA,IAAIG,cAAc,GAAG,eAAgB,IAAIC,OAAO,CAAC,CAAC;AAClD,IAAIC,gBAAgB,GAAG,eAAgB,IAAID,OAAO,CAAC,CAAC;AACpD,IAAIE,KAAK,GAAG,eAAgB,IAAIC,GAAG,CAAC,CAAC;AACrC,IAAIC,iBAAiB,GAAG,eAAgB,IAAIJ,OAAO,CAAC,CAAC;AACrD,IAAIK,yBAAyB,GAAG,SAAAA,CAAA,EAAW;EAC1C,OAAOC,UAAU,CAACC,+BAA+B,KAAK,IAAI,IAAIC,OAAO,CAACC,GAAG,CAACC,6BAA6B,KAAK,GAAG;AAChH,CAAC;AACD,IAAIC,YAAY;AAChB,SAASC,aAAaA,CAAA,EAAG;EACxB,IAAID,YAAY,KAAK,KAAK,CAAC,EAAEA,YAAY,GAAG,OAAOE,MAAM,KAAK,WAAW,IAAI,IAAIC,eAAe,CAACD,MAAM,CAACE,QAAQ,CAACC,MAAM,CAAC,CAACC,GAAG,CAAC,mBAAmB,CAAC;EACjJ,OAAON,YAAY;AACpB;AACA,IAAIO,0BAA0B,GAAG,CAAC,CAAC;AACnC,IAAIC,uBAAuB,GAAG,eAAgB,CAAC,CAAC,EAAE1B,YAAY,CAAC2B,aAAa,EAAE,EAAE,CAAC;AACjF,IAAIC,MAAM,GAAG,KAAK;AAClB,IAAI/C,2BAA2B,GAAG,SAAAA,CAASgD,KAAK,EAAE;EACjD,IAAI;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGF,KAAK;EACjC,IAAIG,EAAE,GAAG,CAAC,CAAC,EAAEhC,YAAY,CAACiC,KAAK,EAAE,CAAC;EAClC,CAAC,CAAC,EAAElC,gBAAgB,CAACmC,yBAAyB,EAAE,YAAW;IAC1DT,0BAA0B,CAACO,EAAE,CAAC,GAAGF,OAAO;EACzC,CAAC,EAAE,CAACA,OAAO,EAAEE,EAAE,CAAC,CAAC;EACjB,OAAO,eAAgB,CAAC,CAAC,EAAEnC,kBAAkB,CAACsC,GAAG,EAAET,uBAAuB,CAACU,QAAQ,EAAE;IACpFzD,KAAK,EAAEqD,EAAE;IACTD;EACD,CAAC,CAAC;AACH,CAAC;AACD,IAAIM,0BAA0B,GAAG,IAAI;AACrC,IAAIC,QAAQ,GAAG,OAAO;AACtB,IAAIC,gBAAgB;AACpB,SAAS9C,mBAAmBA,CAAC+C,KAAK,EAAE;EACnCF,QAAQ,GAAGE,KAAK;EAChBD,gBAAgB,KAAK,IAAI,IAAIA,gBAAgB,KAAK,KAAK,CAAC,IAAIA,gBAAgB,CAAC,CAAC;AAC/E;AACA,IAAIE,aAAa,GAAG,eAAgB,IAAIlC,OAAO,CAAC,CAAC;AACjD,IAAImC,YAAY,GAAG,IAAI;AACvB,IAAIC,aAAa,GAAG,eAAgB,IAAIC,GAAG,CAAC,CAAC;AAC7C,SAAS3D,MAAMA,CAAA,EAAG;EACjB,IAAIyD,YAAY,EAAE;IACjBA,YAAY,GAAG,KAAK;IACpB,IAAIC,aAAa,EAAE;MAClBA,aAAa,CAACE,OAAO,CAAC,UAASC,EAAE,EAAE;QAClC,OAAOA,EAAE,CAAC,CAAC;MACZ,CAAC,CAAC;MACFH,aAAa,CAACI,KAAK,CAAC,CAAC;IACtB;EACD;AACD;AACA,SAASC,oBAAoBA,CAAA,EAAG;EAC/B,IAAI,CAACpB,MAAM,IAAIS,0BAA0B,EAAE;EAC3CA,0BAA0B,GAAG,IAAIY,oBAAoB,CAAC,UAASC,OAAO,EAAE;IACvE,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,OAAO,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;MACxC,IAAIE,KAAK,GAAGH,OAAO,CAACC,CAAC,CAAC;MACtB,IAAIG,IAAI,GAAGD,KAAK,CAACxF,MAAM;MACvB,IAAI8C,iBAAiB,CAAC3C,GAAG,CAACsF,IAAI,CAAC,KAAKD,KAAK,CAACE,cAAc,EAAE5C,iBAAiB,CAAC6C,GAAG,CAACF,IAAI,EAAED,KAAK,CAACE,cAAc,CAAC;IAC5G;EACD,CAAC,EAAE;IAAEE,SAAS,EAAE;EAAE,CAAC,CAAC;AACrB;AACA,SAASC,UAAUA,CAACC,CAAC,EAAEC,CAAC,EAAE;EACzB,OAAOD,CAAC,CAACE,CAAC,KAAKD,CAAC,CAACC,CAAC,IAAIF,CAAC,CAACG,CAAC,KAAKF,CAAC,CAACE,CAAC,IAAIH,CAAC,CAACI,KAAK,KAAKH,CAAC,CAACG,KAAK,IAAIJ,CAAC,CAACK,MAAM,KAAKJ,CAAC,CAACI,MAAM;AAClF;AACA,IAAIpC,MAAM,EAAE;EACX,IAAIqC,wBAAwB,GAAG,SAAAA,CAAA,EAAW;MACzC,IAAIC,iBAAiB,EAAE,OAAOA,iBAAiB;MAC/CA,iBAAiB,GAAG,IAAIjB,oBAAoB,CAAC,UAASC,OAAO,EAAE;QAC9DiB,iBAAiB,GAAGC,IAAI,CAACC,KAAK,CAACC,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGC,kBAAkB,CAAC;QACtE,KAAK,IAAIrB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,OAAO,CAACE,MAAM,EAAED,CAAC,EAAE,EAAEsB,aAAa,CAACjB,GAAG,CAACN,OAAO,CAACC,CAAC,CAAC,CAACtF,MAAM,EAAEqF,OAAO,CAACC,CAAC,CAAC,CAACuB,kBAAkB,CAAC;QAC5G,IAAI3D,OAAO,CAACC,GAAG,CAAC2D,QAAQ,KAAK,aAAa,IAAIxD,aAAa,CAAC,CAAC,IAAIgD,iBAAiB,GAAG,EAAE,EAAES,OAAO,CAACC,IAAI,CAAC,qBAAqB,EAAEV,iBAAiB,GAAG,IAAI,EAAEjB,OAAO,CAACE,MAAM,EAAE,SAAS,CAAC;QACjL,IAAI0B,gBAAgB,EAAE;UACrBA,gBAAgB,CAAC,IAAI,CAAC;UACtBA,gBAAgB,GAAG,IAAI;QACxB;MACD,CAAC,EAAE;QAAErB,SAAS,EAAE;MAAE,CAAC,CAAC;MACpB,OAAOS,iBAAiB;IACzB,CAAC;IAAEa,oBAAoB,GAAG,SAAAA,CAAA,EAAW;MACpC,IAAIC,cAAc,IAAI1C,QAAQ,KAAK,KAAK,IAAI7B,KAAK,CAACwE,IAAI,KAAK,CAAC,IAAIC,QAAQ,CAACC,MAAM,EAAE;MACjFH,cAAc,GAAG,IAAI;MACrBI,GAAG,GAAGA,GAAG,CAACC,sBAAsB,CAAC,GAAGC,UAAU,CAACD,sBAAsB,EAAE,EAAE,CAAC;IAC3E,CAAC;EACD,IAAIZ,aAAa,GAAG,eAAgB,IAAIlE,OAAO,CAAC,CAAC;EACjD,IAAI2D,iBAAiB,GAAG,IAAI;EAC5B,IAAIY,gBAAgB,GAAG,IAAI;EAC3B,IAAIN,kBAAkB,GAAG,CAAC;EAC1B,IAAIL,iBAAiB,GAAG,CAAC;EACzB,eAAeoB,qBAAqBA,CAACjC,IAAI,EAAE;IAC1C,IAAI,OAAOhD,cAAc,CAACtC,GAAG,CAACsF,IAAI,CAAC,KAAK,UAAU,EAAE;IACpD,IAAIkC,UAAU,GAAGlC,IAAI,CAACmC,aAAa;IACnC,IAAI,CAACD,UAAU,EAAE;IACjB,IAAIE,QAAQ;IACZ,IAAIC,UAAU;IACd,IAAIrD,QAAQ,KAAK,OAAO,EAAE;MACzBoD,QAAQ,GAAGjB,aAAa,CAACzG,GAAG,CAACsF,IAAI,CAAC;MAClCqC,UAAU,GAAGlB,aAAa,CAACzG,GAAG,CAACwH,UAAU,CAAC;MAC1C,IAAI,CAACE,QAAQ,IAAI,CAACC,UAAU,EAAE;IAC/B,CAAC,MAAM;MACND,QAAQ,GAAGpC,IAAI,CAACsC,qBAAqB,CAAC,CAAC;MACvCD,UAAU,GAAGH,UAAU,CAACI,qBAAqB,CAAC,CAAC;IAChD;IACAC,mBAAmB,CAACvC,IAAI,EAAEkC,UAAU,EAAEE,QAAQ,EAAEC,UAAU,CAAC;EAC5D;EACA,IAAIP,GAAG,GAAG,OAAOU,qBAAqB,KAAK,WAAW,GAAGA,qBAAqB,GAAG,KAAK,CAAC;EACvF,IAAIC,WAAW,GAAGhF,OAAO,CAACC,GAAG,CAACgF,yBAAyB;EACvD,IAAIC,gBAAgB,GAAGF,WAAW,GAAG,CAACA,WAAW,GAAG,EAAE;EACtD,IAAIG,eAAe,GAAG,EAAE;EACxB,IAAIC,UAAU,GAAGF,gBAAgB;EACjC,IAAIG,UAAU,GAAG,CAAC;EAClB,IAAIpB,cAAc,GAAG,KAAK;EAC1B,eAAeK,sBAAsBA,CAAA,EAAG;IACvC,IAAIe,UAAU,EAAE,GAAGD,UAAU,KAAK,CAAC,EAAE;MACpCnB,cAAc,GAAG,KAAK;MACtBD,oBAAoB,CAAC,CAAC;MACtB;IACD;IACA,IAAIqB,UAAU,IAAIC,MAAM,CAACC,gBAAgB,EAAEF,UAAU,GAAG,CAAC;IACzD,IAAI9D,QAAQ,KAAK,KAAK,EAAE;MACvB,IAAIiE,YAAY,GAAG,EAAE;MACrB,IAAIC,gBAAgB,GAAG,eAAgB,IAAI9F,GAAG,CAAC,CAAC;MAChD,IAAI+F,yBAAyB,GAAG,IAAI;QAAEC,iBAAiB,GAAG,KAAK;QAAEC,cAAc,GAAG,KAAK,CAAC;MACxF,IAAI;QACH,KAAK,IAAIC,SAAS,GAAGnG,KAAK,CAACL,MAAM,CAACyG,QAAQ,CAAC,CAAC,CAAC,EAAEC,KAAK,EAAE,EAAEL,yBAAyB,GAAG,CAACK,KAAK,GAAGF,SAAS,CAACG,IAAI,CAAC,CAAC,EAAEC,IAAI,CAAC,EAAEP,yBAAyB,GAAG,IAAI,EAAE;UACvJ,IAAInD,IAAI,GAAGwD,KAAK,CAACnI,KAAK;UACtB,IAAI8G,aAAa,GAAGnC,IAAI,CAACmC,aAAa;UACtC,IAAI,CAACxF,WAAW,CAACwF,aAAa,EAAEwB,WAAW,CAAC,EAAE;YAC7CC,WAAW,CAAC5D,IAAI,CAAC;YACjB;UACD;UACA,IAAI6D,UAAU,GAAG3G,gBAAgB,CAACxC,GAAG,CAACsF,IAAI,CAAC;UAC3C,IAAI6D,UAAU,IAAI1F,0BAA0B,CAAC0F,UAAU,CAAC,KAAK,IAAI,EAAE;UACnE,IAAIxG,iBAAiB,CAAC3C,GAAG,CAACsF,IAAI,CAAC,KAAK,KAAK,EAAE;UAC3CiD,YAAY,CAACa,IAAI,CAAC9D,IAAI,CAAC;UACvBkD,gBAAgB,CAACa,GAAG,CAAC5B,aAAa,CAAC;QACpC;MACD,CAAC,CAAC,OAAO6B,GAAG,EAAE;QACbZ,iBAAiB,GAAG,IAAI;QACxBC,cAAc,GAAGW,GAAG;MACrB,CAAC,SAAS;QACT,IAAI;UACH,IAAI,CAACb,yBAAyB,IAAIG,SAAS,CAACW,MAAM,IAAI,IAAI,EAAEX,SAAS,CAACW,MAAM,CAAC,CAAC;QAC/E,CAAC,SAAS;UACT,IAAIb,iBAAiB,EAAE,MAAMC,cAAc;QAC5C;MACD;MACA,IAAIJ,YAAY,CAACnD,MAAM,GAAG,CAAC,EAAE;QAC5B,IAAIoE,EAAE,GAAGvD,wBAAwB,CAAC,CAAC;QACnCO,kBAAkB,GAAGF,WAAW,CAACC,GAAG,CAAC,CAAC;QACtC,KAAK,IAAIpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoD,YAAY,CAACnD,MAAM,EAAED,CAAC,EAAE,EAAEqE,EAAE,CAACC,OAAO,CAAClB,YAAY,CAACpD,CAAC,CAAC,CAAC;QACzE,IAAIuE,0BAA0B,GAAG,IAAI;UAAEC,kBAAkB,GAAG,KAAK;UAAEC,eAAe,GAAG,KAAK,CAAC;QAC3F,IAAI;UACH,KAAK,IAAIC,UAAU,GAAGrB,gBAAgB,CAACpG,MAAM,CAACyG,QAAQ,CAAC,CAAC,CAAC,EAAEiB,MAAM,EAAE,EAAEJ,0BAA0B,GAAG,CAACI,MAAM,GAAGD,UAAU,CAACd,IAAI,CAAC,CAAC,EAAEC,IAAI,CAAC,EAAEU,0BAA0B,GAAG,IAAI,EAAE;YACxK,IAAIK,MAAM,GAAGD,MAAM,CAACnJ,KAAK;YACzB6I,EAAE,CAACC,OAAO,CAACM,MAAM,CAAC;UACnB;QACD,CAAC,CAAC,OAAOT,GAAG,EAAE;UACbK,kBAAkB,GAAG,IAAI;UACzBC,eAAe,GAAGN,GAAG;QACtB,CAAC,SAAS;UACT,IAAI;YACH,IAAI,CAACI,0BAA0B,IAAIG,UAAU,CAACN,MAAM,IAAI,IAAI,EAAEM,UAAU,CAACN,MAAM,CAAC,CAAC;UAClF,CAAC,SAAS;YACT,IAAII,kBAAkB,EAAE,MAAMC,eAAe;UAC9C;QACD;QACA,MAAM,IAAII,OAAO,CAAC,UAASC,GAAG,EAAE;UAC/BnD,gBAAgB,GAAGmD,GAAG;QACvB,CAAC,CAAC;QACF,KAAK,IAAIC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAG3B,YAAY,CAACnD,MAAM,EAAE8E,EAAE,EAAE,EAAEV,EAAE,CAACW,SAAS,CAAC5B,YAAY,CAAC2B,EAAE,CAAC,CAAC;QAC/E,IAAIE,0BAA0B,GAAG,IAAI;UAAEC,kBAAkB,GAAG,KAAK;UAAEC,eAAe,GAAG,KAAK,CAAC;QAC3F,IAAI;UACH,KAAK,IAAIC,UAAU,GAAG/B,gBAAgB,CAACpG,MAAM,CAACyG,QAAQ,CAAC,CAAC,CAAC,EAAE2B,MAAM,EAAE,EAAEJ,0BAA0B,GAAG,CAACI,MAAM,GAAGD,UAAU,CAACxB,IAAI,CAAC,CAAC,EAAEC,IAAI,CAAC,EAAEoB,0BAA0B,GAAG,IAAI,EAAE;YACxK,IAAIK,OAAO,GAAGD,MAAM,CAAC7J,KAAK;YAC1B6I,EAAE,CAACW,SAAS,CAACM,OAAO,CAAC;UACtB;QACD,CAAC,CAAC,OAAOnB,GAAG,EAAE;UACbe,kBAAkB,GAAG,IAAI;UACzBC,eAAe,GAAGhB,GAAG;QACtB,CAAC,SAAS;UACT,IAAI;YACH,IAAI,CAACc,0BAA0B,IAAIG,UAAU,CAAChB,MAAM,IAAI,IAAI,EAAEgB,UAAU,CAAChB,MAAM,CAAC,CAAC;UAClF,CAAC,SAAS;YACT,IAAIc,kBAAkB,EAAE,MAAMC,eAAe;UAC9C;QACD;QACA,IAAInE,iBAAiB,GAAG,EAAE,EAAEgC,UAAU,GAAG/B,IAAI,CAACsE,GAAG,CAACvC,UAAU,GAAG,CAAC,EAAED,eAAe,CAAC,CAAC,KAC9E,IAAI/B,iBAAiB,GAAG,EAAE,EAAEgC,UAAU,GAAG/B,IAAI,CAACuE,GAAG,CAACxC,UAAU,GAAG,CAAC,EAAEF,gBAAgB,CAAC;QACxF,KAAK,IAAI2C,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGrC,YAAY,CAACnD,MAAM,EAAEwF,EAAE,EAAE,EAAErD,qBAAqB,CAACgB,YAAY,CAACqC,EAAE,CAAC,CAAC;MACzF;IACD;IACA5D,cAAc,GAAG,KAAK;IACtBD,oBAAoB,CAAC,CAAC;EACvB;EACAxC,gBAAgB,GAAGwC,oBAAoB;EACvCG,QAAQ,CAAC2D,gBAAgB,CAAC,kBAAkB,EAAE9D,oBAAoB,CAAC;EACnEA,oBAAoB,CAAC,CAAC;AACvB;AACA,IAAI5F,qBAAqB,GAAG,SAAAA,CAASuG,QAAQ,EAAEC,UAAU,EAAErC,IAAI,EAAE;EAChE,OAAO;IACNwF,WAAW,EAAE;MACZC,MAAM,EAAEC,qBAAqB,CAACtD,QAAQ,EAAEC,UAAU,EAAErC,IAAI,CAAC;MACzDzF,MAAM,EAAE6H;IACT,CAAC;IACDuD,SAAS,EAAEC,IAAI,CAAC3E,GAAG,CAAC;EACrB,CAAC;AACF,CAAC;AACD,IAAI4E,yBAAyB,GAAG,SAAAA,CAAS7F,IAAI,EAAE;EAC9C,OAAO;IACNS,KAAK,EAAET,IAAI,CAAC8F,WAAW;IACvBpF,MAAM,EAAEV,IAAI,CAAC+F;EACd,CAAC;AACF,CAAC;AACD,IAAIL,qBAAqB,GAAG,SAAAA,CAASrF,CAAC,EAAEC,CAAC,EAAE0F,KAAK,EAAE;EACjD,IAAI;IAAEpJ,IAAI;IAAEqJ;EAAI,CAAC,GAAG5F,CAAC;EACrB,IAAIE,CAAC,GAAG3D,IAAI,GAAG0D,CAAC,CAAC1D,IAAI;EACrB,IAAI4D,CAAC,GAAGyF,GAAG,GAAG3F,CAAC,CAAC2F,GAAG;EACnB,IAAI;IAAExF,KAAK;IAAEC;EAAO,CAAC,GAAGpD,yBAAyB,CAAC,CAAC,IAAI0I,KAAK,GAAGH,yBAAyB,CAACG,KAAK,CAAC,GAAG;IACjGvF,KAAK,EAAEJ,CAAC,CAACI,KAAK;IACdC,MAAM,EAAEL,CAAC,CAACK;EACX,CAAC;EACD,OAAO;IACNH,CAAC;IACDC,CAAC;IACDC,KAAK;IACLC,MAAM;IACNwF,KAAK,EAAE7F,CAAC,CAACzD,IAAI;IACbuJ,KAAK,EAAE9F,CAAC,CAAC4F;EACV,CAAC;AACF,CAAC;AACD,SAAS1D,mBAAmBA,CAACvC,IAAI,EAAEkC,UAAU,EAAEE,QAAQ,EAAEC,UAAU,EAAE;EACpE,IAAI+D,QAAQ,GAAGpJ,cAAc,CAACtC,GAAG,CAACsF,IAAI,CAAC;EACvC,IAAI,OAAOoG,QAAQ,KAAK,UAAU,EAAE;EACpC,IAAIC,UAAU,GAAGlH,aAAa,CAACzE,GAAG,CAACsF,IAAI,CAAC;EACxC,IAAIsG,gBAAgB,GAAGnH,aAAa,CAACzE,GAAG,CAACwH,UAAU,CAAC;EACpD,IAAIqE,WAAW,GAAG,CAACF,UAAU,IAAI,CAACjG,UAAU,CAACiG,UAAU,EAAEjE,QAAQ,CAAC;EAClE,IAAIoE,aAAa,GAAG,CAACF,gBAAgB,IAAI,CAAClG,UAAU,CAACkG,gBAAgB,EAAEjE,UAAU,CAAC;EAClF,IAAI,CAACkE,WAAW,IAAI,CAACC,aAAa,EAAE;EACpCrH,aAAa,CAACe,GAAG,CAACF,IAAI,EAAEoC,QAAQ,CAAC;EACjCjD,aAAa,CAACe,GAAG,CAACgC,UAAU,EAAEG,UAAU,CAAC;EACzC,IAAIoE,KAAK,GAAG5K,qBAAqB,CAACuG,QAAQ,EAAEC,UAAU,EAAErC,IAAI,CAAC;EAC7D,IAAIvC,OAAO,CAACC,GAAG,CAAC2D,QAAQ,KAAK,aAAa,IAAIxD,aAAa,CAAC,CAAC,EAAEyD,OAAO,CAACoF,GAAG,CAAC,2BAA2B,EAAE;IACvGC,GAAG,EAAE3G,IAAI,CAAC4G,OAAO;IACjBlI,EAAE,EAAEsB,IAAI,CAACtB,EAAE,IAAI,KAAK,CAAC;IACrBmI,SAAS,EAAE,CAAC7G,IAAI,CAAC6G,SAAS,IAAI,EAAE,EAAEC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;IACxDrB,MAAM,EAAEgB,KAAK,CAACjB,WAAW,CAACC,MAAM;IAChCsB,KAAK,EAAE,CAACV;EACT,CAAC,CAAC;EACF,IAAIjH,YAAY,EAAEC,aAAa,CAACa,GAAG,CAACF,IAAI,EAAE,YAAW;IACpD,OAAOoG,QAAQ,CAACK,KAAK,CAAC;EACvB,CAAC,CAAC,CAAC,KACEL,QAAQ,CAACK,KAAK,CAAC;AACrB;AACA,SAASO,iBAAiBA,CAAChH,IAAI,EAAE6D,UAAU,EAAE;EAC5C1G,KAAK,CAAC4G,GAAG,CAAC/D,IAAI,CAAC;EACf,IAAI6D,UAAU,EAAE3G,gBAAgB,CAACgD,GAAG,CAACF,IAAI,EAAE6D,UAAU,CAAC,CAAC,KAClD3G,gBAAgB,CAAC+J,MAAM,CAACjH,IAAI,CAAC;EAClCN,oBAAoB,CAAC,CAAC;EACtB,IAAIX,0BAA0B,EAAE;IAC/BA,0BAA0B,CAACoF,OAAO,CAACnE,IAAI,CAAC;IACxC3C,iBAAiB,CAAC6C,GAAG,CAACF,IAAI,EAAE,IAAI,CAAC;EAClC;EACAf,gBAAgB,KAAK,IAAI,IAAIA,gBAAgB,KAAK,KAAK,CAAC,IAAIA,gBAAgB,CAAC,CAAC;AAC/E;AACA,SAAS/C,kBAAkBA,CAAC8D,IAAI,EAAEkH,QAAQ,EAAErD,UAAU,EAAE;EACvD7G,cAAc,CAACkD,GAAG,CAACF,IAAI,EAAEkH,QAAQ,CAAC;EAClCF,iBAAiB,CAAChH,IAAI,EAAE6D,UAAU,CAAC;EACnC,OAAO,YAAW;IACjB,OAAOD,WAAW,CAAC5D,IAAI,CAAC;EACzB,CAAC;AACF;AACA,SAAS4D,WAAWA,CAAC5D,IAAI,EAAE;EAC1B7C,KAAK,CAAC8J,MAAM,CAACjH,IAAI,CAAC;EAClBhD,cAAc,CAACiK,MAAM,CAACjH,IAAI,CAAC;EAC3B9C,gBAAgB,CAAC+J,MAAM,CAACjH,IAAI,CAAC;EAC7Bb,aAAa,CAAC8H,MAAM,CAACjH,IAAI,CAAC;EAC1B3C,iBAAiB,CAAC4J,MAAM,CAACjH,IAAI,CAAC;EAC9B,IAAIjB,0BAA0B,EAAEA,0BAA0B,CAAC8F,SAAS,CAAC7E,IAAI,CAAC;AAC3E;AACA,IAAImH,YAAY,GAAG,eAAgB,IAAIlK,OAAO,CAAC,CAAC;AAChD,SAASmK,cAAcA,CAACpH,IAAI,EAAE;EAC7B,IAAIoG,QAAQ,GAAGpJ,cAAc,CAACtC,GAAG,CAACsF,IAAI,CAAC;EACvC,IAAI,OAAOoG,QAAQ,KAAK,UAAU,EAAE;EACpC,IAAIlE,UAAU,GAAGlC,IAAI,CAACmC,aAAa;EACnC,IAAI,CAACD,UAAU,EAAE;EACjB,IAAIE,QAAQ,GAAGpC,IAAI,CAACsC,qBAAqB,CAAC,CAAC;EAC3C,IAAID,UAAU,GAAGH,UAAU,CAACI,qBAAqB,CAAC,CAAC;EACnDnD,aAAa,CAACe,GAAG,CAACF,IAAI,EAAEoC,QAAQ,CAAC;EACjCjD,aAAa,CAACe,GAAG,CAACgC,UAAU,EAAEG,UAAU,CAAC;EACzC+D,QAAQ,CAACvK,qBAAqB,CAACuG,QAAQ,EAAEC,UAAU,EAAErC,IAAI,CAAC,CAAC;AAC5D;AACA,SAAS5D,gBAAgBA,CAACiL,GAAG,EAAEjB,QAAQ,EAAE;EACxC,IAAIkB,YAAY;EAChB,IAAIzD,UAAU,GAAG,CAAC,CAAC,EAAEnH,YAAY,CAAC6K,UAAU,EAAEnJ,uBAAuB,CAAC;EACtE,IAAI4B,IAAI,GAAGwH,gBAAgB,CAAC,CAACF,YAAY,GAAGD,GAAG,CAACI,OAAO,MAAM,IAAI,IAAIH,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,YAAY,CAACI,IAAI,CAAC;EAC1H,IAAI1H,IAAI,IAAIoG,QAAQ,EAAE;IACrBpJ,cAAc,CAACkD,GAAG,CAACF,IAAI,EAAEoG,QAAQ,CAAC;IAClClJ,gBAAgB,CAACgD,GAAG,CAACF,IAAI,EAAE6D,UAAU,CAAC;EACvC;EACA,CAAC,CAAC,EAAEpH,gBAAgB,CAACmC,yBAAyB,EAAE,YAAW;IAC1D,IAAI+I,aAAa;IACjB,IAAI,CAACvB,QAAQ,EAAE;IACf,IAAIwB,QAAQ,GAAGJ,gBAAgB,CAAC,CAACG,aAAa,GAAGN,GAAG,CAACI,OAAO,MAAM,IAAI,IAAIE,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,aAAa,CAACD,IAAI,CAAC;IACjI,IAAIG,QAAQ,GAAGV,YAAY,CAACzM,GAAG,CAAC2M,GAAG,CAAC;IACpC,IAAIO,QAAQ,KAAKC,QAAQ,EAAE;IAC3B,IAAIA,QAAQ,EAAEjE,WAAW,CAACiE,QAAQ,CAAC;IACnCV,YAAY,CAACjH,GAAG,CAACmH,GAAG,EAAEO,QAAQ,CAAC;IAC/B,IAAI,CAACA,QAAQ,EAAE;IACf5K,cAAc,CAACkD,GAAG,CAAC0H,QAAQ,EAAExB,QAAQ,CAAC;IACtCY,iBAAiB,CAACY,QAAQ,EAAE/D,UAAU,CAAC;IACvCuD,cAAc,CAACQ,QAAQ,CAAC;EACzB,CAAC,CAAC;EACF,CAAC,CAAC,EAAEnL,gBAAgB,CAACmC,yBAAyB,EAAE,YAAW;IAC1D,IAAI+I,aAAa;IACjB,IAAI,CAACvB,QAAQ,EAAE;IACf,IAAI0B,KAAK,GAAG,CAACH,aAAa,GAAGN,GAAG,CAACI,OAAO,MAAM,IAAI,IAAIE,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,aAAa,CAACD,IAAI;IAC5G,IAAI,CAACI,KAAK,EAAE;IACZ9K,cAAc,CAACkD,GAAG,CAAC4H,KAAK,EAAE1B,QAAQ,CAAC;IACnCY,iBAAiB,CAACc,KAAK,EAAEjE,UAAU,CAAC;IACpC,IAAIpG,OAAO,CAACC,GAAG,CAAC2D,QAAQ,KAAK,aAAa,IAAIxD,aAAa,CAAC,CAAC,EAAEyD,OAAO,CAACoF,GAAG,CAAC,6BAA6B,EAAE;MACzGC,GAAG,EAAEmB,KAAK,CAAClB,OAAO;MAClBlI,EAAE,EAAEoJ,KAAK,CAACpJ,EAAE,IAAI,KAAK,CAAC;MACtBmI,SAAS,EAAE,CAACiB,KAAK,CAACjB,SAAS,IAAI,EAAE,EAAEC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;MACzDiB,UAAU,EAAE5K,KAAK,CAACwE;IACnB,CAAC,CAAC;IACF,OAAO,YAAW;MACjBiC,WAAW,CAACkE,KAAK,CAAC;MAClB,IAAIE,WAAW,GAAGb,YAAY,CAACzM,GAAG,CAAC2M,GAAG,CAAC;MACvC,IAAIW,WAAW,IAAIA,WAAW,KAAKF,KAAK,EAAElE,WAAW,CAACoE,WAAW,CAAC;MAClEb,YAAY,CAACF,MAAM,CAACI,GAAG,CAAC;IACzB,CAAC;EACF,CAAC,EAAE,CAACA,GAAG,EAAE,CAAC,CAACjB,QAAQ,CAAC,CAAC;AACtB;AACA,SAASoB,gBAAgBA,CAACjH,CAAC,EAAE;EAC5B,IAAI,OAAOoD,WAAW,KAAK,WAAW,EAAE;EACxC,OAAOhH,WAAW,CAAC4D,CAAC,EAAEoD,WAAW,CAAC,GAAGpD,CAAC,GAAG,KAAK,CAAC;AAChD;AACA,IAAI3E,0BAA0B,GAAG,SAAAA,CAASoE,IAAI,EAAE;EAC/C,OAAO,IAAI0E,OAAO,CAAC,UAASC,GAAG,EAAE;IAChC,IAAI,CAAC3E,IAAI,IAAIA,IAAI,CAACiI,QAAQ,KAAK,CAAC,EAAE,OAAOtD,GAAG,CAAC,KAAK,CAAC;IACnD,IAAIT,EAAE,GAAG,IAAIvE,oBAAoB,CAAC,UAASC,OAAO,EAAE;MACnDsE,EAAE,CAACgE,UAAU,CAAC,CAAC;MACf,OAAOvD,GAAG,CAAC/E,OAAO,CAAC,CAAC,CAAC,CAACwB,kBAAkB,CAAC;IAC1C,CAAC,EAAE;MAAEjB,SAAS,EAAE;IAAE,CAAC,CAAC;IACpB+D,EAAE,CAACC,OAAO,CAACnE,IAAI,CAAC;EACjB,CAAC,CAAC;AACH,CAAC;AACD,IAAI/D,WAAW,GAAG,eAAAA,CAAe+D,IAAI,EAAEmI,UAAU,EAAE;EAClD,IAAIC,YAAY,GAAGD,UAAU,KAAKnI,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACmC,aAAa,CAAC;EACjG,IAAIxF,WAAW,CAACyL,YAAY,EAAEzE,WAAW,CAAC,EAAE;IAC3C,IAAI,CAAC0E,OAAO,EAAEC,eAAe,CAAC,GAAG,MAAM5D,OAAO,CAAClK,GAAG,CAAC,CAACoB,0BAA0B,CAACoE,IAAI,CAAC,EAAEpE,0BAA0B,CAACwM,YAAY,CAAC,CAAC,CAAC;IAChI,IAAIE,eAAe,IAAID,OAAO,EAAE,OAAO3C,qBAAqB,CAAC2C,OAAO,EAAEC,eAAe,EAAEtI,IAAI,CAAC;EAC7F;EACA,OAAO,IAAI;AACZ,CAAC;AACD,IAAIlE,OAAO,GAAG,eAAAA,CAAekE,IAAI,EAAEuI,QAAQ,EAAE;EAC5C,IAAIC,GAAG,GAAG,MAAMvM,WAAW,CAAC+D,IAAI,EAAErD,WAAW,CAACqD,IAAI,CAACkC,UAAU,EAAEyB,WAAW,CAAC,GAAG3D,IAAI,CAACkC,UAAU,GAAG,IAAI,CAAC;EACrG,IAAIsG,GAAG,EAAED,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,KAAK,CAAC,IAAIA,QAAQ,CAACC,GAAG,CAACjI,CAAC,EAAEiI,GAAG,CAAChI,CAAC,EAAEgI,GAAG,CAAC/H,KAAK,EAAE+H,GAAG,CAAC9H,MAAM,EAAE8H,GAAG,CAACtC,KAAK,EAAEsC,GAAG,CAACrC,KAAK,CAAC;EACxH,OAAOqC,GAAG;AACX,CAAC;AACD,SAAShN,aAAaA,CAACwE,IAAI,EAAE;EAC5B,OAAO,UAASuI,QAAQ,EAAE;IACzB,OAAOzM,OAAO,CAACkE,IAAI,EAAEuI,QAAQ,CAAC;EAC/B,CAAC;AACF;AACA,IAAIxM,eAAe,GAAG,eAAAA,CAAeiE,IAAI,EAAEuI,QAAQ,EAAE;EACpD,IAAIC,GAAG,GAAG,MAAMvM,WAAW,CAAC+D,IAAI,EAAE,IAAI,CAAC;EACvC,IAAIwI,GAAG,EAAED,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,KAAK,CAAC,IAAIA,QAAQ,CAACC,GAAG,CAACtC,KAAK,EAAEsC,GAAG,CAACrC,KAAK,EAAEqC,GAAG,CAAC/H,KAAK,EAAE+H,GAAG,CAAC9H,MAAM,CAAC;EAC1G,OAAO8H,GAAG;AACX,CAAC;AACD,IAAI/M,qBAAqB,GAAG,SAAAA,CAASuE,IAAI,EAAE;EAC1C,OAAO,UAASuI,QAAQ,EAAE;IACzB,OAAOxM,eAAe,CAACiE,IAAI,EAAEuI,QAAQ,CAAC;EACvC,CAAC;AACF,CAAC;AACD,IAAIvM,aAAa,GAAG,eAAAA,CAAegE,IAAI,EAAEoI,YAAY,EAAEG,QAAQ,EAAE;EAChE,IAAIC,GAAG,GAAG,MAAMvM,WAAW,CAAC+D,IAAI,EAAEoI,YAAY,CAAC;EAC/C,IAAII,GAAG,EAAED,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,KAAK,CAAC,IAAIA,QAAQ,CAACC,GAAG,CAACjI,CAAC,EAAEiI,GAAG,CAAChI,CAAC,EAAEgI,GAAG,CAAC/H,KAAK,EAAE+H,GAAG,CAAC9H,MAAM,EAAE8H,GAAG,CAACtC,KAAK,EAAEsC,GAAG,CAACrC,KAAK,CAAC;EACxH,OAAOqC,GAAG;AACX,CAAC;AACD,SAAS9M,mBAAmBA,CAACsE,IAAI,EAAE;EAClC,OAAO,UAASmI,UAAU,EAAEI,QAAQ,EAAE;IACrC,OAAOvM,aAAa,CAACgE,IAAI,EAAEmI,UAAU,EAAEI,QAAQ,CAAC;EACjD,CAAC;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","index_exports","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","usePretransformDimensions","globalThis","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","createContext","ENABLE","param","disable","children","id","useId","useIsomorphicLayoutEffect","wasDisabled","measureOnNextFrame","jsx","Provider","strategy","resumeLayoutLoop","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","forEach","cb","clear","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver2","rectFetchObserver","IntersectionObserver","entries","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","i","length","BoundingRects","set","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","threshold","scheduleLayoutFrame2","frameScheduled","size","document","hidden","rAF","layoutOnAnimationFrame","setTimeout","updateLayoutIfChanged","node","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","requestAnimationFrame","userSkipVal","TAMAGUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","Number","MAX_SAFE_INTEGER","activeNodes","parentsToObserve","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","HTMLElement","cleanupNode","disableKey","push","add","err","return","io","observe","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","parent","Promise","res","i1","unobserve","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","parent1","min","max","i2","addEventListener","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","onChange","PrevHostNode","emitLayoutSync","ref","_ref_current","useContext","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","node2","totalNodes","swappedNode","nodeType","disconnect","relativeTo","relativeNode","nodeDim","relativeNodeDim","callback","out"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") {\n\t\tfor (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: () => from[key],\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\n__export(index_exports, {\n\tLayoutMeasurementController: () => LayoutMeasurementController,\n\tcreateMeasure: () => createMeasure,\n\tcreateMeasureInWindow: () => createMeasureInWindow,\n\tcreateMeasureLayout: () => createMeasureLayout,\n\tenable: () => enable,\n\tgetBoundingClientRectAsync: () => getBoundingClientRectAsync,\n\tgetElementLayoutEvent: () => getElementLayoutEvent,\n\tmeasure: () => measure,\n\tmeasureInWindow: () => measureInWindow,\n\tmeasureLayout: () => measureLayout,\n\tmeasureNode: () => measureNode,\n\tregisterLayoutNode: () => registerLayoutNode,\n\tsetOnLayoutStrategy: () => setOnLayoutStrategy,\n\tuseElementLayout: () => useElementLayout\n});\nmodule.exports = __toCommonJS(index_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_constants = require(\"@tamagui/constants\");\nvar import_react = require(\"react\");\nfunction _instanceof(left, right) {\n\tif (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) return !!right[Symbol.hasInstance](left);\n\telse return left instanceof right;\n}\nvar LayoutHandlers = /* @__PURE__ */ new WeakMap();\nvar LayoutDisableKey = /* @__PURE__ */ new WeakMap();\nvar Nodes = /* @__PURE__ */ new Set();\nvar usePretransformDimensions = function() {\n\treturn globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\n};\nvar _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nvar DisableLayoutContextValues = {};\nvar DisableLayoutContextKey = /* @__PURE__ */ (0, import_react.createContext)(\"\");\nvar ENABLE = false;\nvar LayoutMeasurementController = function(param) {\n\tvar { disable, children } = param;\n\tvar id = (0, import_react.useId)();\n\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tvar wasDisabled = DisableLayoutContextValues[id] === true;\n\t\tDisableLayoutContextValues[id] = disable;\n\t\tif (wasDisabled && !disable) measureOnNextFrame === null || measureOnNextFrame === void 0 || measureOnNextFrame();\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nvar strategy = \"async\";\nvar resumeLayoutLoop;\nvar measureOnNextFrame;\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n\tresumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();\n}\nvar NodeRectCache = /* @__PURE__ */ new WeakMap();\nvar avoidUpdates = true;\nvar queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach(function(cb) {\n\t\t\t\treturn cb();\n\t\t\t});\n\t\t\tqueuedUpdates.clear();\n\t\t}\n\t}\n}\nfunction rectsEqual(a, b) {\n\treturn a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\nif (ENABLE) {\n\tlet ensureRectFetchObserver2 = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver(function(entries) {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (var i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);\n\t\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout() && lastCallbackDelay > 50) console.warn(\"[onLayout-io-delay]\", lastCallbackDelay + \"ms\", entries.length, \"entries\");\n\t\t\tif (rectFetchResolve) {\n\t\t\t\trectFetchResolve(true);\n\t\t\t\trectFetchResolve = null;\n\t\t\t}\n\t\t}, { threshold: 0 });\n\t\treturn rectFetchObserver;\n\t}, scheduleLayoutFrame2 = function() {\n\t\tif (frameScheduled || strategy === \"off\" || Nodes.size === 0 || document.hidden) return;\n\t\tframeScheduled = true;\n\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t};\n\tvar BoundingRects = /* @__PURE__ */ new WeakMap();\n\tvar rectFetchObserver = null;\n\tvar rectFetchResolve = null;\n\tvar rectFetchStartTime = 0;\n\tvar lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tvar parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tvar nodeRect;\n\t\tvar parentRect;\n\t\tif (strategy === \"async\") {\n\t\t\tnodeRect = BoundingRects.get(node);\n\t\t\tparentRect = BoundingRects.get(parentNode);\n\t\t\tif (!nodeRect || !parentRect) return;\n\t\t} else {\n\t\t\tnodeRect = node.getBoundingClientRect();\n\t\t\tparentRect = parentNode.getBoundingClientRect();\n\t\t}\n\t\temitLayoutIfChanged(node, parentNode, nodeRect, parentRect);\n\t}\n\tvar rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tvar userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tvar BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tvar MAX_SKIP_FRAMES = 20;\n\tvar skipFrames = BASE_SKIP_FRAMES;\n\tvar frameCount = 0;\n\tvar frameScheduled = false;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\tframeScheduled = false;\n\t\t\tscheduleLayoutFrame2();\n\t\t\treturn;\n\t\t}\n\t\tif (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;\n\t\tif (strategy !== \"off\") {\n\t\t\tvar activeNodes = [];\n\t\t\tvar parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar node = _step.value;\n\t\t\t\t\tvar parentElement = node.parentElement;\n\t\t\t\t\tif (!_instanceof(parentElement, HTMLElement)) {\n\t\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvar disableKey = LayoutDisableKey.get(node);\n\t\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\t\tactiveNodes.push(node);\n\t\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (activeNodes.length > 0) {\n\t\t\t\tvar io = ensureRectFetchObserver2();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (var i = 0; i < activeNodes.length; i++) io.observe(activeNodes[i]);\n\t\t\t\tvar _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator1 = parentsToObserve[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n\t\t\t\t\t\tvar parent = _step1.value;\n\t\t\t\t\t\tio.observe(parent);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError1 = true;\n\t\t\t\t\t_iteratorError1 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError1) throw _iteratorError1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait new Promise(function(res) {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (var i1 = 0; i1 < activeNodes.length; i1++) io.unobserve(activeNodes[i1]);\n\t\t\t\tvar _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tfor (var _iterator2 = parentsToObserve[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\t\tvar parent1 = _step2.value;\n\t\t\t\t\t\tio.unobserve(parent1);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t\t_iteratorError2 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return != null) _iterator2.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError2) throw _iteratorError2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);\n\t\t\t\telse if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);\n\t\t\t\tfor (var i2 = 0; i2 < activeNodes.length; i2++) updateLayoutIfChanged(activeNodes[i2]);\n\t\t\t}\n\t\t}\n\t\tframeScheduled = false;\n\t\tscheduleLayoutFrame2();\n\t}\n\tresumeLayoutLoop = scheduleLayoutFrame2;\n\tmeasureOnNextFrame = function() {\n\t\tframeCount = 0;\n\t\tscheduleLayoutFrame2();\n\t};\n\tdocument.addEventListener(\"visibilitychange\", scheduleLayoutFrame2);\n\tscheduleLayoutFrame2();\n}\nvar getElementLayoutEvent = function(nodeRect, parentRect, node) {\n\treturn {\n\t\tnativeEvent: {\n\t\t\tlayout: getRelativeDimensions(nodeRect, parentRect, node),\n\t\t\ttarget: nodeRect\n\t\t},\n\t\ttimeStamp: Date.now()\n\t};\n};\nvar getPreTransformDimensions = function(node) {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nvar getRelativeDimensions = function(a, b, aNode) {\n\tvar { left, top } = a;\n\tvar x = left - b.left;\n\tvar y = top - b.top;\n\tvar { width, height } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {\n\t\twidth: a.width,\n\t\theight: a.height\n\t};\n\treturn {\n\t\tx,\n\t\ty,\n\t\twidth,\n\t\theight,\n\t\tpageX: a.left,\n\t\tpageY: a.top\n\t};\n};\nfunction emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar cachedRect = NodeRectCache.get(node);\n\tvar cachedParentRect = NodeRectCache.get(parentNode);\n\tvar nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tvar parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tvar event = getElementLayoutEvent(nodeRect, parentRect, node);\n\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] change\", {\n\t\ttag: node.tagName,\n\t\tid: node.id || void 0,\n\t\tclassName: (node.className || \"\").slice(0, 60) || void 0,\n\t\tlayout: event.nativeEvent.layout,\n\t\tfirst: !cachedRect\n\t});\n\tif (avoidUpdates) queuedUpdates.set(node, function() {\n\t\treturn onLayout(event);\n\t});\n\telse onLayout(event);\n}\nfunction observeLayoutNode(node, disableKey) {\n\tNodes.add(node);\n\tif (disableKey) LayoutDisableKey.set(node, disableKey);\n\telse LayoutDisableKey.delete(node);\n\tresumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn function() {\n\t\treturn cleanupNode(node);\n\t};\n}\nfunction cleanupNode(node) {\n\tNodes.delete(node);\n\tLayoutHandlers.delete(node);\n\tLayoutDisableKey.delete(node);\n\tNodeRectCache.delete(node);\n}\nvar PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tvar onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tvar parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tvar nodeRect = node.getBoundingClientRect();\n\tvar parentRect = parentNode.getBoundingClientRect();\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tonLayout(getElementLayoutEvent(nodeRect, parentRect, node));\n}\nfunction useElementLayout(ref, onLayout) {\n\tvar _ref_current;\n\tvar disableKey = (0, import_react.useContext)(DisableLayoutContextKey);\n\tvar node = ensureWebElement((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar nextNode = ensureWebElement((_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host);\n\t\tvar prevNode = PrevHostNode.get(ref);\n\t\tif (nextNode === prevNode) return;\n\t\tif (prevNode) cleanupNode(prevNode);\n\t\tPrevHostNode.set(ref, nextNode);\n\t\tif (!nextNode) return;\n\t\tLayoutHandlers.set(nextNode, onLayout);\n\t\tobserveLayoutNode(nextNode, disableKey);\n\t\temitLayoutSync(nextNode);\n\t});\n\t(0, import_constants.useIsomorphicLayoutEffect)(function() {\n\t\tvar _ref_current2;\n\t\tif (!onLayout) return;\n\t\tvar node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;\n\t\tif (!node2) return;\n\t\tLayoutHandlers.set(node2, onLayout);\n\t\tobserveLayoutNode(node2, disableKey);\n\t\tif (process.env.NODE_ENV === \"development\" && isDebugLayout()) console.log(\"[useElementLayout] register\", {\n\t\t\ttag: node2.tagName,\n\t\t\tid: node2.id || void 0,\n\t\t\tclassName: (node2.className || \"\").slice(0, 60) || void 0,\n\t\t\ttotalNodes: Nodes.size\n\t\t});\n\t\treturn function() {\n\t\t\tcleanupNode(node2);\n\t\t\tvar swappedNode = PrevHostNode.get(ref);\n\t\t\tif (swappedNode && swappedNode !== node2) cleanupNode(swappedNode);\n\t\t\tPrevHostNode.delete(ref);\n\t\t};\n\t}, [ref, !!onLayout]);\n}\nfunction ensureWebElement(x) {\n\tif (typeof HTMLElement === \"undefined\") return;\n\treturn _instanceof(x, HTMLElement) ? x : void 0;\n}\nvar getBoundingClientRectAsync = function(node) {\n\treturn new Promise(function(res) {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tvar io = new IntersectionObserver(function(entries) {\n\t\t\tio.disconnect();\n\t\t\treturn res(entries[0].boundingClientRect);\n\t\t}, { threshold: 0 });\n\t\tio.observe(node);\n\t});\n};\nvar measureNode = async function(node, relativeTo) {\n\tvar relativeNode = relativeTo || (node === null || node === void 0 ? void 0 : node.parentElement);\n\tif (_instanceof(relativeNode, HTMLElement)) {\n\t\tvar [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);\n\t\tif (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);\n\t}\n\treturn null;\n};\nvar measure = async function(node, callback) {\n\tvar out = await measureNode(node, _instanceof(node.parentNode, HTMLElement) ? node.parentNode : null);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn function(callback) {\n\t\treturn measure(node, callback);\n\t};\n}\nvar measureInWindow = async function(node, callback) {\n\tvar out = await measureNode(node, null);\n\tif (out) callback === null || callback === void 0 || callback(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nvar createMeasureInWindow = function(node) {\n\treturn function(callback) {\n\t\treturn measureInWindow(node, callback);\n\t};\n};\nvar measureLayout = async function(node, relativeNode, callback) {\n\tvar out = await measureNode(node, relativeNode);\n\tif (out) callback === null || callback === void 0 || callback(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn function(relativeTo, callback) {\n\t\treturn measureLayout(node, relativeTo, callback);\n\t};\n}\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -4,7 +4,6 @@ import { jsx } from "react/jsx-runtime";
|
|
|
4
4
|
const LayoutHandlers = /* @__PURE__ */new WeakMap();
|
|
5
5
|
const LayoutDisableKey = /* @__PURE__ */new WeakMap();
|
|
6
6
|
const Nodes = /* @__PURE__ */new Set();
|
|
7
|
-
const IntersectionState = /* @__PURE__ */new WeakMap();
|
|
8
7
|
const usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === "1";
|
|
9
8
|
let _debugLayout;
|
|
10
9
|
function isDebugLayout() {
|
|
@@ -20,16 +19,18 @@ const LayoutMeasurementController = ({
|
|
|
20
19
|
}) => {
|
|
21
20
|
const id = useId();
|
|
22
21
|
useIsomorphicLayoutEffect(() => {
|
|
22
|
+
const wasDisabled = DisableLayoutContextValues[id] === true;
|
|
23
23
|
DisableLayoutContextValues[id] = disable;
|
|
24
|
+
if (wasDisabled && !disable) measureOnNextFrame?.();
|
|
24
25
|
}, [disable, id]);
|
|
25
26
|
return /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
|
|
26
27
|
value: id,
|
|
27
28
|
children
|
|
28
29
|
});
|
|
29
30
|
};
|
|
30
|
-
let globalIntersectionObserver = null;
|
|
31
31
|
let strategy = "async";
|
|
32
32
|
let resumeLayoutLoop;
|
|
33
|
+
let measureOnNextFrame;
|
|
33
34
|
function setOnLayoutStrategy(state) {
|
|
34
35
|
strategy = state;
|
|
35
36
|
resumeLayoutLoop?.();
|
|
@@ -46,18 +47,6 @@ function enable() {
|
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
|
-
function startGlobalObservers() {
|
|
50
|
-
if (!ENABLE || globalIntersectionObserver) return;
|
|
51
|
-
globalIntersectionObserver = new IntersectionObserver(entries => {
|
|
52
|
-
for (let i = 0; i < entries.length; i++) {
|
|
53
|
-
const entry = entries[i];
|
|
54
|
-
const node = entry.target;
|
|
55
|
-
if (IntersectionState.get(node) !== entry.isIntersecting) IntersectionState.set(node, entry.isIntersecting);
|
|
56
|
-
}
|
|
57
|
-
}, {
|
|
58
|
-
threshold: 0
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
50
|
function rectsEqual(a, b) {
|
|
62
51
|
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
63
52
|
}
|
|
@@ -118,7 +107,7 @@ if (ENABLE) {
|
|
|
118
107
|
}
|
|
119
108
|
if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
|
|
120
109
|
if (strategy !== "off") {
|
|
121
|
-
const
|
|
110
|
+
const activeNodes = [];
|
|
122
111
|
const parentsToObserve = /* @__PURE__ */new Set();
|
|
123
112
|
for (const node of Nodes) {
|
|
124
113
|
const parentElement = node.parentElement;
|
|
@@ -128,28 +117,31 @@ if (ENABLE) {
|
|
|
128
117
|
}
|
|
129
118
|
const disableKey = LayoutDisableKey.get(node);
|
|
130
119
|
if (disableKey && DisableLayoutContextValues[disableKey] === true) continue;
|
|
131
|
-
|
|
132
|
-
visibleNodes.push(node);
|
|
120
|
+
activeNodes.push(node);
|
|
133
121
|
parentsToObserve.add(parentElement);
|
|
134
122
|
}
|
|
135
|
-
if (
|
|
123
|
+
if (activeNodes.length > 0) {
|
|
136
124
|
const io = ensureRectFetchObserver();
|
|
137
125
|
rectFetchStartTime = performance.now();
|
|
138
|
-
for (let i = 0; i <
|
|
126
|
+
for (let i = 0; i < activeNodes.length; i++) io.observe(activeNodes[i]);
|
|
139
127
|
for (const parent of parentsToObserve) io.observe(parent);
|
|
140
128
|
await new Promise(res => {
|
|
141
129
|
rectFetchResolve = res;
|
|
142
130
|
});
|
|
143
|
-
for (let i = 0; i <
|
|
131
|
+
for (let i = 0; i < activeNodes.length; i++) io.unobserve(activeNodes[i]);
|
|
144
132
|
for (const parent of parentsToObserve) io.unobserve(parent);
|
|
145
133
|
if (lastCallbackDelay > 50) skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);else if (lastCallbackDelay < 20) skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);
|
|
146
|
-
for (let i = 0; i <
|
|
134
|
+
for (let i = 0; i < activeNodes.length; i++) updateLayoutIfChanged(activeNodes[i]);
|
|
147
135
|
}
|
|
148
136
|
}
|
|
149
137
|
frameScheduled = false;
|
|
150
138
|
scheduleLayoutFrame();
|
|
151
139
|
}
|
|
152
140
|
resumeLayoutLoop = scheduleLayoutFrame;
|
|
141
|
+
measureOnNextFrame = () => {
|
|
142
|
+
frameCount = 0;
|
|
143
|
+
scheduleLayoutFrame();
|
|
144
|
+
};
|
|
153
145
|
document.addEventListener("visibilitychange", scheduleLayoutFrame);
|
|
154
146
|
scheduleLayoutFrame();
|
|
155
147
|
}
|
|
@@ -214,11 +206,6 @@ function emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {
|
|
|
214
206
|
function observeLayoutNode(node, disableKey) {
|
|
215
207
|
Nodes.add(node);
|
|
216
208
|
if (disableKey) LayoutDisableKey.set(node, disableKey);else LayoutDisableKey.delete(node);
|
|
217
|
-
startGlobalObservers();
|
|
218
|
-
if (globalIntersectionObserver) {
|
|
219
|
-
globalIntersectionObserver.observe(node);
|
|
220
|
-
IntersectionState.set(node, true);
|
|
221
|
-
}
|
|
222
209
|
resumeLayoutLoop?.();
|
|
223
210
|
}
|
|
224
211
|
function registerLayoutNode(node, onChange, disableKey) {
|
|
@@ -231,8 +218,6 @@ function cleanupNode(node) {
|
|
|
231
218
|
LayoutHandlers.delete(node);
|
|
232
219
|
LayoutDisableKey.delete(node);
|
|
233
220
|
NodeRectCache.delete(node);
|
|
234
|
-
IntersectionState.delete(node);
|
|
235
|
-
if (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);
|
|
236
221
|
}
|
|
237
222
|
const PrevHostNode = /* @__PURE__ */new WeakMap();
|
|
238
223
|
function emitLayoutSync(node) {
|