@tamagui/use-element-layout 1.129.12-1751388824960 → 1.129.12-1751449245669
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +6 -3
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +4 -3
- package/dist/cjs/index.native.js.map +2 -2
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +6 -3
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +6 -3
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +2 -1
- package/types/index.d.ts.map +2 -2
package/dist/cjs/index.cjs
CHANGED
|
@@ -39,8 +39,8 @@ function setOnLayoutStrategy(state) {
|
|
|
39
39
|
strategy = state;
|
|
40
40
|
}
|
|
41
41
|
const NodeRectCache = /* @__PURE__ */new WeakMap(),
|
|
42
|
-
ParentRectCache = /* @__PURE__ */new WeakMap()
|
|
43
|
-
|
|
42
|
+
ParentRectCache = /* @__PURE__ */new WeakMap(),
|
|
43
|
+
LastChangeTime = /* @__PURE__ */new WeakMap(),
|
|
44
44
|
rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
|
|
45
45
|
let avoidUpdates = !0;
|
|
46
46
|
const queuedUpdates = /* @__PURE__ */new Map();
|
|
@@ -77,7 +77,10 @@ if (import_constants.isClient) if (rAF) {
|
|
|
77
77
|
cachedParentRect = NodeRectCache.get(parentNode);
|
|
78
78
|
if (!cachedRect ||
|
|
79
79
|
// has changed one rect
|
|
80
|
-
|
|
80
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
81
|
+
!(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && (
|
|
82
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
83
|
+
!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect))) {
|
|
81
84
|
NodeRectCache.set(node, nodeRect), ParentRectCache.set(parentNode, parentRect);
|
|
82
85
|
const event = getElementLayoutEvent(nodeRect, parentRect);
|
|
83
86
|
avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
|
package/dist/cjs/index.js
CHANGED
|
@@ -30,8 +30,7 @@ let strategy = "async";
|
|
|
30
30
|
function setOnLayoutStrategy(state) {
|
|
31
31
|
strategy = state;
|
|
32
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;
|
|
33
|
+
const NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
|
|
35
34
|
let avoidUpdates = !0;
|
|
36
35
|
const queuedUpdates = /* @__PURE__ */ new Map();
|
|
37
36
|
function enable() {
|
|
@@ -68,7 +67,9 @@ if (import_constants.isClient)
|
|
|
68
67
|
nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
|
|
69
68
|
const cachedRect = NodeRectCache.get(node), cachedParentRect = NodeRectCache.get(parentNode);
|
|
70
69
|
if (!cachedRect || // has changed one rect
|
|
71
|
-
|
|
70
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
71
|
+
!(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && // @ts-expect-error DOMRectReadOnly can go into object
|
|
72
|
+
(!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect))) {
|
|
72
73
|
NodeRectCache.set(node, nodeRect), ParentRectCache.set(parentNode, parentRect);
|
|
73
74
|
const event = getElementLayoutEvent(nodeRect, parentRect);
|
|
74
75
|
avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAoD,+BACpD,0BAA+B;AAG/B,MAAM,iBAAiB,oBAAI,QAA+B,GACpD,QAAQ,oBAAI,IAAiB;AAQnC,IAAI,WAAsC;AAEnC,SAAS,oBAAoB,OAAwC;AAC1E,aAAW;AACb;AAmBA,MAAM,gBAAgB,oBAAI,QAA8B,GAClD,kBAAkB,oBAAI,QAA8B
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["node"]
|
|
6
6
|
}
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -29,8 +29,7 @@ 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();
|
|
33
|
-
var LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map();
|
|
32
|
+
var NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map();
|
|
34
33
|
function enable() {
|
|
35
34
|
avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function(cb) {
|
|
36
35
|
return cb();
|
|
@@ -72,7 +71,9 @@ if (import_constants.isClient)
|
|
|
72
71
|
nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
|
|
73
72
|
var cachedRect = NodeRectCache.get(node), cachedParentRect = NodeRectCache.get(parentNode);
|
|
74
73
|
if (!cachedRect || // has changed one rect
|
|
75
|
-
|
|
74
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
75
|
+
!(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) && // @ts-expect-error DOMRectReadOnly can go into object
|
|
76
|
+
(!cachedParentRect || !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect))) {
|
|
76
77
|
NodeRectCache.set(node, nodeRect), ParentRectCache.set(parentNode, parentRect);
|
|
77
78
|
var event = getElementLayoutEvent(nodeRect, parentRect);
|
|
78
79
|
avoidUpdates ? queuedUpdates.set(node, function() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;uBAAoD,+BACpD,0BAA+B,sCAGzBA,iBAAiB,oBAAIC,QAAAA,GACrBC,QAAQ,oBAAIC,IAAAA,GAQdC,WAAsC;AAEnC,SAASC,oBAAoBC,OAAgC;AAClEF,aAAWE;AACb;AAmBA,IAAMC,gBAAgB,oBAAIN,QAAAA,GACpBO,kBAAkB,oBAAIP,QAAAA
|
|
5
|
-
"names": ["LayoutHandlers", "WeakMap", "Nodes", "Set", "strategy", "setOnLayoutStrategy", "state", "NodeRectCache", "ParentRectCache", "LastChangeTime", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["LayoutHandlers", "WeakMap", "Nodes", "Set", "strategy", "setOnLayoutStrategy", "state", "NodeRectCache", "ParentRectCache", "LastChangeTime", "rAF", "window", "requestAnimationFrame", "undefined", "avoidUpdates", "queuedUpdates", "Map", "enable", "forEach", "cb", "clear", "expectedFrameTime", "numDroppedFramesUntilPause", "isClient", "layoutOnAnimationFrame", "now", "Date", "timeSinceLastFrame", "lastFrameAt", "frameCount", "runEveryXFrames", "hasRecentSyncWork", "node", "updateLayoutIfChanged", "frameId", "onLayout", "get", "parentNode", "parentElement", "nodeRect", "parentRect", "nr", "pr", "Promise", "all", "getBoundingClientRectAsync", "getBoundingClientRect", "cachedRect", "cachedParentRect", "isEqualShallow", "set", "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
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -5,8 +5,7 @@ let strategy = "async";
|
|
|
5
5
|
function setOnLayoutStrategy(state) {
|
|
6
6
|
strategy = state;
|
|
7
7
|
}
|
|
8
|
-
const NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap();
|
|
9
|
-
const LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
|
|
8
|
+
const NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
|
|
10
9
|
let avoidUpdates = !0;
|
|
11
10
|
const queuedUpdates = /* @__PURE__ */ new Map();
|
|
12
11
|
function enable() {
|
|
@@ -43,7 +42,9 @@ if (isClient)
|
|
|
43
42
|
nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
|
|
44
43
|
const cachedRect = NodeRectCache.get(node), cachedParentRect = NodeRectCache.get(parentNode);
|
|
45
44
|
if (!cachedRect || // has changed one rect
|
|
46
|
-
|
|
45
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
46
|
+
!isEqualShallow(cachedRect, nodeRect) && // @ts-expect-error DOMRectReadOnly can go into object
|
|
47
|
+
(!cachedParentRect || !isEqualShallow(cachedParentRect, parentRect))) {
|
|
47
48
|
NodeRectCache.set(node, nodeRect), ParentRectCache.set(parentNode, parentRect);
|
|
48
49
|
const event = getElementLayoutEvent(nodeRect, parentRect);
|
|
49
50
|
avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,UAAU,iCAAiC;AACpD,SAAS,sBAAsB;AAG/B,MAAM,iBAAiB,oBAAI,QAA+B,GACpD,QAAQ,oBAAI,IAAiB;AAQnC,IAAI,WAAsC;AAEnC,SAAS,oBAAoB,OAAwC;AAC1E,aAAW;AACb;AAmBA,MAAM,gBAAgB,oBAAI,QAA8B,GAClD,kBAAkB,oBAAI,QAA8B
|
|
4
|
+
"mappings": "AAAA,SAAS,UAAU,iCAAiC;AACpD,SAAS,sBAAsB;AAG/B,MAAM,iBAAiB,oBAAI,QAA+B,GACpD,QAAQ,oBAAI,IAAiB;AAQnC,IAAI,WAAsC;AAEnC,SAAS,oBAAoB,OAAwC;AAC1E,aAAW;AACb;AAmBA,MAAM,gBAAgB,oBAAI,QAA8B,GAClD,kBAAkB,oBAAI,QAA8B,GACpD,iBAAiB,oBAAI,QAA6B,GAElD,MAAM,OAAO,SAAW,MAAc,OAAO,wBAAwB;AAG3E,IAAI,eAAe;AACnB,MAAM,gBAAgB,oBAAI,IAA2B;AAE9C,SAAS,SAAe;AAC7B,EAAI,iBACF,eAAe,IACX,kBACF,cAAc,QAAQ,CAAC,OAAO,GAAG,CAAC,GAClC,cAAc,MAAM;AAG1B;AAEA,MAAM,oBAAoB,OACpB,6BAA6B;AAEnC,IAAI;AACF,MAAI,KAAK;AA+DP,QAAS,yBAAT,WAAkC;AAChC,YAAM,MAAM,KAAK,IAAI,GACf,qBAAqB,MAAM;AAGjC,UAFA,cAAc,KAEV,aAAa,iBAAiB;AAChC,sBACA,IAAK,sBAAsB;AAC3B;AAAA,MACF;AAEA,mBAAa,GAET,aAAa,UAIb,qBAAqB,oBAAoB,8BAGzC,MAAM,QAAQ,CAAC,SAAS;AACtB,8BAAsB,MAAM,WAAW;AAAA,MACzC,CAAC,IAIL,IAAK,sBAAsB;AAAA,IAC7B,GAxFI,cAAc,KAAK,IAAI;AAE3B,mBAAe,sBAAsB,MAAmB,SAAiB;AACvE,YAAM,WAAW,eAAe,IAAI,IAAI;AACxC,UAAI,OAAO,YAAa,WAAY;AAEpC,YAAM,aAAa,KAAK;AACxB,UAAI,CAAC,WAAY;AAEjB,UAAI,UACA;AAEJ,UAAI,aAAa,SAAS;AACxB,cAAM,CAAC,IAAI,EAAE,IAAI,MAAM,QAAQ,IAAI;AAAA,UACjC,2BAA2B,IAAI;AAAA,UAC/B,2BAA2B,UAAU;AAAA,QACvC,CAAC;AAGD,YAAI,YAAY;AACd;AAGF,mBAAW,IACX,aAAa;AAAA,MACf;AACE,mBAAW,KAAK,sBAAsB,GACtC,aAAa,WAAW,sBAAsB;AAGhD,YAAM,aAAa,cAAc,IAAI,IAAI,GACnC,mBAAmB,cAAc,IAAI,UAAU;AAErD,UACE,CAAC;AAAA;AAAA,MAGA,CAAC,eAAe,YAAY,QAAQ;AAAA,OAElC,CAAC,oBAAoB,CAAC,eAAe,kBAAkB,UAAU,IACpE;AACA,sBAAc,IAAI,MAAM,QAAQ,GAChC,gBAAgB,IAAI,YAAY,UAAU;AAE1C,cAAM,QAAQ,sBAAsB,UAAU,UAAU;AAExD,QAAI,eACF,cAAc,IAAI,MAAM,MAAM,SAAS,KAAK,CAAC,IAE7C,SAAS,KAAK;AAAA,MAElB;AAAA,IACF;AAGA,QAAK,sBAAsB;AAG3B,QAAI,aAAa;AACjB,UAAM,kBAAkB;AAAA,EA8B1B;AACE,IAAI,QAAQ,IAAI,aAAa,iBAC3B,QAAQ;AAAA,MACN;AAAA,IACF;AAKC,MAAM,wBAAwB,CACnC,UACA,gBAEO;AAAA,EACL,aAAa;AAAA,IACX,QAAQ,sBAAsB,UAAU,UAAU;AAAA,IAClD,QAAQ;AAAA,EACV;AAAA,EACA,WAAW,KAAK,IAAI;AACtB,IAGW,gBAAgB,CAC3B,MACA,YACA,aAQS;AACT,QAAM,eAAe,cAAc,MAAM;AACzC,MAAI,wBAAwB,aAAa;AACvC,UAAM,UAAU,KAAK,sBAAsB,GACrC,kBAAkB,aAAa,sBAAsB;AAE3D,QAAI,mBAAmB,SAAS;AAC9B,YAAM,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI,IAAI;AAAA,QACzC;AAAA,QACA;AAAA,MACF;AACA,eAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG;AAAA,IACzC;AAAA,EACF;AACF,GAEa,6BAA6B,OACxC,WACyB;AACzB,QAAM,SAAS,MAAM,mBAAmB,MAAM;AAC9C,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,cAAI;AAEtB,SAAO;AAAA,IACL,aAAa;AAAA,MACX;AAAA,MACA;AAAA,IACF;AAAA,IACA,WAAW,KAAK,IAAI;AAAA,EACtB;AACF,GAEa,qBAAqB,OAChC,MACA,eACgC;AAChC,QAAM,eAAe,cAAc,MAAM;AACzC,MAAI,wBAAwB,aAAa;AACvC,UAAM,CAAC,SAAS,eAAe,IAAI,MAAM,QAAQ,IAAI;AAAA,MACnD,2BAA2B,IAAI;AAAA,MAC/B,2BAA2B,YAAY;AAAA,IACzC,CAAC;AAED,QAAI,mBAAmB,SAAS;AAC9B,YAAM,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI,IAAI;AAAA,QACzC;AAAA,QACA;AAAA,MACF;AACA,aAAO,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,IAC1C;AAAA,EACF;AACA,SAAO;AACT,GAEM,wBAAwB,CAAC,GAAoB,MAAuB;AACxE,QAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,IAAI,GAC/B,IAAI,OAAO,EAAE,MACb,IAAI,MAAM,EAAE;AAClB,SAAO,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAC1C;AAEO,SAAS,iBACd,KACA,UACM;AAEN,QAAM,OAAO,iBAAiB,IAAI,SAAS,IAAI;AAC/C,EAAI,QAAQ,YACV,eAAe,IAAI,MAAM,QAAQ,GAGnC,0BAA0B,MAAM;AAC9B,QAAI,CAAC,SAAU;AACf,UAAMA,QAAO,IAAI,SAAS;AAC1B,QAAI,CAACA,MAAM;AAEX,mBAAe,IAAIA,OAAM,QAAQ,GACjC,MAAM,IAAIA,KAAI;AAGd,UAAM,aAAaA,MAAK;AACxB,WAAI,cACF;AAAA,MACE;AAAA,QACEA,MAAK,sBAAsB;AAAA,QAC3B,WAAW,sBAAsB;AAAA,MACnC;AAAA,IACF,GAGK,MAAM;AACX,YAAM,OAAOA,KAAI,GACjB,eAAe,OAAOA,KAAI,GAC1B,cAAc,OAAOA,KAAI,GACzB,eAAe,OAAOA,KAAI;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACtB;AAEA,SAAS,iBAAoB,GAA+B;AAC1D,MAAI,SAAO,cAAgB;AAG3B,WAAO,aAAa,cAAc,IAAI;AACxC;AAEA,MAAM,6BAA6B,CACjC,SAEO,IAAI,QAAyB,CAAC,QAAQ;AAC3C,MAAI,CAAC,QAAQ,KAAK,aAAa,EAAG;AAClC,QAAM,KAAK,IAAI;AAAA,IACb,CAAC,aACC,GAAG,WAAW,GACP,IAAI,QAAQ,CAAC,EAAE,kBAAkB;AAAA,IAE1C;AAAA,MACE,WAAW;AAAA,IACb;AAAA,EACF;AACA,KAAG,QAAQ,IAAI;AACjB,CAAC,GAGG,wBAAwB,CAAC,SAAkD;AAC/E,MAAI,GAAC,QAAQ,KAAK,aAAa;AAC/B,WAAO,KAAK,wBAAwB;AACtC,GAEa,UAAU,CAAC,SAA+C;AACrE,QAAM,OAAO,sBAAsB,IAAI;AACvC,MAAI,CAAC,KAAM;AACX,QAAM,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI;AAC5B,SAAO,EAAE,GAAG,GAAG,OAAO,KAAK,aAAa,QAAQ,KAAK,cAAc,KAAK,KAAK;AAC/E;",
|
|
5
5
|
"names": ["node"]
|
|
6
6
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -7,8 +7,8 @@ function setOnLayoutStrategy(state) {
|
|
|
7
7
|
strategy = state;
|
|
8
8
|
}
|
|
9
9
|
const NodeRectCache = /* @__PURE__ */new WeakMap(),
|
|
10
|
-
ParentRectCache = /* @__PURE__ */new WeakMap()
|
|
11
|
-
|
|
10
|
+
ParentRectCache = /* @__PURE__ */new WeakMap(),
|
|
11
|
+
LastChangeTime = /* @__PURE__ */new WeakMap(),
|
|
12
12
|
rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
|
|
13
13
|
let avoidUpdates = !0;
|
|
14
14
|
const queuedUpdates = /* @__PURE__ */new Map();
|
|
@@ -45,7 +45,10 @@ if (isClient) if (rAF) {
|
|
|
45
45
|
cachedParentRect = NodeRectCache.get(parentNode);
|
|
46
46
|
if (!cachedRect ||
|
|
47
47
|
// has changed one rect
|
|
48
|
-
|
|
48
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
49
|
+
!isEqualShallow(cachedRect, nodeRect) && (
|
|
50
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
51
|
+
!cachedParentRect || !isEqualShallow(cachedParentRect, parentRect))) {
|
|
49
52
|
NodeRectCache.set(node, nodeRect), ParentRectCache.set(parentNode, parentRect);
|
|
50
53
|
const event = getElementLayoutEvent(nodeRect, parentRect);
|
|
51
54
|
avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isClient","useIsomorphicLayoutEffect","isEqualShallow","LayoutHandlers","WeakMap","Nodes","Set","strategy","setOnLayoutStrategy","state","NodeRectCache","ParentRectCache","LastChangeTime","rAF","window","requestAnimationFrame","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","expectedFrameTime","numDroppedFramesUntilPause","layoutOnAnimationFrame","now","Date","timeSinceLastFrame","lastFrameAt","frameCount","runEveryXFrames","node","updateLayoutIfChanged","frameId","onLayout","get","parentNode","parentElement","nodeRect","parentRect","nr","pr","Promise","all","getBoundingClientRectAsync","getBoundingClientRect","cachedRect","cachedParentRect","set","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","node2","add","delete","res","nodeType","io","IntersectionObserver","entries","disconnect","boundingClientRect","threshold","observe","getRect","rect","offsetWidth","offsetHeight"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,yBAAA,QAAiC;AACpD,SAASC,cAAA,QAAsB;AAG/B,MAAMC,cAAA,GAAiB,mBAAIC,OAAA,CAA+B;EACpDC,KAAA,GAAQ,mBAAIC,GAAA,CAAiB;AAQnC,IAAIC,QAAA,GAAsC;AAEnC,SAASC,oBAAoBC,KAAA,EAAwC;EAC1EF,QAAA,GAAWE,KAAA;AACb;AAmBA,MAAMC,aAAA,GAAgB,mBAAIN,OAAA,CAA8B;EAClDO,eAAA,GAAkB,mBAAIP,OAAA,CAA8B;
|
|
1
|
+
{"version":3,"names":["isClient","useIsomorphicLayoutEffect","isEqualShallow","LayoutHandlers","WeakMap","Nodes","Set","strategy","setOnLayoutStrategy","state","NodeRectCache","ParentRectCache","LastChangeTime","rAF","window","requestAnimationFrame","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","expectedFrameTime","numDroppedFramesUntilPause","layoutOnAnimationFrame","now","Date","timeSinceLastFrame","lastFrameAt","frameCount","runEveryXFrames","node","updateLayoutIfChanged","frameId","onLayout","get","parentNode","parentElement","nodeRect","parentRect","nr","pr","Promise","all","getBoundingClientRectAsync","getBoundingClientRect","cachedRect","cachedParentRect","set","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","node2","add","delete","res","nodeType","io","IntersectionObserver","entries","disconnect","boundingClientRect","threshold","observe","getRect","rect","offsetWidth","offsetHeight"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -7,8 +7,8 @@ function setOnLayoutStrategy(state) {
|
|
|
7
7
|
strategy = state;
|
|
8
8
|
}
|
|
9
9
|
var NodeRectCache = /* @__PURE__ */new WeakMap(),
|
|
10
|
-
ParentRectCache = /* @__PURE__ */new WeakMap()
|
|
11
|
-
|
|
10
|
+
ParentRectCache = /* @__PURE__ */new WeakMap(),
|
|
11
|
+
LastChangeTime = /* @__PURE__ */new WeakMap(),
|
|
12
12
|
rAF = typeof window < "u" ? window.requestAnimationFrame : void 0,
|
|
13
13
|
avoidUpdates = !0,
|
|
14
14
|
queuedUpdates = /* @__PURE__ */new Map();
|
|
@@ -52,7 +52,10 @@ if (isClient) if (rAF) {
|
|
|
52
52
|
cachedParentRect = NodeRectCache.get(parentNode);
|
|
53
53
|
if (!cachedRect ||
|
|
54
54
|
// has changed one rect
|
|
55
|
-
|
|
55
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
56
|
+
!isEqualShallow(cachedRect, nodeRect) && (
|
|
57
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
58
|
+
!cachedParentRect || !isEqualShallow(cachedParentRect, parentRect))) {
|
|
56
59
|
NodeRectCache.set(node, nodeRect), ParentRectCache.set(parentNode, parentRect);
|
|
57
60
|
var event = getElementLayoutEvent(nodeRect, parentRect);
|
|
58
61
|
avoidUpdates ? queuedUpdates.set(node, function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isClient","useIsomorphicLayoutEffect","isEqualShallow","LayoutHandlers","WeakMap","Nodes","Set","strategy","setOnLayoutStrategy","state","NodeRectCache","ParentRectCache","LastChangeTime","rAF","window","requestAnimationFrame","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","expectedFrameTime","numDroppedFramesUntilPause","layoutOnAnimationFrame","now","Date","timeSinceLastFrame","lastFrameAt","frameCount","runEveryXFrames","hasRecentSyncWork","node","updateLayoutIfChanged","layoutOnAnimationFrame2","frameId","onLayout","get","parentNode","parentElement","nodeRect","parentRect","nr","pr","Promise","all","getBoundingClientRectAsync","getBoundingClientRect","cachedRect","cachedParentRect","set","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","_ref_current","ensureWebElement","current","host","_ref_current2","node2","add","delete","res"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,yBAAA,QAAiC;AACpD,SAASC,cAAA,QAAsB;AAG/B,IAAAC,cAAM,kBAAiB,IAAAC,OAAI;EAA+BC,KACpD,kBAAQ,IAAAC,GAAI;EAAiBC,QAAA;AAQnC,SAAIC,mBAAsCA,CAAAC,KAAA;EAEnCF,QAAS,GAAAE,KAAA;AACd;AACF,IAAAC,aAAA,sBAAAN,OAAA;EAAAO,eAAA,sBAAAP,OAAA;
|
|
1
|
+
{"version":3,"names":["isClient","useIsomorphicLayoutEffect","isEqualShallow","LayoutHandlers","WeakMap","Nodes","Set","strategy","setOnLayoutStrategy","state","NodeRectCache","ParentRectCache","LastChangeTime","rAF","window","requestAnimationFrame","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","expectedFrameTime","numDroppedFramesUntilPause","layoutOnAnimationFrame","now","Date","timeSinceLastFrame","lastFrameAt","frameCount","runEveryXFrames","hasRecentSyncWork","node","updateLayoutIfChanged","layoutOnAnimationFrame2","frameId","onLayout","get","parentNode","parentElement","nodeRect","parentRect","nr","pr","Promise","all","getBoundingClientRectAsync","getBoundingClientRect","cachedRect","cachedParentRect","set","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","_ref_current","ensureWebElement","current","host","_ref_current2","node2","add","delete","res"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,yBAAA,QAAiC;AACpD,SAASC,cAAA,QAAsB;AAG/B,IAAAC,cAAM,kBAAiB,IAAAC,OAAI;EAA+BC,KACpD,kBAAQ,IAAAC,GAAI;EAAiBC,QAAA;AAQnC,SAAIC,mBAAsCA,CAAAC,KAAA;EAEnCF,QAAS,GAAAE,KAAA;AACd;AACF,IAAAC,aAAA,sBAAAN,OAAA;EAAAO,eAAA,sBAAAP,OAAA;EAAAQ,cAAA,sBAAAR,OAAA;EAAAS,GAAA,UAAAC,MAAA,SAAAA,MAAA,CAAAC,qBAAA;EAAAC,YAAA;EAAAC,aAAA,sBAAAC,GAAA;AAmBA,SAAMC,OAAA;EAONH,YAAI,KAAeA,YAAA,OAAAC,aAAA,KAAAA,aAAA,CAAAG,OAAA,WAAAC,EAAA;IACnB,OAAMA,EAAA;EAEC,IAAAJ,aAAwB,CAAAK,KAAA;AAC7B;AAOF,IAAAC,iBAAA;EAAAC,0BAAA;AAEA,IAAAxB,QAAM,EAGN,IAAIa,GAAA;EACF,IAAIY,sBAAK,YAAAA,CAAA;IA+DP,IAASC,GAAA,GAAAC,IAAA,CAAAD,GAAA;MAAAE,kBAAyB,GAAAF,GAAA,GAAAG,WAAA;IAChC,IAAAA,WAAY,GAAKH,GAAI,EAAAI,UACf,GAAAC,eAA2B;MAGjCD,UAFA,IAAAjB,GAAc,CAAAY,sBAEG;MACf;IAEA;IACF,IAAAK,UAAA,MAAAvB,QAAA;MAEA,IAAAyB,iBAEI,GAAAJ,kBAIA,GAAAL,iBAAqB,GAAAC,0BAAoB;MAIvCQ,iBAAA,IAAA3B,KAAsB,CAAAe,OAAM,WAAWa,IAAA;QACxCC,qBAIA,CAAAD,IAAA,EAAsBJ,WAAA;MAvFzB;IAEJ;IACEhB,GAAA,CAAAY,sBAAiB;EACjB;EAEA,IAAAU,uBAAwB,GAAAV,sBAAA;IAAAI,WAAA,GAAAF,IAAA,CAAAD,GAAA;EACxB,eAAKQ,qBAAYA,CAAAD,IAAA,EAAAG,OAAA;IAEjB,IAAIC,QAAA,GACAlC,cAAA,CAAAmC,GAAA,CAAAL,IAAA;IAEJ,IAAI,OAAAI,QAAa,cAAS;MACxB,IAAAE,UAAa,GAAIN,IAAA,CAAAO,aAAkB;MAAA,IACjCD,UAAA;QACA,IAAAE,QAAA,EAAAC,UAAA;QACD,IAAAnC,QAAA;UAGG,KAAAoC,EAAA,EAAAC,EAAA,CAAY,SAAAC,OAAA,CAAAC,GAAA,EACdC,0BAAA,CAAAd,IAAA,GAGFc,0BACa,CAAAR,UAAA,EACf;UACE,IAAAH,OAAW,KAAKP,WAAA,EAIZ;UAIHY,QAAA,GAAAE,EAAA,EAAAD,UAAA,GAAAE,EAAA;QAAA,OAGCH,QAAA,GAAeR,IAAA,CAAAe,qBAAoB,IAAAN,UAAA,GAAAH,UAAA,CAAAS,qBAAA;QAEjC,IAAAC,UAAA,GAAAvC,aAAqB,CAAA4B,GAAe,CAAAL,IAAA;UAAAiB,gBAAkB,GAAAxC,aAC1D,CAAA4B,GAAA,CAAAC,UAAA;QACA,KAAAU,UAAc;QAAI;QAGlB;QAEI,CAAA/C,cACF,CAAA+C,UAAA,EAAcR,QAAI,CAAM;QAAA;QAI5B,CAAAS,gBAAA,KAAAhD,cAAA,CAAAgD,gBAAA,EAAAR,UAAA;UACFhC,aAAA,CAAAyC,GAAA,CAAAlB,IAAA,EAAAQ,QAAA,GAAA9B,eAAA,CAAAwC,GAAA,CAAAZ,UAAA,EAAAG,UAAA;UAGK,IAAAU,KAAA,GAAAC,qBAAsB,CAAAZ,QAAA,EAAAC,UAAA;UAGvB1B,YAAa,GAAAC,aAAA,CAAAkC,GAAA,CAAAlB,IAAA;YACX,OAAAI,QAAkB,CAAAe,KAAA;UA8B1B,KAAAf,QAAA,CAAAe,KAAA;QACM;MAEA;IACF;EAKC;EAKHvC,GAAA,CAAAY,sBAAa;EACX,IAAAK,UAAQ;IAAAC,eAAsB;AAAoB,OAEpDuB,OAAA,CAAAC,GAAA,CAAAC,QAAA,sBAAAC,OAAA,CAAAC,IAAA;AAAA,IACAL,qBAAoB,YAAAA,CAAAZ,QAAA,EAAAC,UAAA;IACtB,OAGW;MAYXiB,WAAM;QACFC,MAAA,EAAAC,qBAAwB,CAAApB,QAAa,EAAAC,UAAA;QACvCoB,MAAM,EAAArB;MAGN;MACEsB,SAAM,EAAEpC,IAAG,CAAGD,GAAA;IAA6B;EACzC;EAAAsC,aACA,YAAAA,CAAA/B,IAAA,EAAAgC,UAAA,EAAAC,QAAA;IAAA,IACFC,YAAA,GAAAF,UAAA,IAAAhC,IAAA,EAAAO,aAAA;IACA,IAAA2B,YAAY,YAAUC,WAAQ,EAAM;MACtC,IAAAC,OAAA,GAAApC,IAAA,CAAAe,qBAAA;QAAAsB,eAAA,GAAAH,YAAA,CAAAnB,qBAAA;MACF,IAAAsB,eAAA,IAAAD,OAAA;QAGW;UAAAE,CAAA;UAAAC,CAAA;UAAAC,KAAA;UAAAC,MAAA;UAA6BC,IAAA;UACxCC;QAAA,IAAAf,qBACyB,CAAAQ,OAAA,EAAAC,eAAA;QACzBJ,QAAM,CAAAK,CAAA,EAASC,CAAA,EAAAC,KAAM,EAAAC,MAAA,EAAAC,IAAA,EAAmBC,GAAA;MACxC;IACE;EAEF;EAAAC,0BAAO,kBAAAA,CAAAf,MAAA;IAAA,IACLF,MAAA,SAAakB,kBAAA,CAAAhB,MAAA;IAAA,IACX,CAAAF,MAAA,QACA,IAAAmB,KAAA;IAAA,OACF;MACApB,WAAW;QACbC,MAAA;QAGWE;MAIX;MACAC,SAAI,EAAApC,IAAA,CAAAD,GAAA;IACF;EAAqD;EAAAoD,kBACnD,kBAAAA,CAA+B7C,IAAA,EAAAgC,UAAA;IAAA,IAC/BE,YAAA,GAAAF,UAAA,IAA2BhC,IAAA,EAAAO,aAAY;IAAA,IACxC2B,YAAA,YAAAC,WAAA;MAED,IAAI,CAAAC,OAAA,EAAAC,eAAmB,IAAS,MAAAzB,OAAA,CAAAC,GAAA,EAC9BC,0BAAqB,CAAAd,IAAQ,GAAcc,0BACzC,CAAAoB,YAAA;MACA,IACFG,eAAA,IAAAD,OAAA;QACA;UAAAE,CAAO;UAAEC,CAAA;UAAGC,KAAG;UAAAC,MAAO;UAAAC,IAAQ;UAAAC;QAAM,IAAIf,qBAAA,CAAAQ,OAAA,EAAAC,eAAA;QAC1C;UACFC,CAAA;UACAC,CAAO;UAGHC,KAAA;UACEC,MAAE;UAGRC,IAAS;UACXC;QAEO;MAKL;IACI;IAKF,OAAK;EACL;EAAAf,qBAAiB,YAAAA,CAASmB,CAAA,EAAAC,CAAA;IAC1B;QAAIP,MAAC;QAAMC,IAAA;QAAAC,GAAA;QAAAH;MAAA,IAAAO,CAAA;MAAAT,CAAA,GAAAI,IAAA,GAAAM,CAAA,CAAAN,IAAA;MAAAH,CAAA,GAAAI,GAAA,GAAAK,CAAA,CAAAL,GAAA;IAEX;MAIAL,CAAA;MACAC,CAAA;MACEC,KACE;MAAAC,MACE;MAA2BC,IAC3B;MAAiCC;IACnC;EAKF;AAG0B,SAC5BM,iBAAAC,GAAA,EAAA9C,QAAA;EACF,IAAI+C,YAAO;IAAAnD,IAAS,GAAAoD,gBAAA,EAAAD,YAAA,GAAAD,GAAA,CAAAG,OAAA,cAAAF,YAAA,uBAAAA,YAAA,CAAAG,IAAA;EACtBtD,IAAA,IAAAI,QAAA,IAAAlC,cAAA,CAAAgD,GAAA,CAAAlB,IAAA,EAAAI,QAAA,GAAApC,yBAAA;IAEA,IAAAuF,aAAS;IACP,IAAInD,QAAO;MAGX,IAAAoD,KAAO,IAAAD,aAAa,GAAAL,GAAc,CAAAG,OAAI,cAAAE,aAAA,uBAAAA,aAAA,CAAAD,IAAA;MACxC,IAAAE,KAAA;QAEMtF,cAAA,CAAAgD,GAAA,CAAAsC,KAAA,EAAApD,QACJ,GAEOhC,KAAI,CAAAqF,GAAA,CAAAD,KAA0B;QAC9B,IAAAlD,UAAa,GAAAkD,KAAA,CAAAlD,UAAgB;QAC5B,OAAKA,UAAI,IAAAF,QAAA,CAAAgB,qBAAA,CAAAoC,KAAA,CAAAzC,qBAAA,IAAAT,UAAA,CAAAS,qBAAA;UACZ3C,KAAA,CAAAsF,MACI,CAAAF,KAAA,GAAAtF,cACQ,CAAAwF,MAAW,CAAAF,KAAA,GAAA/E,aAAkB,CAAAiF,MAAA,CAAAF,KAAA,GAAA7E,cAAA,CAAA+E,MAAA,CAAAF,KAAA;QAE1C;MACE;IACF;EACF,IACAN,GAAG,EAID,EAAA9C,QAAA,CACJ;AACA;AACF,SAEagD,gBAA0DA,CAAAd,CAAA;EACrE,MAAM,OAAOH,WAAA,SACb,OAAKG,CAAM,YAAAH,WAAA,GAAAG,CAAA;AACX;AACA,IAAAxB,0BAA2B,YAAAA,CAAad,IAAA;IAC1C,WAAAY,OAAA,WAAA+C,GAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/use-element-layout",
|
|
3
|
-
"version": "1.129.12-
|
|
3
|
+
"version": "1.129.12-1751449245669",
|
|
4
4
|
"types": "./types/index.d.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@tamagui/constants": "1.129.12-
|
|
35
|
-
"@tamagui/is-equal-shallow": "1.129.12-
|
|
34
|
+
"@tamagui/constants": "1.129.12-1751449245669",
|
|
35
|
+
"@tamagui/is-equal-shallow": "1.129.12-1751449245669"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@tamagui/build": "1.129.12-
|
|
38
|
+
"@tamagui/build": "1.129.12-1751449245669",
|
|
39
39
|
"react": "*"
|
|
40
40
|
},
|
|
41
41
|
"publishConfig": {
|
package/src/index.ts
CHANGED
|
@@ -36,7 +36,6 @@ export type LayoutEvent = {
|
|
|
36
36
|
|
|
37
37
|
const NodeRectCache = new WeakMap<HTMLElement, DOMRect>()
|
|
38
38
|
const ParentRectCache = new WeakMap<HTMLElement, DOMRect>()
|
|
39
|
-
const DebounceTimers = new WeakMap<HTMLElement, NodeJS.Timeout>()
|
|
40
39
|
const LastChangeTime = new WeakMap<HTMLElement, number>()
|
|
41
40
|
|
|
42
41
|
const rAF = typeof window !== 'undefined' ? window.requestAnimationFrame : undefined
|
|
@@ -97,7 +96,9 @@ if (isClient) {
|
|
|
97
96
|
if (
|
|
98
97
|
!cachedRect ||
|
|
99
98
|
// has changed one rect
|
|
99
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
100
100
|
(!isEqualShallow(cachedRect, nodeRect) &&
|
|
101
|
+
// @ts-expect-error DOMRectReadOnly can go into object
|
|
101
102
|
(!cachedParentRect || !isEqualShallow(cachedParentRect, parentRect)))
|
|
102
103
|
) {
|
|
103
104
|
NodeRectCache.set(node, nodeRect)
|
package/types/index.d.ts.map
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"mappings": "AAEA,cAAc,iBAAiB,OAAO;KAKjC,+BAA+B;CAClC;AACD;KAEI,4BAA4B,QAAQ,SAAS;AAIlD,OAAO,iBAAS,oBAAoBA,OAAO;AAI3C,YAAY,cAAc;CACxB;CACA;CACA;CACA;CACA;CACA;AACD;AAED,YAAY,cAAc;CACxB,aAAa;EACX,QAAQ;EACR;CACD;CACD;AACD;
|
|
2
|
+
"mappings": "AAEA,cAAc,iBAAiB,OAAO;KAKjC,+BAA+B;CAClC;AACD;KAEI,4BAA4B,QAAQ,SAAS;AAIlD,OAAO,iBAAS,oBAAoBA,OAAO;AAI3C,YAAY,cAAc;CACxB;CACA;CACA;CACA;CACA;CACA;AACD;AAED,YAAY,cAAc;CACxB,aAAa;EACX,QAAQ;EACR;CACD;CACD;AACD;AAYD,OAAO,iBAAS;AAkHhB,OAAO,cAAM,wBACXC,UAAU,iBACVC,YAAY,oBACX;AAUH,OAAO,cAAM,gBACXC,MAAM,aACNC,YAAY,oBACZC,WACEC,WACAC,WACAC,eACAC,gBACAC,cACAC;AAkBJ,OAAO,cAAM,6BACXC,QAAQ,gBACP,QAAQ;AAcX,OAAO,cAAM,qBACXT,MAAM,aACNU,aAAa,uBACZ,eAAe;AA0BlB,OAAO,iBAAS,iBACdC,KAAK,UAAU,+BACfC,aAAaC,GAAG;AAkElB,OAAO,cAAM,UAAWb,MAAM,gBAAc",
|
|
3
3
|
"names": [
|
|
4
4
|
"state: LayoutMeasurementStrategy",
|
|
5
5
|
"nodeRect: DOMRectReadOnly",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"src/index.ts"
|
|
24
24
|
],
|
|
25
25
|
"sourcesContent": [
|
|
26
|
-
"import { isClient, useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { isEqualShallow } from '@tamagui/is-equal-shallow'\nimport type { RefObject } from 'react'\n\nconst LayoutHandlers = new WeakMap<HTMLElement, Function>()\nconst Nodes = new Set<HTMLElement>()\n\ntype TamaguiComponentStatePartial = {\n host?: any\n}\n\ntype LayoutMeasurementStrategy = 'off' | 'sync' | 'async'\n\nlet strategy: LayoutMeasurementStrategy = 'async'\n\nexport function setOnLayoutStrategy(state: LayoutMeasurementStrategy): void {\n strategy = state\n}\n\nexport type LayoutValue = {\n x: number\n y: number\n width: number\n height: number\n left: number\n top: number\n}\n\nexport type LayoutEvent = {\n nativeEvent: {\n layout: LayoutValue\n target: any\n }\n timeStamp: number\n}\n\nconst NodeRectCache = new WeakMap<HTMLElement, DOMRect>()\nconst ParentRectCache = new WeakMap<HTMLElement, DOMRect>()\nconst
|
|
26
|
+
"import { isClient, useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { isEqualShallow } from '@tamagui/is-equal-shallow'\nimport type { RefObject } from 'react'\n\nconst LayoutHandlers = new WeakMap<HTMLElement, Function>()\nconst Nodes = new Set<HTMLElement>()\n\ntype TamaguiComponentStatePartial = {\n host?: any\n}\n\ntype LayoutMeasurementStrategy = 'off' | 'sync' | 'async'\n\nlet strategy: LayoutMeasurementStrategy = 'async'\n\nexport function setOnLayoutStrategy(state: LayoutMeasurementStrategy): void {\n strategy = state\n}\n\nexport type LayoutValue = {\n x: number\n y: number\n width: number\n height: number\n left: number\n top: number\n}\n\nexport type LayoutEvent = {\n nativeEvent: {\n layout: LayoutValue\n target: any\n }\n timeStamp: number\n}\n\nconst NodeRectCache = new WeakMap<HTMLElement, DOMRect>()\nconst ParentRectCache = new WeakMap<HTMLElement, DOMRect>()\nconst LastChangeTime = new WeakMap<HTMLElement, number>()\n\nconst rAF = typeof window !== 'undefined' ? window.requestAnimationFrame : undefined\n\n// prevent thrashing during first hydration (somewhat, streaming gets trickier)\nlet avoidUpdates = true\nconst queuedUpdates = new Map<HTMLElement, Function>()\n\nexport function enable(): void {\n if (avoidUpdates) {\n avoidUpdates = false\n if (queuedUpdates) {\n queuedUpdates.forEach((cb) => cb())\n queuedUpdates.clear()\n }\n }\n}\n\nconst expectedFrameTime = 16.67 // ~60fps\nconst numDroppedFramesUntilPause = 10\n\nif (isClient) {\n if (rAF) {\n // track frame timing to detect sync work and avoid updates during heavy periods\n let lastFrameAt = Date.now()\n\n async function updateLayoutIfChanged(node: HTMLElement, frameId: number) {\n const onLayout = LayoutHandlers.get(node)\n if (typeof onLayout !== 'function') return\n\n const parentNode = node.parentElement\n if (!parentNode) return\n\n let nodeRect: DOMRectReadOnly\n let parentRect: DOMRectReadOnly\n\n if (strategy === 'async') {\n const [nr, pr] = await Promise.all([\n getBoundingClientRectAsync(node),\n getBoundingClientRectAsync(parentNode),\n ])\n\n // cancel if we skipped a frame\n if (frameId !== lastFrameAt) {\n return\n }\n\n nodeRect = nr\n parentRect = pr\n } else {\n nodeRect = node.getBoundingClientRect()\n parentRect = parentNode.getBoundingClientRect()\n }\n\n const cachedRect = NodeRectCache.get(node)\n const cachedParentRect = NodeRectCache.get(parentNode)\n\n if (\n !cachedRect ||\n // has changed one rect\n // @ts-expect-error DOMRectReadOnly can go into object\n (!isEqualShallow(cachedRect, nodeRect) &&\n // @ts-expect-error DOMRectReadOnly can go into object\n (!cachedParentRect || !isEqualShallow(cachedParentRect, parentRect)))\n ) {\n NodeRectCache.set(node, nodeRect)\n ParentRectCache.set(parentNode, parentRect)\n\n const event = getElementLayoutEvent(nodeRect, parentRect)\n\n if (avoidUpdates) {\n queuedUpdates.set(node, () => onLayout(event))\n } else {\n onLayout(event)\n }\n }\n }\n\n // note that getBoundingClientRect() does not thrash layout if its after an animation frame\n rAF!(layoutOnAnimationFrame)\n\n // only run once in a few frames, this could be adjustable\n let frameCount = 0\n const runEveryXFrames = 6\n\n function layoutOnAnimationFrame() {\n const now = Date.now()\n const timeSinceLastFrame = now - lastFrameAt\n lastFrameAt = now\n\n if (frameCount < runEveryXFrames) {\n frameCount++\n rAF!(layoutOnAnimationFrame)\n return\n }\n\n frameCount = 0\n\n if (strategy !== 'off') {\n // for both strategies:\n // avoid updates if we've been dropping frames (indicates sync work happening)\n const hasRecentSyncWork =\n timeSinceLastFrame > expectedFrameTime * numDroppedFramesUntilPause\n\n if (!hasRecentSyncWork) {\n Nodes.forEach((node) => {\n updateLayoutIfChanged(node, lastFrameAt)\n })\n }\n }\n\n rAF!(layoutOnAnimationFrame)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n `No requestAnimationFrame - please polyfill for onLayout to work correctly`\n )\n }\n }\n}\n\nexport const getElementLayoutEvent = (\n nodeRect: DOMRectReadOnly,\n parentRect: DOMRectReadOnly\n): LayoutEvent => {\n return {\n nativeEvent: {\n layout: getRelativeDimensions(nodeRect, parentRect),\n target: nodeRect,\n },\n timeStamp: Date.now(),\n }\n}\n\nexport const measureLayout = (\n node: HTMLElement,\n relativeTo: HTMLElement | null,\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n left: number,\n top: number\n ) => void\n): void => {\n const relativeNode = relativeTo || node?.parentElement\n if (relativeNode instanceof HTMLElement) {\n const nodeDim = node.getBoundingClientRect()\n const relativeNodeDim = relativeNode.getBoundingClientRect()\n\n if (relativeNodeDim && nodeDim) {\n const { x, y, width, height, left, top } = getRelativeDimensions(\n nodeDim,\n relativeNodeDim\n )\n callback(x, y, width, height, left, top)\n }\n }\n}\n\nexport const getElementLayoutEventAsync = async (\n target: HTMLElement\n): Promise<LayoutEvent> => {\n const layout = await measureLayoutAsync(target)\n if (!layout) {\n throw new Error(`‼️`) // impossible\n }\n return {\n nativeEvent: {\n layout,\n target,\n },\n timeStamp: Date.now(),\n }\n}\n\nexport const measureLayoutAsync = async (\n node: HTMLElement,\n relativeTo?: HTMLElement | null\n): Promise<null | LayoutValue> => {\n const relativeNode = relativeTo || node?.parentElement\n if (relativeNode instanceof HTMLElement) {\n const [nodeDim, relativeNodeDim] = await Promise.all([\n getBoundingClientRectAsync(node),\n getBoundingClientRectAsync(relativeNode),\n ])\n\n if (relativeNodeDim && nodeDim) {\n const { x, y, width, height, left, top } = getRelativeDimensions(\n nodeDim,\n relativeNodeDim\n )\n return { x, y, width, height, left, top }\n }\n }\n return null\n}\n\nconst getRelativeDimensions = (a: DOMRectReadOnly, b: DOMRectReadOnly) => {\n const { height, left, top, width } = a\n const x = left - b.left\n const y = top - b.top\n return { x, y, width, height, left, top }\n}\n\nexport function useElementLayout(\n ref: RefObject<TamaguiComponentStatePartial>,\n onLayout?: ((e: LayoutEvent) => void) | null\n): void {\n // ensure always up to date so we can avoid re-running effect\n const node = ensureWebElement(ref.current?.host)\n if (node && onLayout) {\n LayoutHandlers.set(node, onLayout)\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!onLayout) return\n const node = ref.current?.host\n if (!node) return\n\n LayoutHandlers.set(node, onLayout)\n Nodes.add(node)\n\n // always do one immediate sync layout event no matter the strategy for accuracy\n const parentNode = node.parentNode\n if (parentNode) {\n onLayout(\n getElementLayoutEvent(\n node.getBoundingClientRect(),\n parentNode.getBoundingClientRect()\n )\n )\n }\n\n return () => {\n Nodes.delete(node)\n LayoutHandlers.delete(node)\n NodeRectCache.delete(node)\n LastChangeTime.delete(node)\n }\n }, [ref, !!onLayout])\n}\n\nfunction ensureWebElement<X>(x: X): HTMLElement | undefined {\n if (typeof HTMLElement === 'undefined') {\n return undefined\n }\n return x instanceof HTMLElement ? x : undefined\n}\n\nconst getBoundingClientRectAsync = (\n node: HTMLElement | null\n): Promise<DOMRectReadOnly> => {\n return new Promise<DOMRectReadOnly>((res) => {\n if (!node || node.nodeType !== 1) return\n const io = new IntersectionObserver(\n (entries) => {\n io.disconnect()\n return res(entries[0].boundingClientRect)\n },\n {\n threshold: 0,\n }\n )\n io.observe(node)\n })\n}\n\nconst getBoundingClientRect = (node: HTMLElement | null): undefined | DOMRect => {\n if (!node || node.nodeType !== 1) return\n return node.getBoundingClientRect?.()\n}\n\nexport const getRect = (node: HTMLElement): LayoutValue | undefined => {\n const rect = getBoundingClientRect(node)\n if (!rect) return\n const { x, y, top, left } = rect\n return { x, y, width: node.offsetWidth, height: node.offsetHeight, top, left }\n}\n"
|
|
27
27
|
],
|
|
28
28
|
"version": 3
|
|
29
29
|
}
|