@tamagui/use-element-layout 1.129.6-1751237024118 → 1.129.7

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.
@@ -39,11 +39,9 @@ function setOnLayoutStrategy(state) {
39
39
  strategy = state;
40
40
  }
41
41
  const NodeRectCache = /* @__PURE__ */new WeakMap(),
42
- ParentRectCache = /* @__PURE__ */new WeakMap(),
43
- DebounceTimers = /* @__PURE__ */new WeakMap(),
44
- LastChangeTime = /* @__PURE__ */new WeakMap(),
45
- rAF = typeof window < "u" ? window.requestAnimationFrame : void 0,
46
- DEBOUNCE_DELAY = 32;
42
+ ParentRectCache = /* @__PURE__ */new WeakMap();
43
+ const LastChangeTime = /* @__PURE__ */new WeakMap(),
44
+ rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
47
45
  let avoidUpdates = !0;
48
46
  const queuedUpdates = /* @__PURE__ */new Map();
49
47
  function enable() {
@@ -53,71 +51,46 @@ if (import_constants.isClient) if (rAF) {
53
51
  let layoutOnAnimationFrame = function () {
54
52
  const now = Date.now(),
55
53
  timeSinceLastFrame = now - lastFrameAt;
56
- lastFrameAt = now, strategy !== "off" && (timeSinceLastFrame > 16.67 * numDroppedFramesUntilPause || Nodes.forEach(updateLayoutIfChanged)), rAF(layoutOnAnimationFrame);
54
+ lastFrameAt = now, strategy !== "off" && (timeSinceLastFrame > 16.67 * numDroppedFramesUntilPause || Nodes.forEach(node => {
55
+ updateLayoutIfChanged(node, lastFrameAt);
56
+ })), rAF(layoutOnAnimationFrame);
57
57
  },
58
58
  lastFrameAt = Date.now();
59
59
  const numDroppedFramesUntilPause = 2;
60
- async function updateLayoutIfChanged(node) {
61
- const nodeRect = node.getBoundingClientRect(),
62
- parentNode = node.parentElement,
63
- parentRect = parentNode?.getBoundingClientRect(),
64
- onLayout = LayoutHandlers.get(node);
60
+ async function updateLayoutIfChanged(node, frameId) {
61
+ const parentNode = node.parentElement;
62
+ let nodeRect, parentRect;
63
+ if (strategy === "async") {
64
+ const [nr, pr] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(parentNode)]);
65
+ if (frameId !== lastFrameAt) return;
66
+ nodeRect = nr, parentRect = pr;
67
+ } else nodeRect = node.getBoundingClientRect(), parentRect = parentNode?.getBoundingClientRect();
68
+ if (!parentRect) return;
69
+ const onLayout = LayoutHandlers.get(node);
65
70
  if (typeof onLayout != "function") return;
66
71
  const cachedRect = NodeRectCache.get(node),
67
72
  cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
68
73
  if (!cachedRect ||
69
74
  // has changed one rect
70
- !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect))) if (NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect), avoidUpdates) {
71
- const event = getElementLayoutEvent(node);
72
- queuedUpdates.set(node, () => onLayout(event));
73
- } else if (strategy === "async") {
74
- const now = Date.now();
75
- LastChangeTime.set(node, now);
76
- const existingTimer = DebounceTimers.get(node);
77
- existingTimer && clearTimeout(existingTimer);
78
- const timer = setTimeout(async () => {
79
- const lastChange = LastChangeTime.get(node) || 0,
80
- timeSinceChange = Date.now() - lastChange;
81
- if (timeSinceChange >= DEBOUNCE_DELAY) {
82
- const event = await getElementLayoutEventAsync(node);
83
- onLayout(event), DebounceTimers.delete(node);
84
- } else {
85
- const remainingDelay = DEBOUNCE_DELAY - timeSinceChange,
86
- newTimer = setTimeout(async () => {
87
- const event = await getElementLayoutEventAsync(node);
88
- onLayout(event), DebounceTimers.delete(node);
89
- }, remainingDelay);
90
- DebounceTimers.set(node, newTimer);
91
- }
92
- }, DEBOUNCE_DELAY);
93
- DebounceTimers.set(node, timer);
94
- } else {
95
- const event = getElementLayoutEvent(node);
96
- onLayout(event);
75
+ !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect))) {
76
+ if (NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect), avoidUpdates) {
77
+ const event = getElementLayoutEvent(nodeRect, parentRect);
78
+ queuedUpdates.set(node, () => onLayout(event));
79
+ } else if (strategy !== "async") {
80
+ const event = getElementLayoutEvent(nodeRect, parentRect);
81
+ onLayout(event);
82
+ }
97
83
  }
98
84
  }
99
85
  rAF(layoutOnAnimationFrame);
100
86
  } else process.env.NODE_ENV === "development" && console.warn("No requestAnimationFrame - please polyfill for onLayout to work correctly");
101
- const getElementLayoutEvent = target => {
102
- let res = null;
103
- if (measureLayout(target, null, (x, y, width, height, left, top) => {
104
- res = {
105
- nativeEvent: {
106
- layout: {
107
- x,
108
- y,
109
- width,
110
- height,
111
- left,
112
- top
113
- },
114
- target
115
- },
116
- timeStamp: Date.now()
117
- };
118
- }), !res) throw new Error("\u203C\uFE0F");
119
- return res;
120
- },
87
+ const getElementLayoutEvent = (nodeRect, parentRect) => ({
88
+ nativeEvent: {
89
+ layout: getRelativeDimensions(nodeRect, parentRect),
90
+ target: nodeRect
91
+ },
92
+ timeStamp: Date.now()
93
+ }),
121
94
  measureLayout = (node, relativeTo, callback) => {
122
95
  const relativeNode = relativeTo || node?.parentElement;
123
96
  if (relativeNode instanceof HTMLElement) {
@@ -150,7 +123,7 @@ const getElementLayoutEvent = target => {
150
123
  measureLayoutAsync = async (node, relativeTo) => {
151
124
  const relativeNode = relativeTo || node?.parentElement;
152
125
  if (relativeNode instanceof HTMLElement) {
153
- const [nodeDim, relativeNodeDim] = await Promise.all([node.getBoundingClientRect(), relativeNode.getBoundingClientRect()]);
126
+ const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
154
127
  if (relativeNodeDim && nodeDim) {
155
128
  const {
156
129
  x,
@@ -195,17 +168,25 @@ function useElementLayout(ref, onLayout) {
195
168
  node && onLayout && LayoutHandlers.set(node, onLayout), (0, import_constants.useIsomorphicLayoutEffect)(() => {
196
169
  if (!onLayout) return;
197
170
  const node2 = ref.current?.host;
198
- if (node2) return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent(node2)), () => {
199
- Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
200
- const timer = DebounceTimers.get(node2);
201
- timer && (clearTimeout(timer), DebounceTimers.delete(node2)), LastChangeTime.delete(node2);
171
+ if (!node2) return;
172
+ LayoutHandlers.set(node2, onLayout), Nodes.add(node2);
173
+ const parentNode = node2.parentNode;
174
+ return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect())), () => {
175
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2), LastChangeTime.delete(node2);
202
176
  };
203
177
  }, [ref, !!onLayout]);
204
178
  }
205
179
  function ensureWebElement(x) {
206
180
  if (!(typeof HTMLElement > "u")) return x instanceof HTMLElement ? x : void 0;
207
181
  }
208
- const getBoundingClientRect = node => {
182
+ const getBoundingClientRectAsync = node => new Promise(res => {
183
+ if (!node || node.nodeType !== 1) return;
184
+ const io = new IntersectionObserver(entries => (io.disconnect(), res(entries[0].boundingClientRect)), {
185
+ threshold: 0
186
+ });
187
+ io.observe(node);
188
+ }),
189
+ getBoundingClientRect = node => {
209
190
  if (!(!node || node.nodeType !== 1)) return node.getBoundingClientRect?.();
210
191
  },
211
192
  getRect = node => {
package/dist/cjs/index.js CHANGED
@@ -30,7 +30,8 @@ let strategy = "async";
30
30
  function setOnLayoutStrategy(state) {
31
31
  strategy = state;
32
32
  }
33
- const NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), DebounceTimers = /* @__PURE__ */ new WeakMap(), LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0, DEBOUNCE_DELAY = 32;
33
+ const NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap();
34
+ const LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
34
35
  let avoidUpdates = !0;
35
36
  const queuedUpdates = /* @__PURE__ */ new Map();
36
37
  function enable() {
@@ -40,61 +41,52 @@ if (import_constants.isClient)
40
41
  if (rAF) {
41
42
  let layoutOnAnimationFrame = function() {
42
43
  const now = Date.now(), timeSinceLastFrame = now - lastFrameAt;
43
- lastFrameAt = now, strategy !== "off" && (timeSinceLastFrame > 16.67 * numDroppedFramesUntilPause || Nodes.forEach(updateLayoutIfChanged)), rAF(layoutOnAnimationFrame);
44
+ lastFrameAt = now, strategy !== "off" && (timeSinceLastFrame > 16.67 * numDroppedFramesUntilPause || Nodes.forEach((node) => {
45
+ updateLayoutIfChanged(node, lastFrameAt);
46
+ })), rAF(layoutOnAnimationFrame);
44
47
  }, lastFrameAt = Date.now();
45
48
  const numDroppedFramesUntilPause = 2;
46
- async function updateLayoutIfChanged(node) {
47
- const nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode?.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
49
+ async function updateLayoutIfChanged(node, frameId) {
50
+ const parentNode = node.parentElement;
51
+ let nodeRect, parentRect;
52
+ if (strategy === "async") {
53
+ const [nr, pr] = await Promise.all([
54
+ getBoundingClientRectAsync(node),
55
+ getBoundingClientRectAsync(parentNode)
56
+ ]);
57
+ if (frameId !== lastFrameAt)
58
+ return;
59
+ nodeRect = nr, parentRect = pr;
60
+ } else
61
+ nodeRect = node.getBoundingClientRect(), parentRect = parentNode?.getBoundingClientRect();
62
+ if (!parentRect)
63
+ return;
64
+ const onLayout = LayoutHandlers.get(node);
48
65
  if (typeof onLayout != "function") return;
49
66
  const cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
50
67
  if (!cachedRect || // has changed one rect
51
- !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect)))
68
+ !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect))) {
52
69
  if (NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect), avoidUpdates) {
53
- const event = getElementLayoutEvent(node);
70
+ const event = getElementLayoutEvent(nodeRect, parentRect);
54
71
  queuedUpdates.set(node, () => onLayout(event));
55
- } else if (strategy === "async") {
56
- const now = Date.now();
57
- LastChangeTime.set(node, now);
58
- const existingTimer = DebounceTimers.get(node);
59
- existingTimer && clearTimeout(existingTimer);
60
- const timer = setTimeout(async () => {
61
- const lastChange = LastChangeTime.get(node) || 0, timeSinceChange = Date.now() - lastChange;
62
- if (timeSinceChange >= DEBOUNCE_DELAY) {
63
- const event = await getElementLayoutEventAsync(node);
64
- onLayout(event), DebounceTimers.delete(node);
65
- } else {
66
- const remainingDelay = DEBOUNCE_DELAY - timeSinceChange, newTimer = setTimeout(async () => {
67
- const event = await getElementLayoutEventAsync(node);
68
- onLayout(event), DebounceTimers.delete(node);
69
- }, remainingDelay);
70
- DebounceTimers.set(node, newTimer);
71
- }
72
- }, DEBOUNCE_DELAY);
73
- DebounceTimers.set(node, timer);
74
- } else {
75
- const event = getElementLayoutEvent(node);
72
+ } else if (strategy !== "async") {
73
+ const event = getElementLayoutEvent(nodeRect, parentRect);
76
74
  onLayout(event);
77
75
  }
76
+ }
78
77
  }
79
78
  rAF(layoutOnAnimationFrame);
80
79
  } else
81
80
  process.env.NODE_ENV === "development" && console.warn(
82
81
  "No requestAnimationFrame - please polyfill for onLayout to work correctly"
83
82
  );
84
- const getElementLayoutEvent = (target) => {
85
- let res = null;
86
- if (measureLayout(target, null, (x, y, width, height, left, top) => {
87
- res = {
88
- nativeEvent: {
89
- layout: { x, y, width, height, left, top },
90
- target
91
- },
92
- timeStamp: Date.now()
93
- };
94
- }), !res)
95
- throw new Error("\u203C\uFE0F");
96
- return res;
97
- }, measureLayout = (node, relativeTo, callback) => {
83
+ const getElementLayoutEvent = (nodeRect, parentRect) => ({
84
+ nativeEvent: {
85
+ layout: getRelativeDimensions(nodeRect, parentRect),
86
+ target: nodeRect
87
+ },
88
+ timeStamp: Date.now()
89
+ }), measureLayout = (node, relativeTo, callback) => {
98
90
  const relativeNode = relativeTo || node?.parentElement;
99
91
  if (relativeNode instanceof HTMLElement) {
100
92
  const nodeDim = node.getBoundingClientRect(), relativeNodeDim = relativeNode.getBoundingClientRect();
@@ -121,8 +113,8 @@ const getElementLayoutEvent = (target) => {
121
113
  const relativeNode = relativeTo || node?.parentElement;
122
114
  if (relativeNode instanceof HTMLElement) {
123
115
  const [nodeDim, relativeNodeDim] = await Promise.all([
124
- node.getBoundingClientRect(),
125
- relativeNode.getBoundingClientRect()
116
+ getBoundingClientRectAsync(node),
117
+ getBoundingClientRectAsync(relativeNode)
126
118
  ]);
127
119
  if (relativeNodeDim && nodeDim) {
128
120
  const { x, y, width, height, left, top } = getRelativeDimensions(
@@ -142,19 +134,33 @@ function useElementLayout(ref, onLayout) {
142
134
  node && onLayout && LayoutHandlers.set(node, onLayout), (0, import_constants.useIsomorphicLayoutEffect)(() => {
143
135
  if (!onLayout) return;
144
136
  const node2 = ref.current?.host;
145
- if (node2)
146
- return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent(node2)), () => {
147
- Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
148
- const timer = DebounceTimers.get(node2);
149
- timer && (clearTimeout(timer), DebounceTimers.delete(node2)), LastChangeTime.delete(node2);
150
- };
137
+ if (!node2) return;
138
+ LayoutHandlers.set(node2, onLayout), Nodes.add(node2);
139
+ const parentNode = node2.parentNode;
140
+ return parentNode && onLayout(
141
+ getElementLayoutEvent(
142
+ node2.getBoundingClientRect(),
143
+ parentNode.getBoundingClientRect()
144
+ )
145
+ ), () => {
146
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2), LastChangeTime.delete(node2);
147
+ };
151
148
  }, [ref, !!onLayout]);
152
149
  }
153
150
  function ensureWebElement(x) {
154
151
  if (!(typeof HTMLElement > "u"))
155
152
  return x instanceof HTMLElement ? x : void 0;
156
153
  }
157
- const getBoundingClientRect = (node) => {
154
+ const getBoundingClientRectAsync = (node) => new Promise((res) => {
155
+ if (!node || node.nodeType !== 1) return;
156
+ const io = new IntersectionObserver(
157
+ (entries) => (io.disconnect(), res(entries[0].boundingClientRect)),
158
+ {
159
+ threshold: 0
160
+ }
161
+ );
162
+ io.observe(node);
163
+ }), getBoundingClientRect = (node) => {
158
164
  if (!(!node || node.nodeType !== 1))
159
165
  return node.getBoundingClientRect?.();
160
166
  }, getRect = (node) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["node"]
6
6
  }
@@ -29,7 +29,8 @@ var import_constants = require("@tamagui/constants"), import_is_equal_shallow =
29
29
  function setOnLayoutStrategy(state) {
30
30
  strategy = state;
31
31
  }
32
- var NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), DebounceTimers = /* @__PURE__ */ new WeakMap(), LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0, DEBOUNCE_DELAY = 32, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map();
32
+ var NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap();
33
+ var LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map();
33
34
  function enable() {
34
35
  avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function(cb) {
35
36
  return cb();
@@ -41,70 +42,55 @@ if (import_constants.isClient)
41
42
  var now = Date.now(), timeSinceLastFrame = now - lastFrameAt;
42
43
  if (lastFrameAt = now, strategy !== "off") {
43
44
  var expectedFrameTime = 16.67, hasRecentSyncWork = timeSinceLastFrame > expectedFrameTime * numDroppedFramesUntilPause;
44
- hasRecentSyncWork || Nodes.forEach(updateLayoutIfChanged);
45
+ hasRecentSyncWork || Nodes.forEach(function(node) {
46
+ updateLayoutIfChanged(node, lastFrameAt);
47
+ });
45
48
  }
46
49
  rAF(layoutOnAnimationFrame);
47
50
  };
48
51
  var layoutOnAnimationFrame2 = layoutOnAnimationFrame, lastFrameAt = Date.now(), numDroppedFramesUntilPause = 2;
49
- async function updateLayoutIfChanged(node) {
50
- var nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode == null ? void 0 : parentNode.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
51
- if (typeof onLayout == "function") {
52
- var cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
53
- if (!cachedRect || // has changed one rect
54
- !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect)))
55
- if (NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect), avoidUpdates) {
56
- var event = getElementLayoutEvent(node);
57
- queuedUpdates.set(node, function() {
58
- return onLayout(event);
59
- });
60
- } else if (strategy === "async") {
61
- var now = Date.now();
62
- LastChangeTime.set(node, now);
63
- var existingTimer = DebounceTimers.get(node);
64
- existingTimer && clearTimeout(existingTimer);
65
- var timer = setTimeout(async function() {
66
- var lastChange = LastChangeTime.get(node) || 0, timeSinceChange = Date.now() - lastChange;
67
- if (timeSinceChange >= DEBOUNCE_DELAY) {
68
- var event2 = await getElementLayoutEventAsync(node);
69
- onLayout(event2), DebounceTimers.delete(node);
70
- } else {
71
- var remainingDelay = DEBOUNCE_DELAY - timeSinceChange, newTimer = setTimeout(async function() {
72
- var event3 = await getElementLayoutEventAsync(node);
73
- onLayout(event3), DebounceTimers.delete(node);
74
- }, remainingDelay);
75
- DebounceTimers.set(node, newTimer);
76
- }
77
- }, DEBOUNCE_DELAY);
78
- DebounceTimers.set(node, timer);
79
- } else {
80
- var event1 = getElementLayoutEvent(node);
81
- onLayout(event1);
52
+ async function updateLayoutIfChanged(node, frameId) {
53
+ var parentNode = node.parentElement, nodeRect, parentRect;
54
+ if (strategy === "async") {
55
+ var [nr, pr] = await Promise.all([
56
+ getBoundingClientRectAsync(node),
57
+ getBoundingClientRectAsync(parentNode)
58
+ ]);
59
+ if (frameId !== lastFrameAt)
60
+ return;
61
+ nodeRect = nr, parentRect = pr;
62
+ } else
63
+ nodeRect = node.getBoundingClientRect(), parentRect = parentNode == null ? void 0 : parentNode.getBoundingClientRect();
64
+ if (parentRect) {
65
+ var onLayout = LayoutHandlers.get(node);
66
+ if (typeof onLayout == "function") {
67
+ var cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
68
+ if (!cachedRect || // has changed one rect
69
+ !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect))) {
70
+ if (NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect), avoidUpdates) {
71
+ var event = getElementLayoutEvent(nodeRect, parentRect);
72
+ queuedUpdates.set(node, function() {
73
+ return onLayout(event);
74
+ });
75
+ } else if (strategy !== "async") {
76
+ var event1 = getElementLayoutEvent(nodeRect, parentRect);
77
+ onLayout(event1);
78
+ }
82
79
  }
80
+ }
83
81
  }
84
82
  }
85
83
  rAF(layoutOnAnimationFrame);
86
84
  } else
87
85
  process.env.NODE_ENV === "development" && console.warn("No requestAnimationFrame - please polyfill for onLayout to work correctly");
88
- var getElementLayoutEvent = function(target) {
89
- var res = null;
90
- if (measureLayout(target, null, function(x, y, width, height, left, top) {
91
- res = {
92
- nativeEvent: {
93
- layout: {
94
- x,
95
- y,
96
- width,
97
- height,
98
- left,
99
- top
100
- },
101
- target
102
- },
103
- timeStamp: Date.now()
104
- };
105
- }), !res)
106
- throw new Error("\u203C\uFE0F");
107
- return res;
86
+ var getElementLayoutEvent = function(nodeRect, parentRect) {
87
+ return {
88
+ nativeEvent: {
89
+ layout: getRelativeDimensions(nodeRect, parentRect),
90
+ target: nodeRect
91
+ },
92
+ timeStamp: Date.now()
93
+ };
108
94
  }, measureLayout = function(node, relativeTo, callback) {
109
95
  var relativeNode = relativeTo || (node == null ? void 0 : node.parentElement);
110
96
  if (relativeNode instanceof HTMLElement) {
@@ -129,8 +115,8 @@ var getElementLayoutEvent = function(target) {
129
115
  var relativeNode = relativeTo || (node == null ? void 0 : node.parentElement);
130
116
  if (relativeNode instanceof HTMLElement) {
131
117
  var [nodeDim, relativeNodeDim] = await Promise.all([
132
- node.getBoundingClientRect(),
133
- relativeNode.getBoundingClientRect()
118
+ getBoundingClientRectAsync(node),
119
+ getBoundingClientRectAsync(relativeNode)
134
120
  ]);
135
121
  if (relativeNodeDim && nodeDim) {
136
122
  var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
@@ -162,12 +148,13 @@ function useElementLayout(ref, onLayout) {
162
148
  var _ref_current2;
163
149
  if (onLayout) {
164
150
  var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
165
- if (node2)
166
- return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent(node2)), function() {
167
- Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
168
- var timer = DebounceTimers.get(node2);
169
- timer && (clearTimeout(timer), DebounceTimers.delete(node2)), LastChangeTime.delete(node2);
151
+ if (node2) {
152
+ LayoutHandlers.set(node2, onLayout), Nodes.add(node2);
153
+ var parentNode = node2.parentNode;
154
+ return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect())), function() {
155
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2), LastChangeTime.delete(node2);
170
156
  };
157
+ }
171
158
  }
172
159
  }, [
173
160
  ref,
@@ -178,7 +165,18 @@ function ensureWebElement(x) {
178
165
  if (!(typeof HTMLElement > "u"))
179
166
  return x instanceof HTMLElement ? x : void 0;
180
167
  }
181
- var getBoundingClientRect = function(node) {
168
+ var getBoundingClientRectAsync = function(node) {
169
+ return new Promise(function(res) {
170
+ if (!(!node || node.nodeType !== 1)) {
171
+ var io = new IntersectionObserver(function(entries) {
172
+ return io.disconnect(), res(entries[0].boundingClientRect);
173
+ }, {
174
+ threshold: 0
175
+ });
176
+ io.observe(node);
177
+ }
178
+ });
179
+ }, getBoundingClientRect = function(node) {
182
180
  var _node_getBoundingClientRect;
183
181
  if (!(!node || node.nodeType !== 1))
184
182
  return (_node_getBoundingClientRect = node.getBoundingClientRect) === null || _node_getBoundingClientRect === void 0 ? void 0 : _node_getBoundingClientRect.call(node);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "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",
5
- "names": ["LayoutHandlers", "WeakMap", "Nodes", "Set", "strategy", "setOnLayoutStrategy", "state", "NodeRectCache", "ParentRectCache", "DebounceTimers", "LastChangeTime", "rAF", "window", "requestAnimationFrame", "undefined", "DEBOUNCE_DELAY", "avoidUpdates", "queuedUpdates", "Map", "enable", "forEach", "cb", "clear", "isClient", "layoutOnAnimationFrame", "now", "Date", "timeSinceLastFrame", "lastFrameAt", "expectedFrameTime", "hasRecentSyncWork", "numDroppedFramesUntilPause", "updateLayoutIfChanged", "node", "nodeRect", "getBoundingClientRect", "parentNode", "parentElement", "parentRect", "onLayout", "get", "cachedRect", "cachedParentRect", "isEqualShallow", "set", "event", "getElementLayoutEvent", "existingTimer", "clearTimeout", "timer", "setTimeout", "lastChange", "timeSinceChange", "getElementLayoutEventAsync", "delete", "remainingDelay", "newTimer", "process", "env", "NODE_ENV", "console", "warn", "target", "res", "measureLayout", "x", "y", "width", "height", "left", "top", "nativeEvent", "layout", "timeStamp", "Error", "relativeTo", "callback", "relativeNode", "HTMLElement", "nodeDim", "relativeNodeDim", "getRelativeDimensions", "measureLayoutAsync", "Promise", "all", "a", "b", "useElementLayout", "ref", "ensureWebElement", "current", "host", "useIsomorphicLayoutEffect", "add", "nodeType", "getRect", "rect", "offsetWidth", "offsetHeight"]
4
+ "mappings": "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",
5
+ "names": ["LayoutHandlers", "WeakMap", "Nodes", "Set", "strategy", "setOnLayoutStrategy", "state", "NodeRectCache", "ParentRectCache", "LastChangeTime", "WeakMap", "rAF", "window", "requestAnimationFrame", "undefined", "avoidUpdates", "queuedUpdates", "Map", "enable", "forEach", "cb", "clear", "isClient", "layoutOnAnimationFrame", "now", "Date", "timeSinceLastFrame", "lastFrameAt", "strategy", "expectedFrameTime", "hasRecentSyncWork", "numDroppedFramesUntilPause", "Nodes", "node", "updateLayoutIfChanged", "frameId", "parentNode", "parentElement", "nodeRect", "parentRect", "nr", "pr", "Promise", "all", "getBoundingClientRectAsync", "getBoundingClientRect", "onLayout", "LayoutHandlers", "get", "cachedRect", "NodeRectCache", "cachedParentRect", "isEqualShallow", "set", "ParentRectCache", "event", "getElementLayoutEvent", "process", "env", "NODE_ENV", "console", "warn", "nativeEvent", "layout", "getRelativeDimensions", "target", "timeStamp", "measureLayout", "relativeTo", "callback", "relativeNode", "HTMLElement", "nodeDim", "relativeNodeDim", "x", "y", "width", "height", "left", "top", "getElementLayoutEventAsync", "measureLayoutAsync", "Error", "a", "b", "useElementLayout", "ref", "ensureWebElement", "current", "host", "useIsomorphicLayoutEffect", "add", "delete", "res", "nodeType", "io", "IntersectionObserver", "entries", "disconnect", "boundingClientRect", "threshold", "observe", "getRect", "rect", "offsetWidth", "offsetHeight"]
6
6
  }