@tamagui/use-element-layout 2.7.3 → 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.
@@ -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 visibleNodes = [];
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
- if (IntersectionState.get(node) === false) continue;
172
- visibleNodes.push(node);
160
+ activeNodes.push(node);
173
161
  parentsToObserve.add(parentElement);
174
162
  }
175
- if (visibleNodes.length > 0) {
163
+ if (activeNodes.length > 0) {
176
164
  const io = ensureRectFetchObserver();
177
165
  rectFetchStartTime = performance.now();
178
- for (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[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 < visibleNodes.length; i++) io.unobserve(visibleNodes[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 < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[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) {
@@ -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 visibleNodes = [];
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
- if (IntersectionState.get(node) === false) continue;
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 (visibleNodes.length > 0) {
188
+ if (activeNodes.length > 0) {
201
189
  var io = ensureRectFetchObserver2();
202
190
  rectFetchStartTime = performance.now();
203
- for (var i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[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 < visibleNodes.length; i1++) io.unobserve(visibleNodes[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 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[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":["to","__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","__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","target","get","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","all","callback","out"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;EAAA;EAAA,OAAAA,EAAA;AAAA;AAAA,IAAAC,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,2BAAA,EAAAA,CAAA,KAAAA,2BAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,qBAAA,EAAAA,CAAA,KAAAA,qBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAAAC,MAAA,EAAAA,CAAA,KAAAA,MAAA;EAAAC,0BAAA,EAAAA,CAAA,KAAAA,0BAAA;EAAAC,qBAAA,EAAAA,CAAA,KAAAA,qBAAA;EAAAC,OAAA,EAAAA,CAAA,KAAAA,OAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,kBAAA,EAAAA,CAAA,KAAAA,kBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAA0CA,mBAAA;EAC1CC,gBAAA,EAAiFA,CAAA,KAAAA;AAiD7E;AA/CJC,MAAM,CAAAC,OAAA,GAAAtB,YAAiB,CAAAK,aAAI;AAC3B,IAAAkB,kBAAM,GAAmBC,OAAA,oBAAI,CAA6B;AAC1D,IAAAC,gBAAc,GAAAD,OAAA,qBAAqB;AACnC,IAAAE,YAAM,GAAAF,OAAoB;AAK1B,SAAMG,YAAAC,IAAA,EAAAC,KAAA,EAA4B;EAIlC,IAAIA,KAAA,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA,YAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAA,EAAAH,IAAA,OAEJ,OAASA,IAAA,YAAgBC,KAAA;AACvB;AACE,IAAAG,cAAA,GACE,eAAkB,IAAAC,OAAA;AACiD,IACvEC,gBAAA,sBAAAD,OAAA;AACA,IAAAE,KAAO,sBAAAC,GAAA;AACT,IAAAC,iBAAA,sBAAAJ,OAAA;AAGA,IAAAK,yBAAM,YAAAA,CAAA,EAAuD;EAC7D,OAAMC,UAAA,CAAAC,+BAA0B,aAAAC,OAAwB,CAAAC,GAAA,CAAAC,6BAAA;AAExD;AAMO,IAAAC,YAAM;AAA+B,SAC1CC,cAAA;EAAA,IACAD,YAAA,aAAAA,YAAA,UAAAE,MAAA,wBAAAC,eAAA,CAAAD,MAAA,CAAAE,QAAA,CAAAC,MAAA,EAAAC,GAAA;EACF,OAGiBN,YAAA;AACf;AAEA,IAAAO,0BAAA;AACE,IAAAC,uBAAA,kBAAiC,IAAA1B,YAAA,CAAA2B,aAAA;AAAA,IACnCC,MAAI,QAAY;AAEhB,IAAA/C,2BACE,YAAAA,CAAAgD,KAAA;EAIJ;IAAAC,OAAA;IAAAC;EAAA,IAAAF,KAAA;EAGA,IAAIG,EAAA,OAAAhC,YAAA,CAAAiC,KAAA,EAA0D;EAQ9D,IAAIlC,gBAAsC,CAAAmC,yBAAA;IAK1CT,0BAAI,CAAAO,EAAA,IAAAF,OAAA;EAEG,IAAAA,OAAS,EAAAE,EAAA;EACd,sBAAW,IAAAnC,kBAAA,CAAAsC,GAAA,EAAAT,uBAAA,CAAAU,QAAA;IACX1D,KAAA,EAAAsD,EAAA;IACFD;EAmBA;AAGA;AACA,IAAAM,0BAAsB;AAEf,IAAAC,QAAS,UAAe;AAC7B,IAAAC,gBAAkB;AAChB,SAAA9C,mBAAeA,CAAA+C,KAAA;EACfF,QAAI,GAAAE,KAAA;EACFD,gBAAA,KAAc,QAASA,gBAAW,eAAAA,gBAAA;AAClC;AAAoB,IACtBE,aAAA,sBAAAlC,OAAA;AAAA,IACFmC,YAAA;AACF,IAAAC,aAAA,sBAAAC,GAAA;AAEA,SAAS3D,OAAA;EACP,IAAAyD,YAAe;IAEfA,YAAA;IAAiC,IAC9BC,aAAY;MACXA,aAAS,CAAAE,OAAO,WAAYC,EAAA;QAC1B,OAAAA,EAAA,CAAM;MACN;MACAH,aAAI,CAAAI,KAAA;IACF;EAAgD;AAClD;AACF,SACFC,qBAAA;EAAA,IACA,CAAApB,MAAA,IAAAS,0BAAA;EAAAA,0BACa,OAAAY,oBAAA,WAAAC,OAAA;IAAA,KACb,IAAAC,CAAA,MAAAA,CAAA,GAAAD,OAAA,CAAAE,MAAA,EAAAD,CAAA;MACF,IAAAE,KAAA,GAAAH,OAAA,CAAAC,CAAA;MACF,IAAAG,IAAA,GAAAD,KAAA,CAAAE,MAAA;MAGA,IAAA5C,iBAAwC,CAAA6C,GAA6B,CAAAF,IAAA,MAAAD,KAAA,CAAAI,cAAA,EAAA9C,iBAAA,CAAA+C,GAAA,CAAAJ,IAAA,EAAAD,KAAA,CAAAI,cAAA;IACnE;EACF;IAAAE,SAAA;EAAA;AAEA;AASE,SAASC,WAAAC,CAAA,EAAAC,CAAA;EACP,OAAID,CAAA,CAAAE,CAAA,KAAAD,CAAA,CAAAC,CAAA,IAAAF,CAAA,CAAAG,CAAmB,KAAAF,CAAA,CAAAE,CAAO,IAAAH,CAAA,CAAAI,KAAA,KAAAH,CAAA,CAAAG,KAAA,IAAAJ,CAAA,CAAAK,MAAA,KAAAJ,CAAA,CAAAI,MAAA;AAE9B;AAAwB,IAAAtC,MACrB;EACC,IAAAuC,wBAAoB,YAAAA,CAAA,EAAW;MAG/B,IAAAC,iBAAa,EAAG,OAAIA,iBAAqB;MACvCA,iBAAA,OAAcnB,oBAAe,CAAQ,UAASC,OAAE;QAAkBmB,iBACpE,GAAAC,IAAA,CAAAC,KAAA,CAAAC,WAAA,CAAAC,GAAA,KAAAC,kBAAA;QAEA,SACEvB,CAAA,MAAAA,CAAQ,GAAAD,OAAI,CAAAE,MAAa,EAAAD,CAAA,IAAAwB,aACzB,CAAAjB,GAAA,CAAAR,OAAc,CAAAC,CAAA,EACdI,MAAA,EAAAL,OAAA,CAAAC,CAAA,EAAAyB,kBACA;QACA,IAAA7D,OAAA,CAAAC,GAAQ,CAAA6D,QAAA,sBAAA1D,aAAA,MAAAkD,iBAAA,OAAAS,OAAA,CAAAC,IAAA,wBAAAV,iBAAA,SAAAnB,OAAA,CAAAE,MAAA;QAAA,IAAA4B,gBACN;UAAAA,gBACA;UAAoBA,gBACZ;QAAA;MACR;QAAArB,SACF;MAAA;MAAA,OACFS,iBAAA;IAEA;IAAAa,oBAAI,YAAAA,CAAA,EAAkB;MACpB,IAAAC,cAAA,IAAA5C,QAAqB,cAAA7B,KAAA,CAAA0E,IAAA,UAAAC,QAAA,CAAAC,MAAA;MACrBH,cAAA;MAAmBI,GAAA,GACrBA,GAAA,CAAAC,sBAAA,IAAAC,UAAA,CAAAD,sBAAA;IAAA;EACF,IAAAZ,aACA,sBAAApE,OAAA;EAAA,IAAA6D,iBACa;EAAA,IAAAY,gBACb;EAAA,IACFN,kBAAA;EAEA,IAAAL,iBAAO;EAAA,eA2CAoB,qBAATA,CAA+BnC,IAAA;IAC7B,WAAIhD,cAAkB,CAAAkD,GAAA,CAAAF,IAAA,MAAa,UAAS,EAAM;IAChD,IAAAoC,UAAA,GAAApC,IAAA,CAAAqC,aAAA;IAAA,IACF,CAAAD,UAAA;IACA,IAAAE,QAAA;IACA,IAAAC,UAAU;IACZ,IAAAvD,QAAA;MA5FAsD,QAAM,GAAAjB,aAAgB,CAAAnB,GAAA,CAAAF,IAAA;MAGtBuC,UAAI,GAAAlB,aAAiD,CAAAnB,GAAA,CAAAkC,UAAA;MACrD,IAAI,CAAAE,QAAA,KAAAC,UAAsD;IAC1D,OAAI;MACJD,QAAI,GAAAtC,IAAA,CAAAwC,qBAAoB;MAwCxBD,UAAA,GAAAH,UAAe,CAAAI,qBAAyC;IACtD;IACAC,mBAAW,CAAAzC,IAAA,EAAaoC,UAAA,EAAYE,QAAA,EAAAC,UAAA;EAEpC;EACA,IAAAP,GAAI,GAAC,OAAAU,qBAAY,mBAAAA,qBAAA;EAEjB,IAAAC,WAAI,GAAAlF,OAAA,CAAAC,GAAA,CAAAkF,yBAAA;EACJ,IAAAC,gBAAI,GAAAF,WAAA,IAAAA,WAAA;EAGJ,IAAAG,eAAI,GAAa;EACf,IAAAC,UAAA,GAAWF,gBAAc;EACzB,IAAAG,UAAA,IAAa;EAEb,IAAApB,cAAK,QAAa;EAChB,eAAAK,uBAAA;IAAA,IACFe,UAAA,KAAAD,UAAA;MAAAnB,cACK;MACLD,oBAAgB;MAChB;IAA8C;IAGhD,IAAAqB,UAAA,IAAAC,MAAoB,CAAAC,gBAAkB,EAAAF,UAAU;IAClD,IAAAhE,QAAA;MAEA,IAAAmE,YACE,GAAO;MAGT,IAAAC,gBAAoB,kBAAY,IAAAhG,GAAA;MAChC,IAAAiG,yBAAyB;QAAcC,iBAAe;QAAAC,cAAA;MACtD;QACA,KAAI,IAAAC,SAAa,GAAArG,KAAA,CAAAL,MAAA,CAAA2G,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;UACjB,IAAIrD,IAAA,GAAA0D,KAAa,CAAAtI,KAAA;UAIjB,IAAIiH,aAAA,GAAiBrC,IAAA,CAAAqC,aAAA;UAUrB,KAAA1F,WAAe,CAAA0F,aAAA,EAAAwB,WAAyB;YAEtCC,WAAI,CAAA9D,IAAA,CAAe;YACjB;UACA;UACA,IAAA+D,UAAA,GAAA7G,gBAAA,CAAAgD,GAAA,CAAAF,IAAA;UACF,IAAA+D,UAAA,IAAA5F,0BAAA,CAAA4F,UAAA;UAGA,IAAI1G,iBAAc,CAAA6C,GAAO,CAAAF,IAAA,aAAkB;UACzCmD,YAAA,CAAAa,IAAa,CAAAhE,IAAA;UACfoD,gBAAA,CAAAa,GAAA,CAAA5B,aAAA;QAEA;MACE,SAAM6B,GAAA;QAENZ,iBAAM;QAGNC,cAAW,GAAAW,GAAA;MACT;QACA;UACE,KAAAb,yBAAgB,IAAAG,SAAA,CAAAW,MAAA,UAAAX,SAAA,CAAAW,MAAA;QAChB;UAAA,IACFb,iBAAA,QAAAC,cAAA;QACA;MACA;MACA,IAAAJ,YAAI,CAAArD,MAAA,IAAkB;QAEtB,IAAAsE,EAAA,GAAAvD,wBAAsB;QACtBO,kBAAA,GAAiBF,WAAI,CAAAC,GAAA,EAAa;QAAA,KACpC,IAAAtB,CAAA,MAAAA,CAAA,GAAAsD,YAAA,CAAArD,MAAA,EAAAD,CAAA,IAAAuE,EAAA,CAAAC,OAAA,CAAAlB,YAAA,CAAAtD,CAAA;QAEA,IAAAyE,0BAA0B,GAAG;UAAAC,kBAAA;UAAAC,eAAA;QAC3B;UACA,SAAAC,UAAA,GAAArB,gBAAiC,CAAAtG,MAAI,CAAA2G,QAAA,KAAAiB,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAAd,IAAA,IAAAC,IAAA,GAAAU,0BAAA;YAGrC,IAAAK,MAAA,GAASD,MAAO,CAAAtJ,KAAI;YAClBgJ,EAAA,CAAAC,OAAG,CAAAM,MAAQ;UAAe;QAG5B,SAAAT,GAAA;UACEK,kBAAW,OAAM;UAAAC,eACnB,GAAAN,GAAA;QAGA,UAAM;UACJ;YAAmB,IACpB,CAAAI,0BAAA,IAAAG,UAAA,CAAAN,MAAA,UAAAM,UAAA,CAAAN,MAAA;UAGD;YACE,IAAAI,kBAAa,QAAaC,eAAE;UAAA;QAE9B;QACE,UAAGI,OAAA,WAAgBC,GAAA;UAAAnD,gBACrB,GAAAmD,GAAA;QAGA;QACE,SAAAC,EAAA,MAAAA,EAAa,GAAA3B,YAAS,CAAArD,MAAa,EAAAgF,EAAG,IAAAV,EAAA,CAAAW,SAAe,CAAA5B,YAAA,CAAA2B,EAAA;QAAA,IACvDE,0BAAW,OAAoB;UAAIC,kBAAA;UAAAC,eAAA;QAEjC;UAAsD,KACxD,IAAAC,UAAA,GAAA/B,gBAAA,CAAAtG,MAAA,CAAA2G,QAAA,KAAA2B,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAAxB,IAAA,IAAAC,IAAA,GAAAoB,0BAAA;YAGA,IAAAK,OAAS,GAAAD,MAAO,CAAAhK,KAAI;YAClBgJ,EAAA,CAAAW,SAAA,CAAAM,OAAA;UAAqC;QACvC,EACF,OAAAnB,GAAA;UACFe,kBAAA;UAGAC,eAAA,GAAiBhB,GAAA;QACjB;UACF;YAEA,KAAAc,0BAAmB,IAAAG,UAAA,CAAAhB,MAAA,UAAAgB,UAAA,CAAAhB,MAAA;UACnB,UAAS;YACT,IAAAc,kBAAoB,QAAAC,eAAA;UACtB;QAEO;QAKL,IAAAnE,iBAAO,OAAAgC,UAAA,GAAA/B,IAAA,CAAAsE,GAAA,CAAAvC,UAAA,MAAAD,eAAA,OACL,IAAA/B,iBAAa,OAAAgC,UAAA,GAAA/B,IAAA,CAAAuE,GAAA,CAAAxC,UAAA,MAAAF,gBAAA;QAAA,KACX,IAAA2C,EAAQ,MAAAA,EAAA,GAAArC,YAAsB,CAAArD,MAAA,EAAU0F,EAAA,IAAArD,qBAAgB,CAAAgB,YAAA,CAAAqC,EAAA;MAAA;IAChD;IACV5D,cACW,QAAS;IACtBD,oBAAA;EACF;EASA1C,gBAAM,GAAA0C,oBACJ;EAEAG,QAAO,CAAA2D,gBAAA,qBAAA9D,oBAAA;EAAAA,oBACO;AAAA;AACC,IACf9F,qBAAA,YAAAA,CAAAyG,QAAA,EAAAC,UAAA,EAAAvC,IAAA;EACF;IAEA0F,WAAM;MAKJC,MAAM,EAAEC,qBAAc,CAAAtD,QAAA,EAAAC,UAAA,EAAAvC,IAAA;MACtBC,MAAM,EAAAqC;IACN;IAGAuD,SAAQ,EAAAC,IAAO,CAAA3E,GAAA;EAKf;AACF;AAEA,IAAA4E,yBACE,YAAAA,CACA/F,IAAA,EACA;EAGA,OAAM;IACNW,KAAI,EAAAX,IAAO,CAAAgG,WAAA;IAEXpF,MAAM,EAAAZ,IAAA,CAAAiG;EACN;AAEA;AACA,IAAAL,qBAAuB,YAAAA,CAAArF,CAAA,EAAAC,CAAA,EAAA0F,KAAqB;EAE5C;IAAKtJ,IAAA;IAAAuJ;EAAA,IAAA5F,CAAe;EAEpB,IAAAE,CAAA,GAAA7D,IAAA,GAAc4D,CAAA,CAAA5D,IAAI;EAClB,IAAA8D,CAAA,GAAAyF,GAAA,GAAA3F,CAAc,CAAA2F,GAAI;EAElB;IAAAxF,KAAM;IAAAC;EAAQ,IAAAtD,yBAAgC,MAAA4I,KAAY,GAAIH,yBAAA,CAAAG,KAAA;IAE9DvF,KAAI,EAAAJ,CAAA,CAAAI,KAAQ;IACVC,MAAA,EAAAL,CAAA,CAAQK;EAAiC;EAC7B,OACV;IAAeH,CAAA;IACmCC,CAAA;IACxBC,KAC1B;IAAQC,MACT;IACHwF,KAAA,EAAA7F,CAAA,CAAA3D,IAAA;IAEAyJ,KAAI,EAAA9F,CAAA,CAAA4F;EACF;AAA6C;AAE7C,SAAA1D,mBAAcA,CAAAzC,IAAA,EAAAoC,UAAA,EAAAE,QAAA,EAAAC,UAAA;EAAA,IAChB+D,QAAA,GAAAtJ,cAAA,CAAAkD,GAAA,CAAAF,IAAA;EACF,WAAAsG,QAAA;EAEA,IAAAC,UAAS,GAAApH,aAAkB,CAAAe,GAAmB,CAAAF,IAAA;EAC5C,IAAAwG,gBAAc,GAAArH,aAAA,CAAAe,GAAA,CAAAkC,UAAA;EACd,IAAAqE,WAAI,GAAY,CAAAF,UAAA,KAAAjG,UAAA,CAAAiG,UAAA,EAAAjE,QAAA;EACd,IAAAoE,aAAA,GAAiB,CAAAF,gBAAU,IAAU,CAAAlG,UAAA,CAAAkG,gBAAA,EAAAjE,UAAA;EAAA,IACvC,CAAAkE,WAAO,KAAAC,aAAA;EACLvH,aAAA,CAAAiB,GAAA,CAAAJ,IAAiB,EAAAsC,QAAW;EAAAnD,aAC9B,CAAAiB,GAAA,CAAAgC,UAAA,EAAAG,UAAA;EACA,IAAAoE,KAAA,GAAA9K,qBAAqB,CAAAyG,QAAA,EAAAC,UAAA,EAAAvC,IAAA;EACrB,IAAAvC,OAAI,CAAAC,GAAA,CAAA6D,QAAA,kBAA4B,IAAA1D,aAAA,IAAA2D,OAAA,CAAAoF,GAAA;IAC9BC,GAAA,EAAA7G,IAAA,CAAA8G,OAAA;IACApI,EAAA,EAAAsB,IAAA,CAAAtB,EAAA,SAAkB;IACpBqI,SAAA,GAAA/G,IAAA,CAAA+G,SAAA,QAAAC,KAAA;IACArB,MAAA,EAAAgB,KAAA,CAAAjB,WAAmB,CAAAC,MAAA;IACrBsB,KAAA,GAAAV;EAGO;EAKL,IAAAnH,YAAe,EAAAC,aAAU,CAAAe,GAAQ,CAAAJ,IAAA;IACjC,OAAAsG,QAAA,CAAAK,KAAkB;EAClB,QACFL,QAAA,CAAAK,KAAA;AAEA;AACE,SAAMO,iBAAWA,CAAAlH,IAAA,EAAA+D,UAAA;EACjB5G,KAAA,CAAA8G,GAAA,CAAAjE,IAAA;EACA,IAAA+D,UAAA,EAAA7G,gBAA4B,CAAAkD,GAAA,CAAAJ,IAAA,EAAA+D,UAAA,OAC5B7G,gBAAc,CAAOiK,MAAI,CAAAnH,IAAA;EACzBN,oBAAkB;EAClB,IAAAX,0BAAI;IACFA,0BAAA,CAAAsF,OAA2B,CAAArE,IAAU;IACvC3C,iBAAA,CAAA+C,GAAA,CAAAJ,IAAA;EACF;EAEAf,gBAAM,KAAe,QAAAA,gBAAI,KAAyC,UAAAA,gBAAA;AAMlE;AACE,SAAM/C,kBAAWA,CAAA8D,IAAA,EAAeoH,QAAQ,EAAArD,UAAA;EACxC/G,cAAW,CAAAoD,GAAA,CAAAJ,IAAA,EAAaoH,QAAA;EACxBF,iBAAM,CAAAlH,IAAa,EAAA+D,UAAK;EACxB,OAAK,YAAY;IAEjB,OAAMD,WAAW,CAAA9D,IAAK;EACtB;AACA;AACA,SAAA8D,WAAkBA,CAAA9D,IAAA;EAClB7C,KAAA,CAAAgK,MAAS,CAAAnH,IAAA;EACXhD,cAAA,CAAAmK,MAAA,CAAAnH,IAAA;EAEO9C,gBAAS,CAAAiK,MAAA,CAAAnH,IACd;EAGAb,aAAM,CAAAgI,MAAA,CAAAnH,IAAa;EAGnB3C,iBAAa,CAAA8J,MAAA,CAAAnH,IAAA;EACb,IAAAjB,0BAAsB,EAAAA,0BAAA,CAAAgG,SAAA,CAAA/E,IAAA;AACpB;AACA,IAAAqH,YAAA,kBAA2B,IAAApK,OAAU;AAAA,SACvCqK,eAAAtH,IAAA;EAGA,IAAAsG,QAAA,GAAAtJ,cAAA,CAAAkD,GAAA,CAAAF,IAAA;EACE,WAAKsG,QAAU;EACf,IAAAlE,UAAM,GAAApC,IAAW,CAAAqC,aAAA;EACjB,KAAAD,UAAM;EACN,IAAAE,QAAI,GAAAtC,IAAA,CAAawC,qBAAU;EAE3B,IAAAD,UAAI,GAAUH,UAAA,CAAAI,qBAAoB;EAClCrD,aAAA,CAAAiB,GAAa,CAAAJ,IAAI,EAAAsC,QAAK,CAAQ;EAC9BnD,aAAK,CAAAiB,GAAU,CAAAgC,UAAA,EAAAG,UAAA;EAEf+D,QAAA,CAAAzK,qBAAmB,CAAAyG,QAAU,EAAQC,UAAA,EAAAvC,IAAA;AACrC;AACA,SAAA5D,gBAAeA,CAAAmL,GAAQ,EAAAjB,QAAA;EAAA,IACxBkB,YAAA;EAED,IAAAzD,UAAA,OAAArH,YAAA,CAAA+K,UAAA,EAAArJ,uBAAgC;EAC9B,IAAA4B,IAAK,GAAA0H,gBAAU,EAAAF,YAAA,GAAAD,GAAA,CAAAI,OAAA,cAAAH,YAAA,uBAAAA,YAAA,CAAAI,IAAA;EACf,IAAA5H,IAAA,IAAMsG,QAAO,EAAI;IACjBtJ,cAAW,CAAAoD,GAAA,CAAAJ,IAAA,EAAAsG,QAAA;IAEXpJ,gBAAA,CAAekD,GAAA,CAAIJ,IAAA,EAAA+D,UAAc;EACjC;EAEA,IAAAtH,gBAAgB,CAAAmC,yBAAa,cAAiB;IAC5C,IAAAiJ,aAAY;IAA+B,KAAAvB,QACpC;IAAK,IAAAwB,QACN,GAAAJ,gBAAW,EAAAG,aAAA,GAAAN,GAAA,CAAAI,OAAA,cAAAE,aAAA,uBAAAA,aAAA,CAAAD,IAAA;IAAA,IAAAG,QACf,GAAAV,YAAiB,CAAAnH,GAAA,CAAAqH,GAAA;IAAiC,IAAAO,QAClD,KAAAC,QAAkB;IAAA,IACpBA,QAAC,EAAAjE,WAAA,CAAAiE,QAAA;IAAAV,YACH,CAAAjH,GAAA,CAAAmH,GAAA,EAAAO,QAAA;IAEA,KAAAA,QAAO,EAAM;IACX9K,cAAA,CAAAoD,GAAY,CAAA0H,QAAI,EAAAxB,QAAA;IAGhBY,iBAAM,CAAAY,QAAc,EAAA/D,UAAa;IACjCuD,cAAI,CAAAQ,QAAe;EACjB;EAAuB,IAAArL,gBACzB,CAAAmC,yBAAA;IACA,IAAAiJ,aAAa;IAAU,IACzB,CAAAvB,QAAA;IACF,IAAI0B,KAAK,GAAE,CAAAH,aAAS,GAAAN,GAAA,CAAAI,OAAA,cAAAE,aAAA,uBAAAA,aAAA,CAAAD,IAAA;IACtB,KAAAI,KAAA;IAEAhL,cAAS,CAAAoD,GAAA,CAAA4H,KAAoB,EAAA1B,QAA+B;IAC1DY,iBAAW,CAAAc,KAAA,EAAAjE,UAAgB;IACzB,IAAAtG,OAAO,CAAAC,GAAA,CAAA6D,QAAA,sBAAA1D,aAAA,IAAA2D,OAAA,CAAAoF,GAAA;MACTC,GAAA,EAAAmB,KAAA,CAAAlB,OAAA;MACApI,EAAA,EAAAsJ,KAAO,CAAAtJ,EAAA,SAAa;MACtBqI,SAAA,GAAAiB,KAAA,CAAAjB,SAAA,QAAAC,KAAA;MAEOiB,UAAM,EAAA9K,KAAA,CAAA0E;IAGX;IACE,OAAK,YAAQ;MAEbiC,WAAM,CAAKkE,KAAI;MAAA,IACZE,WAAA,GAAYb,YAAA,CAAAnH,GAAA,CAAAqH,GAAA;MACX,IAAAW,WAAG,IAAWA,WAAA,KAAAF,KAAA,EAAAlE,WAAA,CAAAoE,WAAA;MACdb,YAAO,CAAAF,MAAI,CAAAI,GAAA,CAAQ;IAAqB;EAC1C,IAAAA,GACA,IAAAjB,QAAA;AAAA;AACa,SACboB,iBAAAjH,CAAA;EAAA,IACF,OAAAoD,WAAA;EACA,OAAGlH,WAAY,CAAA8D,CAAA,EAAAoD,WAAA,IAAApD,CAAA;AAAA;AAEnB,IAAA7E,0BAAA,YAAAA,CAAAoE,IAAA;EAEO,OAAM,IAAA4E,OAAA,CAAc,UACzBC,GAAA,EACA;IAEA,KAAA7E,IAAM,IAAAA,IAAA,CAAAmI,QAAe,eAAoBtD,GAAA;IACzC,IAAIT,EAAA,OAAAzE,oBAAwB,WAAaC,OAAA;MACvCwE,EAAA,CAAAgE,UAAO;MAA8C,OACnDvD,GAAA,CAAAjF,OAAA,IAAA0B,kBAA+B;IAAA;MAC/BjB,SAAA;IAAA;IAAuC+D,EACzC,CAACC,OAAA,CAAArE,IAAA;EACD;AACE;AAA2D,IAC7D/D,WAAA,kBAAAA,CAAA+D,IAAA,EAAAqI,UAAA;EAAA,IACFC,YAAA,GAAAD,UAAA,KAAArI,IAAA,aAAAA,IAAA,uBAAAA,IAAA,CAAAqC,aAAA;EACA,IAAA1F,WAAO,CAAA2L,YAAA,EAAAzE,WAAA;IACT,KAAA0E,OAAA,EAAAC,eAAA,UAAA5D,OAAA,CAAA6D,GAAA,EAAA7M,0BAAA,CAAAoE,IAAA,GAAApE,0BAAA,CAAA0M,YAAA;IAaO,IAAME,eAAU,IACrBD,OACA,SAAA3C,qBACgC,CAAA2C,OAAA,EAAAC,eAAA,EAAAxI,IAAA;EAChC;EAAkB,OAChB;AAAA;AAC2D,IAC7DlE,OAAA,kBAAAA,CAAAkE,IAAA,EAAA0I,QAAA;EACA,IAAAC,GAAI,GAAK,MAAA1M,WAAA,CAAA+D,IAAA,EAAArD,WAAA,CAAAqD,IAAA,CAAAoC,UAAA,EAAAyB,WAAA,IAAA7D,IAAA,CAAAoC,UAAA;EACP,IAAAuG,GAAA,EAAAD,QAAW,KAAO,IAAI,IAAGA,QAAI,KAAW,UAAQA,QAAI,CAAOC,GAAA,CAAIlI,CAAA,EAAAkI,GAAK,CAAAjI,CAAA,EAAAiI,GAAA,CAAAhI,KAAA,EAAAgI,GAAA,CAAA/H,MAAA,EAAA+H,GAAA,CAAAvC,KAAA,EAAAuC,GAAA,CAAAtC,KAAA;EAAA,OACtEsC,GAAA;AACA;AACF,SAAAnN,cAAAwE,IAAA;EAEO,iBAAS0I,QACd;IAEA,OAAO5M,OAAC,CAAAkE,IAAA,EAAa0I,QAAQ;EAC/B;AAIO;AAIL,IAAA3M,eAAY,GAAM,eAAAA,CAAYiE,IAAM,EAAI0I,QAAA;EACxC,IAAAC,GAAI,GAAK,MAAA1M,WAAA,CAAA+D,IAAA;EACP,IAAA2I,GAAA,EAAAD,QAAW,KAAI,IAAO,IAAIA,QAAO,KAAI,KAAO,KAAIA,QAAM,CAAAC,GAAA,CAAAvC,KAAA,EAAAuC,GAAA,CAAAtC,KAAA,EAAAsC,GAAA,CAAAhI,KAAA,EAAAgI,GAAA,CAAA/H,MAAA;EAAA,OACxD+H,GAAA;AACA;AACF,IAAAlN,qBAAA,YAAAA,CAAAuE,IAAA;EAEO,OAAM,UAAA0I,QAAA;IAGX,OAAO3M,eAAc,CAAAiE,IAAA,EAAA0I,QAAgB;EACvC;AAEO;AAKL,IAAA1M,aAAY,GAAM,eAAAA,CAAYgE,IAAM,EAAAsI,YAAY,EAAAI,QAAA;EAChD,IAAAC,GAAI,GAAK,MAAA1M,WAAA,CAAA+D,IAAA,EAAAsI,YAAA;EACP,IAAAK,GAAA,EAAAD,QAAW,KAAO,IAAI,IAAGA,QAAI,KAAW,UAAQA,QAAI,CAAOC,GAAA,CAAIlI,CAAA,EAAAkI,GAAK,CAAAjI,CAAA,EAAAiI,GAAA,CAAAhI,KAAA,EAAAgI,GAAA,CAAA/H,MAAA,EAAA+H,GAAA,CAAAvC,KAAA,EAAAuC,GAAA,CAAAtC,KAAA;EAAA,OACtEsC,GAAA;AACA;AACF,SAAAjN,oBAAAsE,IAAA;EAEO,iBAASqI,UAAA,EACdK,QAC+E;IAC/E,OAAO1M,aAAa,CAAAgE,IAAA,EAAAqI,UAAa,EAAAK,QAAc;EACjD","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 visibleNodes = [];
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
- if (IntersectionState.get(node) === false) continue;
132
- visibleNodes.push(node);
120
+ activeNodes.push(node);
133
121
  parentsToObserve.add(parentElement);
134
122
  }
135
- if (visibleNodes.length > 0) {
123
+ if (activeNodes.length > 0) {
136
124
  const io = ensureRectFetchObserver();
137
125
  rectFetchStartTime = performance.now();
138
- for (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[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 < visibleNodes.length; i++) io.unobserve(visibleNodes[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 < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[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) {
@@ -1 +1 @@
1
- {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","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","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","resumeLayoutLoop","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","scheduleLayoutFrame","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","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","addEventListener","getElementLayoutEvent","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","registerLayoutNode","onChange","PrevHostNode","emitLayoutSync","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","node2","totalNodes","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["index.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useId } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n\nconst LayoutHandlers = /* @__PURE__ */ new WeakMap();\nconst LayoutDisableKey = /* @__PURE__ */ new WeakMap();\nconst Nodes = /* @__PURE__ */ new Set();\nconst IntersectionState = /* @__PURE__ */ new WeakMap();\nconst usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\nlet _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nconst DisableLayoutContextValues = {};\nconst DisableLayoutContextKey = createContext(\"\");\nconst ENABLE = typeof IntersectionObserver !== \"undefined\";\nconst LayoutMeasurementController = ({ disable, children }) => {\n\tconst id = useId();\n\tuseIsomorphicLayoutEffect(() => {\n\t\tDisableLayoutContextValues[id] = disable;\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ jsx(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nlet globalIntersectionObserver = null;\nlet strategy = \"async\";\nlet resumeLayoutLoop;\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n\tresumeLayoutLoop?.();\n}\nconst NodeRectCache = /* @__PURE__ */ new WeakMap();\nlet avoidUpdates = true;\nconst queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach((cb) => cb());\n\t\t\tqueuedUpdates.clear();\n\t\t}\n\t}\n}\nfunction startGlobalObservers() {\n\tif (!ENABLE || globalIntersectionObserver) return;\n\tglobalIntersectionObserver = new IntersectionObserver((entries) => {\n\t\tfor (let i = 0; i < entries.length; i++) {\n\t\t\tconst entry = entries[i];\n\t\t\tconst 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 ensureRectFetchObserver = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver((entries) => {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (let 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}, scheduleLayoutFrame = 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\tconst BoundingRects = /* @__PURE__ */ new WeakMap();\n\tlet rectFetchObserver = null;\n\tlet rectFetchResolve = null;\n\tlet rectFetchStartTime = 0;\n\tlet lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tconst parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tlet nodeRect;\n\t\tlet 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\tconst rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tconst userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tconst BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tconst MAX_SKIP_FRAMES = 20;\n\tlet skipFrames = BASE_SKIP_FRAMES;\n\tlet frameCount = 0;\n\tlet frameScheduled = false;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\tframeScheduled = false;\n\t\t\tscheduleLayoutFrame();\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\tconst visibleNodes = [];\n\t\t\tconst parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tfor (const node of Nodes) {\n\t\t\t\tconst parentElement = node.parentElement;\n\t\t\t\tif (!(parentElement instanceof HTMLElement)) {\n\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst disableKey = LayoutDisableKey.get(node);\n\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\tif (IntersectionState.get(node) === false) continue;\n\t\t\t\tvisibleNodes.push(node);\n\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t}\n\t\t\tif (visibleNodes.length > 0) {\n\t\t\t\tconst io = ensureRectFetchObserver();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.observe(parent);\n\t\t\t\tawait new Promise((res) => {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.unobserve(parent);\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 (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);\n\t\t\t}\n\t\t}\n\t\tframeScheduled = false;\n\t\tscheduleLayoutFrame();\n\t}\n\tresumeLayoutLoop = scheduleLayoutFrame;\n\tdocument.addEventListener(\"visibilitychange\", scheduleLayoutFrame);\n\tscheduleLayoutFrame();\n}\nconst getElementLayoutEvent = (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};\nconst getPreTransformDimensions = (node) => {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nconst getRelativeDimensions = (a, b, aNode) => {\n\tconst { left, top } = a;\n\tconst x = left - b.left;\n\tconst y = top - b.top;\n\tconst { 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\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst cachedRect = NodeRectCache.get(node);\n\tconst cachedParentRect = NodeRectCache.get(parentNode);\n\tconst nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tconst parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tconst 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, () => onLayout(event));\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?.();\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn () => cleanupNode(node);\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}\nconst PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tconst nodeRect = node.getBoundingClientRect();\n\tconst 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\tconst disableKey = useContext(DisableLayoutContextKey);\n\tconst node = ensureWebElement(ref.current?.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst nextNode = ensureWebElement(ref.current?.host);\n\t\tconst 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\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst node2 = ref.current?.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 () => {\n\t\t\tcleanupNode(node2);\n\t\t\tconst 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 x instanceof HTMLElement ? x : void 0;\n}\nconst getBoundingClientRectAsync = (node) => {\n\treturn new Promise((res) => {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tconst io = new IntersectionObserver((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};\nconst measureNode = async (node, relativeTo) => {\n\tconst relativeNode = relativeTo || node?.parentElement;\n\tif (relativeNode instanceof HTMLElement) {\n\t\tconst [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};\nconst measure = async (node, callback) => {\n\tconst out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn (callback) => measure(node, callback);\n}\nconst measureInWindow = async (node, callback) => {\n\tconst out = await measureNode(node, null);\n\tif (out) callback?.(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nconst createMeasureInWindow = (node) => {\n\treturn (callback) => measureInWindow(node, callback);\n};\nconst measureLayout = async (node, relativeNode, callback) => {\n\tconst out = await measureNode(node, relativeNode);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn (relativeTo, callback) => measureLayout(node, relativeTo, callback);\n}\n\nexport { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","usePretransformDimensions","globalThis","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","wasDisabled","measureOnNextFrame","Provider","value","strategy","resumeLayoutLoop","setOnLayoutStrategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver","rectFetchObserver","entries","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","i","length","BoundingRects","set","target","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","threshold","scheduleLayoutFrame","frameScheduled","size","document","hidden","rAF","layoutOnAnimationFrame","setTimeout","updateLayoutIfChanged","node","get","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","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","addEventListener","getElementLayoutEvent","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","onLayout","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","first","observeLayoutNode","delete","registerLayoutNode","onChange","PrevHostNode","emitLayoutSync","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","node2","totalNodes","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["index.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useId } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n\nconst LayoutHandlers = /* @__PURE__ */ new WeakMap();\nconst LayoutDisableKey = /* @__PURE__ */ new WeakMap();\nconst Nodes = /* @__PURE__ */ new Set();\nconst usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === true || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === \"1\";\nlet _debugLayout;\nfunction isDebugLayout() {\n\tif (_debugLayout === void 0) _debugLayout = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).has(\"__tamaDebugLayout\");\n\treturn _debugLayout;\n}\nconst DisableLayoutContextValues = {};\nconst DisableLayoutContextKey = createContext(\"\");\nconst ENABLE = typeof IntersectionObserver !== \"undefined\";\nconst LayoutMeasurementController = ({ disable, children }) => {\n\tconst id = useId();\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconst wasDisabled = DisableLayoutContextValues[id] === true;\n\t\tDisableLayoutContextValues[id] = disable;\n\t\tif (wasDisabled && !disable) measureOnNextFrame?.();\n\t}, [disable, id]);\n\treturn /* @__PURE__ */ jsx(DisableLayoutContextKey.Provider, {\n\t\tvalue: id,\n\t\tchildren\n\t});\n};\nlet strategy = \"async\";\nlet resumeLayoutLoop;\nlet measureOnNextFrame;\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\n\tresumeLayoutLoop?.();\n}\nconst NodeRectCache = /* @__PURE__ */ new WeakMap();\nlet avoidUpdates = true;\nconst queuedUpdates = /* @__PURE__ */ new Map();\nfunction enable() {\n\tif (avoidUpdates) {\n\t\tavoidUpdates = false;\n\t\tif (queuedUpdates) {\n\t\t\tqueuedUpdates.forEach((cb) => cb());\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 ensureRectFetchObserver = function() {\n\t\tif (rectFetchObserver) return rectFetchObserver;\n\t\trectFetchObserver = new IntersectionObserver((entries) => {\n\t\t\tlastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);\n\t\t\tfor (let 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}, scheduleLayoutFrame = 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\tconst BoundingRects = /* @__PURE__ */ new WeakMap();\n\tlet rectFetchObserver = null;\n\tlet rectFetchResolve = null;\n\tlet rectFetchStartTime = 0;\n\tlet lastCallbackDelay = 0;\n\tasync function updateLayoutIfChanged(node) {\n\t\tif (typeof LayoutHandlers.get(node) !== \"function\") return;\n\t\tconst parentNode = node.parentElement;\n\t\tif (!parentNode) return;\n\t\tlet nodeRect;\n\t\tlet 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\tconst rAF = typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : void 0;\n\tconst userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP;\n\tconst BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;\n\tconst MAX_SKIP_FRAMES = 20;\n\tlet skipFrames = BASE_SKIP_FRAMES;\n\tlet frameCount = 0;\n\tlet frameScheduled = false;\n\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\tframeScheduled = false;\n\t\t\tscheduleLayoutFrame();\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\tconst activeNodes = [];\n\t\t\tconst parentsToObserve = /* @__PURE__ */ new Set();\n\t\t\tfor (const node of Nodes) {\n\t\t\t\tconst parentElement = node.parentElement;\n\t\t\t\tif (!(parentElement instanceof HTMLElement)) {\n\t\t\t\t\tcleanupNode(node);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst disableKey = LayoutDisableKey.get(node);\n\t\t\t\tif (disableKey && DisableLayoutContextValues[disableKey] === true) continue;\n\t\t\t\tactiveNodes.push(node);\n\t\t\t\tparentsToObserve.add(parentElement);\n\t\t\t}\n\t\t\tif (activeNodes.length > 0) {\n\t\t\t\tconst io = ensureRectFetchObserver();\n\t\t\t\trectFetchStartTime = performance.now();\n\t\t\t\tfor (let i = 0; i < activeNodes.length; i++) io.observe(activeNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.observe(parent);\n\t\t\t\tawait new Promise((res) => {\n\t\t\t\t\trectFetchResolve = res;\n\t\t\t\t});\n\t\t\t\tfor (let i = 0; i < activeNodes.length; i++) io.unobserve(activeNodes[i]);\n\t\t\t\tfor (const parent of parentsToObserve) io.unobserve(parent);\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 (let i = 0; i < activeNodes.length; i++) updateLayoutIfChanged(activeNodes[i]);\n\t\t\t}\n\t\t}\n\t\tframeScheduled = false;\n\t\tscheduleLayoutFrame();\n\t}\n\tresumeLayoutLoop = scheduleLayoutFrame;\n\tmeasureOnNextFrame = () => {\n\t\tframeCount = 0;\n\t\tscheduleLayoutFrame();\n\t};\n\tdocument.addEventListener(\"visibilitychange\", scheduleLayoutFrame);\n\tscheduleLayoutFrame();\n}\nconst getElementLayoutEvent = (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};\nconst getPreTransformDimensions = (node) => {\n\treturn {\n\t\twidth: node.offsetWidth,\n\t\theight: node.offsetHeight\n\t};\n};\nconst getRelativeDimensions = (a, b, aNode) => {\n\tconst { left, top } = a;\n\tconst x = left - b.left;\n\tconst y = top - b.top;\n\tconst { 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\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst cachedRect = NodeRectCache.get(node);\n\tconst cachedParentRect = NodeRectCache.get(parentNode);\n\tconst nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);\n\tconst parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);\n\tif (!nodeChanged && !parentChanged) return;\n\tNodeRectCache.set(node, nodeRect);\n\tNodeRectCache.set(parentNode, parentRect);\n\tconst 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, () => onLayout(event));\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?.();\n}\nfunction registerLayoutNode(node, onChange, disableKey) {\n\tLayoutHandlers.set(node, onChange);\n\tobserveLayoutNode(node, disableKey);\n\treturn () => cleanupNode(node);\n}\nfunction cleanupNode(node) {\n\tNodes.delete(node);\n\tLayoutHandlers.delete(node);\n\tLayoutDisableKey.delete(node);\n\tNodeRectCache.delete(node);\n}\nconst PrevHostNode = /* @__PURE__ */ new WeakMap();\nfunction emitLayoutSync(node) {\n\tconst onLayout = LayoutHandlers.get(node);\n\tif (typeof onLayout !== \"function\") return;\n\tconst parentNode = node.parentElement;\n\tif (!parentNode) return;\n\tconst nodeRect = node.getBoundingClientRect();\n\tconst 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\tconst disableKey = useContext(DisableLayoutContextKey);\n\tconst node = ensureWebElement(ref.current?.host);\n\tif (node && onLayout) {\n\t\tLayoutHandlers.set(node, onLayout);\n\t\tLayoutDisableKey.set(node, disableKey);\n\t}\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst nextNode = ensureWebElement(ref.current?.host);\n\t\tconst 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\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!onLayout) return;\n\t\tconst node2 = ref.current?.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 () => {\n\t\t\tcleanupNode(node2);\n\t\t\tconst 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 x instanceof HTMLElement ? x : void 0;\n}\nconst getBoundingClientRectAsync = (node) => {\n\treturn new Promise((res) => {\n\t\tif (!node || node.nodeType !== 1) return res(false);\n\t\tconst io = new IntersectionObserver((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};\nconst measureNode = async (node, relativeTo) => {\n\tconst relativeNode = relativeTo || node?.parentElement;\n\tif (relativeNode instanceof HTMLElement) {\n\t\tconst [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};\nconst measure = async (node, callback) => {\n\tconst out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasure(node) {\n\treturn (callback) => measure(node, callback);\n}\nconst measureInWindow = async (node, callback) => {\n\tconst out = await measureNode(node, null);\n\tif (out) callback?.(out.pageX, out.pageY, out.width, out.height);\n\treturn out;\n};\nconst createMeasureInWindow = (node) => {\n\treturn (callback) => measureInWindow(node, callback);\n};\nconst measureLayout = async (node, relativeNode, callback) => {\n\tconst out = await measureNode(node, relativeNode);\n\tif (out) callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);\n\treturn out;\n};\nfunction createMeasureLayout(node) {\n\treturn (relativeTo, callback) => measureLayout(node, relativeTo, callback);\n}\n\nexport { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };"],"mappings":"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","ignoreList":[]}