@tamagui/use-element-layout 2.0.0-rc.3 → 2.0.0-rc.30

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.
@@ -33,13 +33,13 @@ __export(index_exports, {
33
33
  measureInWindow: () => measureInWindow,
34
34
  measureLayout: () => measureLayout,
35
35
  measureNode: () => measureNode,
36
+ registerLayoutNode: () => registerLayoutNode,
36
37
  setOnLayoutStrategy: () => setOnLayoutStrategy,
37
38
  useElementLayout: () => useElementLayout
38
39
  });
39
40
  module.exports = __toCommonJS(index_exports);
40
41
  var import_jsx_runtime = require("react/jsx-runtime"),
41
42
  import_constants = require("@tamagui/constants"),
42
- import_is_equal_shallow = require("@tamagui/is-equal-shallow"),
43
43
  import_react = require("react");
44
44
  function _instanceof(left, right) {
45
45
  return right != null && typeof Symbol < "u" && right[Symbol.hasInstance] ? !!right[Symbol.hasInstance](left) : left instanceof right;
@@ -48,7 +48,14 @@ var LayoutHandlers = /* @__PURE__ */new WeakMap(),
48
48
  LayoutDisableKey = /* @__PURE__ */new WeakMap(),
49
49
  Nodes = /* @__PURE__ */new Set(),
50
50
  IntersectionState = /* @__PURE__ */new WeakMap(),
51
- DisableLayoutContextValues = {},
51
+ usePretransformDimensions = function () {
52
+ return globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === !0 || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === "1";
53
+ },
54
+ _debugLayout;
55
+ function isDebugLayout() {
56
+ return _debugLayout === void 0 && (_debugLayout = typeof window < "u" && new URLSearchParams(window.location.search).has("__tamaDebugLayout")), _debugLayout;
57
+ }
58
+ var DisableLayoutContextValues = {},
52
59
  DisableLayoutContextKey = /* @__PURE__ */(0, import_react.createContext)(""),
53
60
  ENABLE = !1,
54
61
  LayoutMeasurementController = function (param) {
@@ -70,7 +77,6 @@ function setOnLayoutStrategy(state) {
70
77
  strategy = state;
71
78
  }
72
79
  var NodeRectCache = /* @__PURE__ */new WeakMap(),
73
- LastChangeTime = /* @__PURE__ */new WeakMap(),
74
80
  avoidUpdates = !0,
75
81
  queuedUpdates = /* @__PURE__ */new Map();
76
82
  function enable() {
@@ -80,16 +86,34 @@ function enable() {
80
86
  }
81
87
  function startGlobalObservers() {
82
88
  !ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(function (entries) {
83
- entries.forEach(function (entry) {
84
- var node = entry.target;
89
+ for (var i = 0; i < entries.length; i++) {
90
+ var entry = entries[i],
91
+ node = entry.target;
85
92
  IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
86
- });
93
+ }
87
94
  }, {
88
95
  threshold: 0
89
96
  }));
90
97
  }
98
+ function rectsEqual(a, b) {
99
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
100
+ }
91
101
  if (ENABLE) {
92
- var BoundingRects = /* @__PURE__ */new WeakMap();
102
+ let ensureRectFetchObserver = function () {
103
+ return rectFetchObserver || (rectFetchObserver = new IntersectionObserver(function (entries) {
104
+ lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
105
+ for (var i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
106
+ process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50 && console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries"), rectFetchResolve && (rectFetchResolve(!0), rectFetchResolve = null);
107
+ }, {
108
+ threshold: 0
109
+ }), rectFetchObserver);
110
+ };
111
+ var ensureRectFetchObserver2 = ensureRectFetchObserver,
112
+ BoundingRects = /* @__PURE__ */new WeakMap(),
113
+ rectFetchObserver = null,
114
+ rectFetchResolve = null,
115
+ rectFetchStartTime = 0,
116
+ lastCallbackDelay = 0;
93
117
  async function updateLayoutIfChanged(node) {
94
118
  var onLayout = LayoutHandlers.get(node);
95
119
  if (typeof onLayout == "function") {
@@ -97,107 +121,144 @@ if (ENABLE) {
97
121
  if (parentNode) {
98
122
  var nodeRect, parentRect;
99
123
  if (strategy === "async") {
100
- var [nr, pr] = await Promise.all([BoundingRects.get(node), BoundingRects.get(parentNode)]);
101
- if (!nr || !pr) return;
102
- nodeRect = nr, parentRect = pr;
124
+ if (nodeRect = BoundingRects.get(node), parentRect = BoundingRects.get(parentNode), !nodeRect || !parentRect) return;
103
125
  } else nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
104
- if (!(!nodeRect || !parentRect)) {
105
- var cachedRect = NodeRectCache.get(node),
106
- cachedParentRect = NodeRectCache.get(parentNode);
107
- if (!cachedRect || !cachedParentRect ||
108
- // has changed one rect
109
- // @ts-expect-error DOMRectReadOnly can go into object
110
- !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) ||
111
- // @ts-expect-error DOMRectReadOnly can go into object
112
- !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect)) {
113
- NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
114
- var event = getElementLayoutEvent(nodeRect, parentRect);
115
- avoidUpdates ? queuedUpdates.set(node, function () {
116
- return onLayout(event);
117
- }) : onLayout(event);
118
- }
126
+ var cachedRect = NodeRectCache.get(node),
127
+ cachedParentRect = NodeRectCache.get(parentNode),
128
+ nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect),
129
+ parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
130
+ if (nodeChanged || parentChanged) {
131
+ NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
132
+ var event = getElementLayoutEvent(nodeRect, parentRect, node);
133
+ process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] change", {
134
+ tag: node.tagName,
135
+ id: node.id || void 0,
136
+ className: (node.className || "").slice(0, 60) || void 0,
137
+ layout: event.nativeEvent.layout,
138
+ first: !cachedRect
139
+ }), avoidUpdates ? queuedUpdates.set(node, function () {
140
+ return onLayout(event);
141
+ }) : onLayout(event);
119
142
  }
120
143
  }
121
144
  }
122
145
  }
123
- var userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP,
124
- RUN_EVERY_X_FRAMES = userSkipVal ? +userSkipVal : 14;
146
+ var rAF = typeof requestAnimationFrame < "u" ? requestAnimationFrame : void 0,
147
+ userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP,
148
+ BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10,
149
+ MAX_SKIP_FRAMES = 20,
150
+ skipFrames = BASE_SKIP_FRAMES,
151
+ frameCount = 0;
125
152
  async function layoutOnAnimationFrame() {
126
- if (strategy !== "off") {
153
+ if (frameCount++ % skipFrames !== 0) {
154
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
155
+ return;
156
+ }
157
+ if (frameCount >= Number.MAX_SAFE_INTEGER && (frameCount = 0), strategy !== "off") {
127
158
  var visibleNodes = [],
128
- didRun = await new Promise(function (res) {
129
- var io = new IntersectionObserver(function (entries) {
130
- io.disconnect();
131
- var _iteratorNormalCompletion2 = !0,
132
- _didIteratorError2 = !1,
133
- _iteratorError2 = void 0;
134
- try {
135
- for (var _iterator2 = entries[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = !0) {
136
- var entry = _step2.value;
137
- BoundingRects.set(entry.target, entry.boundingClientRect);
138
- }
139
- } catch (err) {
140
- _didIteratorError2 = !0, _iteratorError2 = err;
141
- } finally {
142
- try {
143
- !_iteratorNormalCompletion2 && _iterator2.return != null && _iterator2.return();
144
- } finally {
145
- if (_didIteratorError2) throw _iteratorError2;
146
- }
147
- }
148
- res(!0);
149
- }, {
150
- threshold: 0
151
- }),
152
- didObserve = !1,
153
- _iteratorNormalCompletion = !0,
154
- _didIteratorError = !1,
155
- _iteratorError = void 0;
159
+ parentsToObserve = /* @__PURE__ */new Set(),
160
+ _iteratorNormalCompletion = !0,
161
+ _didIteratorError = !1,
162
+ _iteratorError = void 0;
163
+ try {
164
+ for (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
165
+ var node = _step.value,
166
+ parentElement = node.parentElement;
167
+ if (!_instanceof(parentElement, HTMLElement)) {
168
+ cleanupNode(node);
169
+ continue;
170
+ }
171
+ var disableKey = LayoutDisableKey.get(node);
172
+ disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (visibleNodes.push(node), parentsToObserve.add(parentElement));
173
+ }
174
+ } catch (err) {
175
+ _didIteratorError = !0, _iteratorError = err;
176
+ } finally {
177
+ try {
178
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
179
+ } finally {
180
+ if (_didIteratorError) throw _iteratorError;
181
+ }
182
+ }
183
+ if (visibleNodes.length > 0) {
184
+ var io = ensureRectFetchObserver();
185
+ rectFetchStartTime = performance.now();
186
+ for (var i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
187
+ var _iteratorNormalCompletion1 = !0,
188
+ _didIteratorError1 = !1,
189
+ _iteratorError1 = void 0;
190
+ try {
191
+ for (var _iterator1 = parentsToObserve[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
192
+ var parent = _step1.value;
193
+ io.observe(parent);
194
+ }
195
+ } catch (err) {
196
+ _didIteratorError1 = !0, _iteratorError1 = err;
197
+ } finally {
156
198
  try {
157
- for (var _iterator = Nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
158
- var node = _step.value;
159
- if (_instanceof(node.parentElement, HTMLElement)) {
160
- var disableKey = LayoutDisableKey.get(node);
161
- disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (didObserve = !0, io.observe(node), io.observe(node.parentElement), visibleNodes.push(node));
162
- }
163
- }
164
- } catch (err) {
165
- _didIteratorError = !0, _iteratorError = err;
199
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
166
200
  } finally {
167
- try {
168
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
169
- } finally {
170
- if (_didIteratorError) throw _iteratorError;
171
- }
201
+ if (_didIteratorError1) throw _iteratorError1;
172
202
  }
173
- didObserve || res(!1);
203
+ }
204
+ await new Promise(function (res) {
205
+ rectFetchResolve = res;
174
206
  });
175
- didRun && visibleNodes.forEach(function (node) {
176
- updateLayoutIfChanged(node);
177
- });
207
+ for (var i1 = 0; i1 < visibleNodes.length; i1++) io.unobserve(visibleNodes[i1]);
208
+ var _iteratorNormalCompletion2 = !0,
209
+ _didIteratorError2 = !1,
210
+ _iteratorError2 = void 0;
211
+ try {
212
+ for (var _iterator2 = parentsToObserve[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = !0) {
213
+ var parent1 = _step2.value;
214
+ io.unobserve(parent1);
215
+ }
216
+ } catch (err) {
217
+ _didIteratorError2 = !0, _iteratorError2 = err;
218
+ } finally {
219
+ try {
220
+ !_iteratorNormalCompletion2 && _iterator2.return != null && _iterator2.return();
221
+ } finally {
222
+ if (_didIteratorError2) throw _iteratorError2;
223
+ }
224
+ }
225
+ lastCallbackDelay > 50 ? skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES) : lastCallbackDelay < 20 && (skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES));
226
+ for (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);
227
+ }
178
228
  }
179
- setTimeout(layoutOnAnimationFrame, 16.6667 * RUN_EVERY_X_FRAMES);
229
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
180
230
  }
181
231
  layoutOnAnimationFrame();
182
232
  }
183
- var getElementLayoutEvent = function (nodeRect, parentRect) {
233
+ var getElementLayoutEvent = function (nodeRect, parentRect, node) {
184
234
  return {
185
235
  nativeEvent: {
186
- layout: getRelativeDimensions(nodeRect, parentRect),
236
+ layout: getRelativeDimensions(nodeRect, parentRect, node),
187
237
  target: nodeRect
188
238
  },
189
239
  timeStamp: Date.now()
190
240
  };
191
241
  },
192
- getRelativeDimensions = function (a, b) {
242
+ getPreTransformDimensions = function (node) {
243
+ return {
244
+ width: node.offsetWidth,
245
+ height: node.offsetHeight
246
+ };
247
+ },
248
+ getRelativeDimensions = function (a, b, aNode) {
193
249
  var {
194
- height,
195
250
  left,
196
- top,
197
- width
251
+ top
198
252
  } = a,
199
253
  x = left - b.left,
200
- y = top - b.top;
254
+ y = top - b.top,
255
+ {
256
+ width,
257
+ height
258
+ } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {
259
+ width: a.width,
260
+ height: a.height
261
+ };
201
262
  return {
202
263
  x,
203
264
  y,
@@ -207,19 +268,53 @@ var getElementLayoutEvent = function (nodeRect, parentRect) {
207
268
  pageY: a.top
208
269
  };
209
270
  };
271
+ function registerLayoutNode(node, onChange, disableKey) {
272
+ return Nodes.add(node), LayoutHandlers.set(node, onChange), disableKey && LayoutDisableKey.set(node, disableKey), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node), IntersectionState.set(node, !0)), function () {
273
+ return cleanupNode(node);
274
+ };
275
+ }
276
+ function cleanupNode(node) {
277
+ Nodes.delete(node), LayoutHandlers.delete(node), LayoutDisableKey.delete(node), NodeRectCache.delete(node), IntersectionState.delete(node), globalIntersectionObserver && globalIntersectionObserver.unobserve(node);
278
+ }
279
+ var PrevHostNode = /* @__PURE__ */new WeakMap();
210
280
  function useElementLayout(ref, onLayout) {
211
281
  var _ref_current,
212
282
  disableKey = (0, import_react.useContext)(DisableLayoutContextKey),
213
283
  node = ensureWebElement((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host);
214
284
  node && onLayout && (LayoutHandlers.set(node, onLayout), LayoutDisableKey.set(node, disableKey)), (0, import_constants.useIsomorphicLayoutEffect)(function () {
285
+ var _ref_current2;
286
+ if (onLayout) {
287
+ var nextNode = ensureWebElement((_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host),
288
+ prevNode = PrevHostNode.get(ref);
289
+ if (nextNode !== prevNode && (prevNode && cleanupNode(prevNode), PrevHostNode.set(ref, nextNode), !!nextNode)) {
290
+ Nodes.add(nextNode), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(nextNode), IntersectionState.set(nextNode, !0));
291
+ var handler = LayoutHandlers.get(nextNode);
292
+ if (typeof handler == "function") {
293
+ var parentNode = nextNode.parentElement;
294
+ if (parentNode) {
295
+ var nodeRect = nextNode.getBoundingClientRect(),
296
+ parentRect = parentNode.getBoundingClientRect();
297
+ NodeRectCache.set(nextNode, nodeRect), NodeRectCache.set(parentNode, parentRect), handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
298
+ }
299
+ }
300
+ }
301
+ }
302
+ }), (0, import_constants.useIsomorphicLayoutEffect)(function () {
215
303
  var _ref_current2;
216
304
  if (onLayout) {
217
305
  var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
218
306
  if (node2) {
219
- Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0));
307
+ Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0)), process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] register", {
308
+ tag: node2.tagName,
309
+ id: node2.id || void 0,
310
+ className: (node2.className || "").slice(0, 60) || void 0,
311
+ totalNodes: Nodes.size
312
+ });
220
313
  var parentNode = node2.parentNode;
221
- return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect())), function () {
222
- Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2), LastChangeTime.delete(node2), IntersectionState.delete(node2), globalIntersectionObserver && globalIntersectionObserver.unobserve(node2);
314
+ return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2)), function () {
315
+ cleanupNode(node2);
316
+ var swappedNode = PrevHostNode.get(ref);
317
+ swappedNode && swappedNode !== node2 && cleanupNode(swappedNode), PrevHostNode.delete(ref);
223
318
  };
224
319
  }
225
320
  }
@@ -243,7 +338,7 @@ var getBoundingClientRectAsync = function (node) {
243
338
  var relativeNode = relativeTo || node?.parentElement;
244
339
  if (_instanceof(relativeNode, HTMLElement)) {
245
340
  var [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
246
- if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim);
341
+ if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);
247
342
  }
248
343
  return null;
249
344
  },
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","LayoutMeasurementController","createMeasure","createMeasureInWindow","createMeasureLayout","enable","getBoundingClientRectAsync","getElementLayoutEvent","measure","measureInWindow","measureLayout","measureNode","setOnLayoutStrategy","useElementLayout","module","exports","import_jsx_runtime","require","import_constants","import_is_equal_shallow","import_react","_instanceof","left","right","Symbol","hasInstance","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","DisableLayoutContextValues","DisableLayoutContextKey","createContext","ENABLE","param","disable","children","id","useId","useIsomorphicLayoutEffect","jsx","Provider","globalIntersectionObserver","strategy","state","NodeRectCache","LastChangeTime","avoidUpdates","queuedUpdates","Map","forEach","cb","clear","startGlobalObservers","IntersectionObserver","entries","entry","node","target","get","isIntersecting","set","threshold","BoundingRects","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","nr","pr","Promise","all","getBoundingClientRect","cachedRect","cachedParentRect","isEqualShallow","event","userSkipVal","process","env","TAMAGUI_LAYOUT_FRAME_SKIP","RUN_EVERY_X_FRAMES","layoutOnAnimationFrame","visibleNodes","didRun","res","io","disconnect","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","iterator","_step2","next","done","boundingClientRect","err","return","didObserve","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","HTMLElement","disableKey","observe","push","setTimeout","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","now","a","b","height","top","width","x","y","pageX","pageY","ref","_ref_current","useContext","ensureWebElement","current","host","_ref_current2","node2","add","delete","unobserve"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","LayoutMeasurementController","createMeasure","createMeasureInWindow","createMeasureLayout","enable","getBoundingClientRectAsync","getElementLayoutEvent","measure","measureInWindow","measureLayout","measureNode","registerLayoutNode","setOnLayoutStrategy","useElementLayout","module","exports","import_jsx_runtime","require","import_constants","import_react","_instanceof","left","right","Symbol","hasInstance","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__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","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","forEach","cb","clear","startGlobalObservers","IntersectionObserver","entries","i","length","entry","node","target","get","isIntersecting","set","threshold","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver","rectFetchObserver","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","BoundingRects","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","ensureRectFetchObserver2","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","log","tag","tagName","className","slice","layout","nativeEvent","first","rAF","requestAnimationFrame","userSkipVal","TAMAGUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","HTMLElement","cleanupNode","disableKey","push","add","err","return","io","observe","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","parent","Promise","res","i1","unobserve","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","parent1","min","max","i2","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","top","pageX","pageY","onChange","delete","PrevHostNode","ref","_ref_current","useContext","ensureWebElement","current","host","_ref_current2","nextNode","prevNode","handler","node2","totalNodes","size"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}