@hanzogui/use-element-layout 7.3.0 → 8.0.0
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 +44 -45
- package/dist/cjs/index.native.js +48 -49
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +44 -45
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +44 -45
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +50 -51
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +9 -11
- package/src/index.tsx +79 -74
- package/types/index.d.ts.map +2 -2
- package/LICENSE +0 -42
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__GUI_ONLAYOUT_PRETRANSFORM","process","env","GUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","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","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","getElementLayoutEvent","log","tag","tagName","className","slice","layout","nativeEvent","first","rAF","requestAnimationFrame","userSkipVal","GUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","registerLayoutNode","onChange","delete","PrevHostNode","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","handler","node2","totalNodes","size","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAC1C,SAASC,aAAA,EAAeC,UAAA,EAAYC,KAAA,QAA6C;AAiD7E,SAAAC,GAAA;AA/CJ,MAAMC,cAAA,GAAiB,mBAAIC,OAAA,CAA+B;AAC1D,MAAMC,gBAAA,GAAmB,mBAAID,OAAA,CAA6B;AAC1D,MAAME,KAAA,GAAQ,mBAAIC,GAAA,CAAiB;AACnC,MAAMC,iBAAA,GAAoB,mBAAIJ,OAAA,CAA8B;AAK5D,MAAMK,yBAAA,GAA4BA,CAAA,KAC/BC,UAAA,CAAmBC,2BAAA,KAAgC,QACpDC,OAAA,CAAQC,GAAA,CAAIC,yBAAA,KAA8B;AAE5C,IAAIC,YAAA;AAEJ,SAASC,cAAA,EAAgB;EACvB,IAAAD,YAAI,UAAiB,GAAAA,YAAW,UAAAE,MAAA,wBAAAC,eAAA,CAAAD,MAAA,CAAAE,QAAA,CAAAC,MAAA,EAAAC,GAAA;EAC9B,OAAAN,YACE;AACmE;AAEvE,MAAAO,0BAAO;AACT,MAAAC,uBAAA,GAAAxB,aAAA;AAGA,MAAMyB,MAAA,UAAAC,oBAAuD;AAC7D,MAAMC,2BAA0B,GAAAA,CAAA;EAAAC,OAAsB;EAAEC;AAAA;EAExD,MAAMC,EAAA,GAAA5B,KACJ;EAKKH,yBAAM;IACXwB,0BAAA,CAAAO,EAAA,IAAAF,OAAA;EAAA,CACA,GAAAA,OAAA,EAAAE,EAAA;EACF,OAGiB,eAAA3B,GAAA,CAAAqB,uBAAA,CAAAO,QAAA;IACfC,KAAA,EAAMF,EAAA;IAEND;EACE;AAAiC;AAGnC,IAAAI,0BACG;AAIL,IAAAC,QAAA;AAGA,SAAIC,oBAAAC,KAA0D;EAQ9DF,QAAI,GAAAE,KAAsC;AAEnC;AACL,MAAAC,aAAW,sBAAAhC,OAAA;AACb,IAAAiC,YAAA;AAmBA,MAAMC,aAAA,GAAgB,mBAAIC,GAAA;AAG1B,SAAIC,OAAA;EACJ,IAAAH,YAAM;IAECA,YAAS,QAAe;IAC7B,IAAIC,aAAA,EAAc;MAChBA,aAAA,CAAAG,OAAe,CAAAC,EAAA,IAAAA,EAAA;MACfJ,aAAI,CAAAK,KAAA,CAAe;IACjB;EACA;AAAoB;AACtB,SACFC,qBAAA;EACF,KAAApB,MAAA,IAAAQ,0BAAA;EAEAA,0BAAS,OAAuBP,oBAAA,CAAAoB,OAAA;IAC9B,KAAK,IAAAC,CAAA,MAAUA,CAAA,GAAAD,OAAA,CAAAE,MAAA,EAAAD,CAAA;MAEf,MAAAE,KAAA,GAAAH,OAAA,CAAAC,CAAA;MAAiC,MAC9BG,IAAA,GAAAD,KAAY,CAAAE,MAAA;MACX,IAAA1C,iBAAgB,CAAA2C,GAAI,CAAAF,IAAA,CAAQ,KAAAD,KAAQ,CAAAI,cAAK,EAAA5C,iBAAA,CAAA6C,GAAA,CAAAJ,IAAA,EAAAD,KAAA,CAAAI,cAAA;IACvC;EACA;IAAAE,SAAM;EAAA,EAAO;AACb;AACE,SAAAC,WAAAC,CAAA,EAAAC,CAAA;EAAgD,OAClDD,CAAA,CAAAE,CAAA,KAAAD,CAAA,CAAAC,CAAA,IAAAF,CAAA,CAAAG,CAAA,KAAAF,CAAA,CAAAE,CAAA,IAAAH,CAAA,CAAAI,KAAA,KAAAH,CAAA,CAAAG,KAAA,IAAAJ,CAAA,CAAAK,MAAA,KAAAJ,CAAA,CAAAI,MAAA;AAAA;AACF,IACFrC,MAAA;EAAA,IACAsC,uBAAA,YAAAA,CAAA;IAAA,IACEC,iBAAW,SAAAA,iBAAA;IAAAA,iBACb,OAAAtC,oBAAA,CAAAoB,OAAA;MACFmB,iBAAA,GAAAC,IAAA,CAAAC,KAAA,CAAAC,WAAA,CAAAC,GAAA,KAAAC,kBAAA;MACF,SAAAvB,CAAA,MAAAA,CAAA,GAAAD,OAAA,CAAAE,MAAA,EAAAD,CAAA,IAAAwB,aAAA,CAAAjB,GAAA,CAAAR,OAAA,CAAAC,CAAA,EAAAI,MAAA,EAAAL,OAAA,CAAAC,CAAA,EAAAyB,kBAAA;MAGA,IAAA3D,OAAS,CAAAC,GAAA,CAAA2D,QAA4D,sBAAAxD,aAAA,MAAAgD,iBAAA,OAAAS,OAAA,CAAAC,IAAA,wBAAAV,iBAAA,SAAAnB,OAAA,CAAAE,MAAA;MACnE,IAAA4B,gBAAiB,EAAK;QACxBA,gBAAA;QAEIA,gBAAQ;MASV;IACE;MAAArB,SAAI;IAAA;IAEJ,OAAAS,iBAAoB;EAAI;EAEpB,MAAAO,aAAA,kBAA+B,IAAAlE,OAAA,CAAY;EAG3C,IAAA2D,iBAAa,GAAG,IAAI;EAClB,IAAAY,gBAAA,GAAc,IAAI;EAAgD,IAAAN,kBACpE;EAEA,IAAAL,iBACU,GAAI;EAIZ,eAAAY,qBAAQA,CAAA3B,IAAA;IAAA,MAAA4B,QACN,GAAA1E,cAAA,CAAAgD,GAAA,CAAAF,IAAA;IAAA,WACA4B,QAAA,eAAoB;IAAA,MAAAC,UACpB,GAAQ7B,IAAA,CAAA8B,aAAA;IAAA,KAAAD,UACR;IAAA,IAAAE,QACF;IAAA,IAAAC,UACF;IAEA,IAAAhD,QAAI;MACF+C,QAAA,GAAAV,aAAiB,CAAAnB,GAAI,CAAAF,IAAA;MACrBgC,UAAA,GAAAX,aAAmB,CAAAnB,GAAA,CAAA2B,UAAA;MAAA,KACrBE,QAAA,KAAAC,UAAA;IAAA,OACF;MAAAD,QACA,GAAA/B,IAAA,CAAAiC,qBAAA;MAAAD,UACE,GAAAH,UAAW,CAAAI,qBAAA;IAAA;IACb,MACFC,UAAA,GAAA/C,aAAA,CAAAe,GAAA,CAAAF,IAAA;IAEA,MAAAmC,gBAAO,GAAAhD,aAAA,CAAAe,GAAA,CAAA2B,UAAA;IACT,MAAAO,WAAA,IAAAF,UAAA,KAAA5B,UAAA,CAAA4B,UAAA,EAAAH,QAAA;IA5CA,MAAMM,aAAA,GAAgB,CAAAF,gBAAA,IAAI,CAAA7B,UAAkC,CAAA6B,gBAAA,EAAAH,UAAA;IAG5D,IAAII,WAAA,IAAAC,aAAiD;MACrDlD,aAAI,CAAAiB,GAAA,CAAAJ,IAAsD,EAAA+B,QAAA;MAC1D5C,aAAI,CAAAiB,GAAA,CAAAyB,UAAqB,EAAAG,UAAA;MACzB,MAAIM,KAAA,GAAAC,qBAAoB,CAAAR,QAAA,EAAAC,UAAA,EAAAhC,IAAA;MAwCxB,IAAArC,OAAA,CAAAC,GAAe,CAAA2D,QAAA,kBAAyC,IAAAxD,aAAA,IAAAyD,OAAA,CAAAgB,GAAA;QACtDC,GAAA,EAAAzC,IAAM,CAAA0C,OAAW;QACjB9D,EAAA,EAAIoB,IAAA,CAAApB,EAAO;QAEX+D,SAAM,GAAA3C,IAAA,CAAA2C,SAAkB,QAAAC,KAAA;QACxBC,MAAK,EAAAP,KAAA,CAAAQ,WAAY,CAAAD,MAAA;QAEjBE,KAAI,GAAAb;MACJ;MAGA,IAAA9C,YAAI,EAAaC,aAAS,CAAAe,GAAA,CAAAJ,IAAA,QAAA4B,QAAA,CAAAU,KAAA,QACxBV,QAAA,CAAWU,KAAA;IACX;EAEA;EACE,MAAAU,GAAA,UAAAC,qBAAA,mBAAAA,qBAAA;EAAA,MACFC,WAAA,GAAAvF,OAAA,CAAAC,GAAA,CAAAuF,qBAAA;EAAA,MACFC,gBAAO,GAAAF,WAAA,IAAAA,WAAA;EACL,MAAAG,eAAgB;EAChB,IAAAC,UAAA,GAAAF,gBAAwB;EAAsB,IAChDG,UAAA;EAEA,eAAMC,sBAA2BA,CAAA,EAAI;IACrC,IAAAD,UAAM,KAAAD,UAAmB;MAGzBN,GAAA,GAAAA,GAAM,CAAAQ,sBAAe,IAAcC,UAAC,CAAAD,sBAA+B;MACnE;IAEA;IACE,IAAAD,UAAA,IAAcG,MAAI,CAAAC,gBAAyB,EAAAJ,UAAA;IAC3C,IAAAvE,QAAA,UAAkB;MAElB,MAAA4E,YAAc;MAEd,MAAAC,gBAAgB,kBAAa,IAAAvG,GAAA,CAAiB;MAC5C,WAAA0C,IAAQ,IAAI3C,KAAA;QAA6B,MACvCyE,aAAU,GAAA9B,IAAA,CAAA8B,aAAA;QAAA,MACVA,aAAS,YAAMgC,WAAA;UAAAC,WACf,CAAA/D,IAAA,CAAY;UAAsC;QACxB;QAClB,MACTgE,UAAA,GAAA5G,gBAAA,CAAA8C,GAAA,CAAAF,IAAA;QAAA,IACHgE,UAAA,IAAA3F,0BAAA,CAAA2F,UAAA;QAEA,IAAAzG,iBAAkB,CAAA2C,GAAA,CAAAF,IAAA;QAChB4D,YAAA,CAAAK,IAAA,CAAcjE,IAAI;QAA2B6D,gBACxC,CAAAK,GAAA,CAAApC,aAAA;MACL;MAAc,IAChB8B,YAAA,CAAA9D,MAAA;QACF,MAAAqE,EAAA,GAAAtD,uBAAA;QACFO,kBAAA,GAAAF,WAAA,CAAAC,GAAA;QAEA,KAAM,IAAAtB,CACJ,MAAAA,CAAO,GAAA+D,YAAA,CAAA9D,MAAA,EAAAD,CAAA,EAA0B,EAAAsE,EAAA,CAAAC,OAAA,CAAcR,YAAA,CAAA/D,CAAA;QAGjD,KAAM,MAAAwE,MAAA,IAAcR,gBAAY,EAAAM,EAAA,CAAAC,OAAA,CAAAC,MAAA;QAChC,MAAM,IAAAC,OAAA,CAAAC,GAAA,IAAmB;UACzB7C,gBAAM,GAAA6C,GAAkB;QACxB,EAAI;QACJ,KAAI,IAAA1E,CAAA,MAAaA,CAAA,GAAA+D,YAAA,CAAA9D,MAAA,EAAAD,CAAA,IAAAsE,EAAA,CAAAK,SAAA,CAAAZ,YAAA,CAAA/D,CAAA;QAEjB,WAAAwE,MAAe,IAAAR,gBAAA,EAAyBM,EAAA,CAAAK,SAAA,CAAAH,MAAA;QAEtC,IAAItD,iBAAe,OAAAuC,UAAkB,GAAAtC,IAAA,CAAAyD,GAAA,CAAAnB,UAAA,MAAAD,eAAA,OACnC,IAAMtC,iBAAI,OAAAuC,UAA0B,GAAAtC,IAAW,CAAA0D,GAAA,CAAApB,UAAA,MAAAF,gBAA0B;QACzE,SAAAvD,CAAA,MAAAA,CAAA,GAAA+D,YAAA,CAAA9D,MAAA,EAAAD,CAAA,IAAA8B,qBAAA,CAAAiC,YAAA,CAAA/D,CAAA;MAAA;IAIF;IACEmD,GAAA,GAAAA,GAAA,CAAAQ,sBAAa,IAAAC,UAAA,CAAAD,sBAAA;EAAA;EAGfA,sBAAiB;AACf;AAEA,MAAAjB,qBAAM,GAAAA,CAAmBR,QAAA,EAAAC,UAAI,EAAAhC,IAAiB;EAG9C;IACE8C,WAAA,EAAM;MACND,MAAA,EAAA8B,qBAAM,CAAA5C,QAAyB,EAAAC,UAAc,EAAAhC,IAAA;MAC3CC,MAAA,EAAA8B;IACA;IAAA6C,SACF,EAAAC,IAAA,CAAA1D,GAAA;EACA;AACA;AACA,MAAA2D,yBAAsB,GAAI9E,IAAI,IAAM;EAEpC;IACAW,KAAA,EAAAX,IAAA,CAAA+E,WAAiB;IAAiBnE,MACpC,EAAAZ,IAAA,CAAAgF;EAEA;AACE;AACA,MAAAL,qBAAA,GAAqBA,CAAApE,CAAA,EAAAC,CAAA,EAAAyE,KAAY,KAAI;EAGrC;IAAAC,IAAA;IAAAC;EAAS,IAAI5E,CAAG;EACd,MAAAE,CAAA,GAAAyE,IAAG,GAAA1E,CAAA,CAAA0E,IAAQ;EAAe,MAAAxE,CAC5B,GAAAyE,GAAA,GAAA3E,CAAA,CAAA2E,GAAA;EAEA;IAAAxE,KAAA;IAAAC;EAAW,IAAApD,yBAA4B,MAAAyH,KAAA,GAAAH,yBAAA,CAAAG,KAAA;IACrCtE,KAAA,EAAAJ,CAAA,CAAAI,KAAG;IAAcC,MACnB,EAAAL,CAAA,CAAAK;EAGA;EACE;IAAmBH,CAAA;IAIrBC,CAAA;IACEC,KAAA;IAA4BC,MAC9B;IACAwE,KAAA,EAAA7E,CAAA,CAAA2E,IAAA;IACEG,KAAA,EAAA9E,CAAA,CAAA4E;EAAmB;AAIrB;AACE,SAAAG,kBAAaA,CAAKtF,IAAI,EAAAuF,QAAA,EAAAvB,UAAgB;EAAe3G,KAAA,CAAA6G,GACvD,CAAAlE,IAAA;EAEE9C,cAAA,CAAAkD,GAAA,CAAAJ,IAAa,EAAAuF,QAAS;EAAgC,IAAAvB,UACxD,EAAA5G,gBAAA,CAAAgD,GAAA,CAAAJ,IAAA,EAAAgE,UAAA;EAGArE,oBAAa;EACX,IAAAZ,0BAAA,EAAsB;IAAeA,0BACvC,CAAAqF,OAAA,CAAApE,IAAA;IAAAzC,iBACF,CAAA6C,GAAA,CAAAJ,IAAA;EAAA;EAIF,aAAU+D,WAAA,CAAA/D,IAAA;AAA+D;AAG3E,SAAA+D,YAAA/D,IAAuB;EACzB3C,KAAA,CAAAmI,MAAA,CAAAxF,IAAA;EAEO9C,cAAM,CAAAsI,MAAA,CAAAxF,IAAA;EAKX5C,gBAAO,CAAAoI,MAAA,CAAAxF,IAAA;EAAAb,aACL,CAAAqG,MAAa,CAAAxF,IAAA;EAAAzC,iBACH,CAAAiI,MAAA,CAAAxF,IAAA;EAAgD,IAAAjB,0BAChD,EAAAA,0BAAA,CAAAyF,SAAA,CAAAxE,IAAA;AAAA;AACV,MACAyF,YAAW,GAAK,eAAI,IAAAtI,OAAA;AAAA,SACtBuI,iBAAAC,GAAA,EAAA/D,QAAA;EACF,MAAAoC,UAAA,GAAAjH,UAAA,CAAAuB,uBAAA;EASA,MAAM0B,IAAA,GAAA4F,gBAAA,CAAAD,GAA4B,CAChCE,OAAA,EACsCC,IAAA;EACtC,IAAA9F,IAAO,IAAA4B,QAAA;IAAA1E,cACO,CAAAkD,GAAA,CAAAJ,IAAA,EAAA4B,QAAA;IAAAxE,gBACC,CAAAgD,GAAA,CAAAJ,IAAA,EAAAgE,UAAA;EAAA;EAEjBnH,yBAAA;IAEA,IAAM,CAAA+E,QAAA;IAKJ,MAAMmE,QAAQ,GAAAH,gBAAQ,CAAAD,GAAA,CAAAE,OAAA,EAAAC,IAAA;IACtB,MAAME,QAAI,GAAOP,YAAE,CAAAvF,GAAA,CAAAyF,GAAA;IACnB,IAAAI,QAAU,KAAMC,QAAE;IAGlB,IAAAA,QAAQ,EAAAjC,WAAc,CACpBiC,QAAA;IAIFP,YAAY,CAAArF,GAAG,CAAAuF,GAAA,EAAOI,QAAQ;IAChC,KAAAA,QAAA;IAGO1I,KAAA,CAAA6G,GAAS,CAAA6B,QAAA;IAKdpG,oBAAc;IACd,IAAAZ,0BAAyB;MACzBA,0BAAgB,CAAAqF,OAAiB,CAAA2B,QAAU;MAC3CxI,iBAAA,CAAA6C,GAAqB,CAAA2F,QAAA;IACrB;IACE,MAAAE,OAAA,GAAA/I,cAA2B,CAAAgD,GAAA,CAAA6F,QAAY;IACvC,WAAAE,OAAA,KAAkB,UAAU,EAAI;IAClC,MAAApE,UAAA,GAAAkE,QAAA,CAAAjE,aAAA;IACA,KAAAD,UAAa;IACf,MAAAE,QAAA,GAAAgE,QAAA,CAAA9D,qBAAA;IAEA,MAAAD,UAAS,GAAYH,UAAmB,CAAAI,qBAAA;IACtC9C,aAAa,CAAAiB,GAAI,CAAA2F,QAAA,EAAAhE,QAAA;IACjB5C,aAAA,CAAAiB,GAAe,CAAAyB,UAAW,EAAAG,UAAA;IAC1BiE,OAAA,CAAA1D,qBAA4B,CAAAR,QAAA,EAAAC,UAAA,EAAA+D,QAAA;EAC5B;EACAlJ,yBAAkB,CAAO,MAAI;IAC7B,IAAI,CAAA+E,QAAA;IACF,MAAAsE,KAAA,GAAAP,GAAA,CAAAE,OAAA,EAAAC,IAA2B;IAC7B,KAAAI,KAAA;IACF7I,KAAA,CAAA6G,GAAA,CAAAgC,KAAA;IAEAvG,oBAAqB;IAEd,IAAAZ,0BAEL;MAEAA,0BAAmB,CAAAqF,OAAW,CAAA8B,KAAA;MAG9B3I,iBAAa,CAAA6C,GAAA,CAAA8F,KAAA,EAAiB,IAAI;IAClC;IACE,IAAAvI,OAAA,CAAAC,GAAA,CAAA2D,QAAmB,KAAM,aAAQ,IAAAxD,aAAA,IAAAyD,OAAA,CAAAgB,GAAA;MACjCC,GAAA,EAAAyD,KAAA,CAAAxD,OAAiB;MACnB9D,EAAA,EAAAsH,KAAA,CAAAtH,EAAA;MAGA+D,SAAA,GAAAuD,KAAA,CAAAvD,SAA0B,IAAM,IAAAC,KAAA;MAC9BuD,UAAK,EAAA9I,KAAU,CAAA+I;IACf;IACA,MAAAvE,UAAM,GAAWqE,KAAA,CAAArE,UAAa;IAC9B,IAAAA,UAAI,EAAAD,QAAa,CAAAW,qBAAU,CAAA2D,KAAA,CAAAjE,qBAAA,IAAAJ,UAAA,CAAAI,qBAAA,IAAAiE,KAAA;IAE3B,OAAI;MACJnC,WAAA,CAAAmC,KAAa,CAAI;MACjB,MAAKG,WAAU,GAAAZ,YAAA,CAAAvF,GAAA,CAAAyF,GAAA;MAEf,IAAAU,WAAU,IAAQA,WAAA,KAAAH,KAAA,EAAAnC,WAAA,CAAAsC,WAAA;MAClBZ,YAAA,CAAAD,MAAA,CAAAG,GAAqB;IACrB;EACE,IAAAA,GAAA,IAAA/D,QAAA;AACA;AAAoC,SACtCgE,iBAAAnF,CAAA;EAEA,WAAMqD,WAAU,gBAAmB;EACnC,OAAIrD,CAAA,YAAOqD,WAAY,GAAArD,CAAA,GAAY;AACnC;AACA,MAAA6F,0BAAiB,GAAAtG,IAAA;EAEjB,WAAMsE,OAAA,CAAWC,GAAA;IACjB,KAAAvE,IAAM,IAAAA,IAAA,CAAAuG,QAAa,MAAW,SAAAhC,GAAA;IAC9B,MAAAJ,EAAA,OAAA3F,oBAA4B,CAAAoB,OAAQ;MACpCuE,EAAA,CAAAqC,UAAA,EAAc;MACd,OAAAjC,GAAQ,CAAA3E,OAAA,IAAA0B,kBAAsB,CAAU;IAC1C,CAAC;MAAAjB,SAAA;IAAA;IAED8D,EAAA,CAAAC,OAAA,CAAApE,IAAA;EACE;AACA;AACA,MAAAyG,WAAW,SAAAA,CAAAzG,IAAA,EAAA0G,UAAA;EAEX,MAAAC,YAAc,GAAAD,UAAA,IAAA1G,IAAA,EAAA8B,aAAA;EAEd,IAAA6E,YAAA,YAAqB7C,WAAA;IACrB,MAAI,CAAA8C,OAAA,EAAAC,eAAA,IAA4B,MAAAvC,OAAA,CAAAwC,GAAA,EAAAR,0BAAA,CAAAtG,IAAA,GAAAsG,0BAAA,CAAAK,YAAA;IAC9B,IAAAE,eAAA,IAAAD,OAAA,EAA2B,OAAQ5G,qBAAI,CAAA4G,OAAA,EAAAC,eAAA,EAAA7G,IAAA;EACvC;EAAgC,OAClC;AAEA;AACE,MAAA+G,OAAA,GAAQ,MAAAA,CAAI/G,IAAA,EAAAgH,QAAA;EAA+B,MAAAC,GACzC,GAAK,MAAKR,WAAA,CAAAzG,IAAA,EAAAA,IAAA,CAAA6B,UAAA,YAAAiC,WAAA,GAAA9D,IAAA,CAAA6B,UAAA;EAAA,IAAAoF,GACV,EAAAD,QAAS,GAAAC,GAAM,CAAAxG,CAAA,EAAAwG,GAAA,CAAAvG,CAAA,EAAAuG,GAAA,CAAAtG,KAAA,EAAAsG,GAAA,CAAArG,MAAA,EAAAqG,GAAA,CAAA7B,KAAA,EAAA6B,GAAA,CAAA5B,KAAA;EAAA,OACf4B,GAAA;AAAkD;AAChC,SACnBC,cAAAlH,IAAA;EAAA,OACHgH,QAAA,IAAAD,OAAA,CAAA/G,IAAA,EAAAgH,QAAA;AAGA;AACA,MAAAG,eAAgB,SAAAA,CAAAnH,IAAA,EAAAgH,QAAA;EACd,MAAAC,GAAA,SAAAR,WAAA,CAAAzG,IAAA;EAAA,IAAAiH,GACE,EAAAD,QAAA,GAAAC,GAAA,CAAA7B,KAAA,EAAA6B,GAAA,CAAA5B,KAAA,EAAA4B,GAAA,CAAAtG,KAAA,EAAAsG,GAAA,CAAArG,MAAA;EAAA,OAAAqG,GACE;AAA2B;AACM,MAAAG,qBACjC,GAAApH,IAAA;EAAA,OACFgH,QAAA,IAAAG,eAAA,CAAAnH,IAAA,EAAAgH,QAAA;AAAA;AACF,MACFK,aAAA,SAAAA,CAAArH,IAAA,EAAA2G,YAAA,EAAAK,QAAA;EAEA,MAAAC,GAAA,GAAO,MAAMR,WAAA,CAAAzG,IAAA,EAAA2G,YAAA;EACX,IAAAM,GAAA,EAAAD,QAAY,GAAAC,GAAI,CAAAxG,CAAA,EAAAwG,GAAA,CAAAvG,CAAA,EAAAuG,GAAA,CAAAtG,KAAA,EAAAsG,GAAA,CAAArG,MAAA,EAAAqG,GAAA,CAAA7B,KAAA,EAAA6B,GAAA,CAAA5B,KAAA;EAGhB,OAAA4B,GAAA;AACA;AACE,SAAAK,mBAAYA,CAAAtH,IAAW;EAAA,OACzB,CAAA0G,UAAA,EAAAM,QAAA,KAAAK,aAAA,CAAArH,IAAA,EAAA0G,UAAA,EAAAM,QAAA;AACA;AAAuB,SACzBvI,2BAAA,EAAAyI,aAAA,EAAAE,qBAAA,EAAAE,mBAAA,EAAA/H,MAAA,EAAA+G,0BAAA,EAAA/D,qBAAA,EAAAwE,OAAA,EAAAI,eAAA,EAAAE,aAAA,EAAAZ,WAAA,EAAAnB,kBAAA,EAAArG,mBAAA,EAAAyG,gBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__GUI_ONLAYOUT_PRETRANSFORM","process","env","GUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","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","updateLayoutIfChanged","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","rAF","requestAnimationFrame","userSkipVal","GUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","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","size","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 \"@hanzogui/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.__GUI_ONLAYOUT_PRETRANSFORM === true || process.env.GUI_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\";\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\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};\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.GUI_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\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\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\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t}\n\tlayoutOnAnimationFrame();\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}\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":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -81,8 +81,7 @@ if (ENABLE) {
|
|
|
81
81
|
let rectFetchStartTime = 0;
|
|
82
82
|
let lastCallbackDelay = 0;
|
|
83
83
|
async function updateLayoutIfChanged(node) {
|
|
84
|
-
|
|
85
|
-
if (typeof onLayout !== "function") return;
|
|
84
|
+
if (typeof LayoutHandlers.get(node) !== "function") return;
|
|
86
85
|
const parentNode = node.parentElement;
|
|
87
86
|
if (!parentNode) return;
|
|
88
87
|
let nodeRect;
|
|
@@ -95,23 +94,7 @@ if (ENABLE) {
|
|
|
95
94
|
nodeRect = node.getBoundingClientRect();
|
|
96
95
|
parentRect = parentNode.getBoundingClientRect();
|
|
97
96
|
}
|
|
98
|
-
|
|
99
|
-
const cachedParentRect = NodeRectCache.get(parentNode);
|
|
100
|
-
const nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);
|
|
101
|
-
const parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
|
|
102
|
-
if (nodeChanged || parentChanged) {
|
|
103
|
-
NodeRectCache.set(node, nodeRect);
|
|
104
|
-
NodeRectCache.set(parentNode, parentRect);
|
|
105
|
-
const event = getElementLayoutEvent(nodeRect, parentRect, node);
|
|
106
|
-
if (process.env.NODE_ENV === "development" && isDebugLayout()) console.log("[useElementLayout] change", {
|
|
107
|
-
tag: node.tagName,
|
|
108
|
-
id: node.id || void 0,
|
|
109
|
-
className: (node.className || "").slice(0, 60) || void 0,
|
|
110
|
-
layout: event.nativeEvent.layout,
|
|
111
|
-
first: !cachedRect
|
|
112
|
-
});
|
|
113
|
-
if (avoidUpdates) queuedUpdates.set(node, () => onLayout(event));else onLayout(event);
|
|
114
|
-
}
|
|
97
|
+
emitLayoutIfChanged(node, parentNode, nodeRect, parentRect);
|
|
115
98
|
}
|
|
116
99
|
const rAF = typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : void 0;
|
|
117
100
|
const userSkipVal = process.env.GUI_LAYOUT_FRAME_SKIP;
|
|
@@ -196,15 +179,38 @@ const getRelativeDimensions = (a, b, aNode) => {
|
|
|
196
179
|
pageY: a.top
|
|
197
180
|
};
|
|
198
181
|
};
|
|
199
|
-
function
|
|
182
|
+
function emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {
|
|
183
|
+
const onLayout = LayoutHandlers.get(node);
|
|
184
|
+
if (typeof onLayout !== "function") return;
|
|
185
|
+
const cachedRect = NodeRectCache.get(node);
|
|
186
|
+
const cachedParentRect = NodeRectCache.get(parentNode);
|
|
187
|
+
const nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);
|
|
188
|
+
const parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
|
|
189
|
+
if (!nodeChanged && !parentChanged) return;
|
|
190
|
+
NodeRectCache.set(node, nodeRect);
|
|
191
|
+
NodeRectCache.set(parentNode, parentRect);
|
|
192
|
+
const event = getElementLayoutEvent(nodeRect, parentRect, node);
|
|
193
|
+
if (process.env.NODE_ENV === "development" && isDebugLayout()) console.log("[useElementLayout] change", {
|
|
194
|
+
tag: node.tagName,
|
|
195
|
+
id: node.id || void 0,
|
|
196
|
+
className: (node.className || "").slice(0, 60) || void 0,
|
|
197
|
+
layout: event.nativeEvent.layout,
|
|
198
|
+
first: !cachedRect
|
|
199
|
+
});
|
|
200
|
+
if (avoidUpdates) queuedUpdates.set(node, () => onLayout(event));else onLayout(event);
|
|
201
|
+
}
|
|
202
|
+
function observeLayoutNode(node, disableKey) {
|
|
200
203
|
Nodes.add(node);
|
|
201
|
-
|
|
202
|
-
if (disableKey) LayoutDisableKey.set(node, disableKey);
|
|
204
|
+
if (disableKey) LayoutDisableKey.set(node, disableKey);else LayoutDisableKey.delete(node);
|
|
203
205
|
startGlobalObservers();
|
|
204
206
|
if (globalIntersectionObserver) {
|
|
205
207
|
globalIntersectionObserver.observe(node);
|
|
206
208
|
IntersectionState.set(node, true);
|
|
207
209
|
}
|
|
210
|
+
}
|
|
211
|
+
function registerLayoutNode(node, onChange, disableKey) {
|
|
212
|
+
LayoutHandlers.set(node, onChange);
|
|
213
|
+
observeLayoutNode(node, disableKey);
|
|
208
214
|
return () => cleanupNode(node);
|
|
209
215
|
}
|
|
210
216
|
function cleanupNode(node) {
|
|
@@ -216,6 +222,17 @@ function cleanupNode(node) {
|
|
|
216
222
|
if (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);
|
|
217
223
|
}
|
|
218
224
|
const PrevHostNode = /* @__PURE__ */new WeakMap();
|
|
225
|
+
function emitLayoutSync(node) {
|
|
226
|
+
const onLayout = LayoutHandlers.get(node);
|
|
227
|
+
if (typeof onLayout !== "function") return;
|
|
228
|
+
const parentNode = node.parentElement;
|
|
229
|
+
if (!parentNode) return;
|
|
230
|
+
const nodeRect = node.getBoundingClientRect();
|
|
231
|
+
const parentRect = parentNode.getBoundingClientRect();
|
|
232
|
+
NodeRectCache.set(node, nodeRect);
|
|
233
|
+
NodeRectCache.set(parentNode, parentRect);
|
|
234
|
+
onLayout(getElementLayoutEvent(nodeRect, parentRect, node));
|
|
235
|
+
}
|
|
219
236
|
function useElementLayout(ref, onLayout) {
|
|
220
237
|
const disableKey = useContext(DisableLayoutContextKey);
|
|
221
238
|
const node = ensureWebElement(ref.current?.host);
|
|
@@ -231,40 +248,22 @@ function useElementLayout(ref, onLayout) {
|
|
|
231
248
|
if (prevNode) cleanupNode(prevNode);
|
|
232
249
|
PrevHostNode.set(ref, nextNode);
|
|
233
250
|
if (!nextNode) return;
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
globalIntersectionObserver.observe(nextNode);
|
|
238
|
-
IntersectionState.set(nextNode, true);
|
|
239
|
-
}
|
|
240
|
-
const handler = LayoutHandlers.get(nextNode);
|
|
241
|
-
if (typeof handler !== "function") return;
|
|
242
|
-
const parentNode = nextNode.parentElement;
|
|
243
|
-
if (!parentNode) return;
|
|
244
|
-
const nodeRect = nextNode.getBoundingClientRect();
|
|
245
|
-
const parentRect = parentNode.getBoundingClientRect();
|
|
246
|
-
NodeRectCache.set(nextNode, nodeRect);
|
|
247
|
-
NodeRectCache.set(parentNode, parentRect);
|
|
248
|
-
handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
|
|
251
|
+
LayoutHandlers.set(nextNode, onLayout);
|
|
252
|
+
observeLayoutNode(nextNode, disableKey);
|
|
253
|
+
emitLayoutSync(nextNode);
|
|
249
254
|
});
|
|
250
255
|
useIsomorphicLayoutEffect(() => {
|
|
251
256
|
if (!onLayout) return;
|
|
252
257
|
const node2 = ref.current?.host;
|
|
253
258
|
if (!node2) return;
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
if (globalIntersectionObserver) {
|
|
257
|
-
globalIntersectionObserver.observe(node2);
|
|
258
|
-
IntersectionState.set(node2, true);
|
|
259
|
-
}
|
|
259
|
+
LayoutHandlers.set(node2, onLayout);
|
|
260
|
+
observeLayoutNode(node2, disableKey);
|
|
260
261
|
if (process.env.NODE_ENV === "development" && isDebugLayout()) console.log("[useElementLayout] register", {
|
|
261
262
|
tag: node2.tagName,
|
|
262
263
|
id: node2.id || void 0,
|
|
263
264
|
className: (node2.className || "").slice(0, 60) || void 0,
|
|
264
265
|
totalNodes: Nodes.size
|
|
265
266
|
});
|
|
266
|
-
const parentNode = node2.parentNode;
|
|
267
|
-
if (parentNode) onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2));
|
|
268
267
|
return () => {
|
|
269
268
|
cleanupNode(node2);
|
|
270
269
|
const swappedNode = PrevHostNode.get(ref);
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__GUI_ONLAYOUT_PRETRANSFORM","process","env","GUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","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","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","getElementLayoutEvent","log","tag","tagName","className","slice","layout","nativeEvent","first","rAF","requestAnimationFrame","userSkipVal","GUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","registerLayoutNode","onChange","delete","PrevHostNode","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","handler","node2","totalNodes","size","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__GUI_ONLAYOUT_PRETRANSFORM","process","env","GUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","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","updateLayoutIfChanged","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","emitLayoutIfChanged","rAF","requestAnimationFrame","userSkipVal","GUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","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","size","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 \"@hanzogui/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.__GUI_ONLAYOUT_PRETRANSFORM === true || process.env.GUI_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\";\nfunction setOnLayoutStrategy(state) {\n\tstrategy = state;\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};\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.GUI_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\tasync function layoutOnAnimationFrame() {\n\t\tif (frameCount++ % skipFrames !== 0) {\n\t\t\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\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\trAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);\n\t}\n\tlayoutOnAnimationFrame();\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}\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":"AAAA,SAASA,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,aAAa,EAAEC,UAAU,EAAEC,KAAK,QAAQ,OAAO;AACxD,SAASC,GAAG,QAAQ,mBAAmB;AAEvC,MAAMC,cAAc,GAAG,eAAgB,IAAIC,OAAO,CAAC,CAAC;AACpD,MAAMC,gBAAgB,GAAG,eAAgB,IAAID,OAAO,CAAC,CAAC;AACtD,MAAME,KAAK,GAAG,eAAgB,IAAIC,GAAG,CAAC,CAAC;AACvC,MAAMC,iBAAiB,GAAG,eAAgB,IAAIJ,OAAO,CAAC,CAAC;AACvD,MAAMK,yBAAyB,GAAGA,CAAA,KAAMC,UAAU,CAACC,2BAA2B,KAAK,IAAI,IAAIC,OAAO,CAACC,GAAG,CAACC,yBAAyB,KAAK,GAAG;AACxI,IAAIC,YAAY;AAChB,SAASC,aAAaA,CAAA,EAAG;EACxB,IAAID,YAAY,KAAK,KAAK,CAAC,EAAEA,YAAY,GAAG,OAAOE,MAAM,KAAK,WAAW,IAAI,IAAIC,eAAe,CAACD,MAAM,CAACE,QAAQ,CAACC,MAAM,CAAC,CAACC,GAAG,CAAC,mBAAmB,CAAC;EACjJ,OAAON,YAAY;AACpB;AACA,MAAMO,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAMC,uBAAuB,GAAGxB,aAAa,CAAC,EAAE,CAAC;AACjD,MAAMyB,MAAM,GAAG,OAAOC,oBAAoB,KAAK,WAAW;AAC1D,MAAMC,2BAA2B,GAAGA,CAAC;EAAEC,OAAO;EAAEC;AAAS,CAAC,KAAK;EAC9D,MAAMC,EAAE,GAAG5B,KAAK,CAAC,CAAC;EAClBH,yBAAyB,CAAC,MAAM;IAC/BwB,0BAA0B,CAACO,EAAE,CAAC,GAAGF,OAAO;EACzC,CAAC,EAAE,CAACA,OAAO,EAAEE,EAAE,CAAC,CAAC;EACjB,OAAO,eAAgB3B,GAAG,CAACqB,uBAAuB,CAACO,QAAQ,EAAE;IAC5DC,KAAK,EAAEF,EAAE;IACTD;EACD,CAAC,CAAC;AACH,CAAC;AACD,IAAII,0BAA0B,GAAG,IAAI;AACrC,IAAIC,QAAQ,GAAG,OAAO;AACtB,SAASC,mBAAmBA,CAACC,KAAK,EAAE;EACnCF,QAAQ,GAAGE,KAAK;AACjB;AACA,MAAMC,aAAa,GAAG,eAAgB,IAAIhC,OAAO,CAAC,CAAC;AACnD,IAAIiC,YAAY,GAAG,IAAI;AACvB,MAAMC,aAAa,GAAG,eAAgB,IAAIC,GAAG,CAAC,CAAC;AAC/C,SAASC,MAAMA,CAAA,EAAG;EACjB,IAAIH,YAAY,EAAE;IACjBA,YAAY,GAAG,KAAK;IACpB,IAAIC,aAAa,EAAE;MAClBA,aAAa,CAACG,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;MACnCJ,aAAa,CAACK,KAAK,CAAC,CAAC;IACtB;EACD;AACD;AACA,SAASC,oBAAoBA,CAAA,EAAG;EAC/B,IAAI,CAACpB,MAAM,IAAIQ,0BAA0B,EAAE;EAC3CA,0BAA0B,GAAG,IAAIP,oBAAoB,CAAEoB,OAAO,IAAK;IAClE,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,OAAO,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;MACxC,MAAME,KAAK,GAAGH,OAAO,CAACC,CAAC,CAAC;MACxB,MAAMG,IAAI,GAAGD,KAAK,CAACE,MAAM;MACzB,IAAI1C,iBAAiB,CAAC2C,GAAG,CAACF,IAAI,CAAC,KAAKD,KAAK,CAACI,cAAc,EAAE5C,iBAAiB,CAAC6C,GAAG,CAACJ,IAAI,EAAED,KAAK,CAACI,cAAc,CAAC;IAC5G;EACD,CAAC,EAAE;IAAEE,SAAS,EAAE;EAAE,CAAC,CAAC;AACrB;AACA,SAASC,UAAUA,CAACC,CAAC,EAAEC,CAAC,EAAE;EACzB,OAAOD,CAAC,CAACE,CAAC,KAAKD,CAAC,CAACC,CAAC,IAAIF,CAAC,CAACG,CAAC,KAAKF,CAAC,CAACE,CAAC,IAAIH,CAAC,CAACI,KAAK,KAAKH,CAAC,CAACG,KAAK,IAAIJ,CAAC,CAACK,MAAM,KAAKJ,CAAC,CAACI,MAAM;AAClF;AACA,IAAIrC,MAAM,EAAE;EACX,IAAIsC,uBAAuB,GAAG,SAAAA,CAAA,EAAW;IACxC,IAAIC,iBAAiB,EAAE,OAAOA,iBAAiB;IAC/CA,iBAAiB,GAAG,IAAItC,oBAAoB,CAAEoB,OAAO,IAAK;MACzDmB,iBAAiB,GAAGC,IAAI,CAACC,KAAK,CAACC,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGC,kBAAkB,CAAC;MACtE,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,OAAO,CAACE,MAAM,EAAED,CAAC,EAAE,EAAEwB,aAAa,CAACjB,GAAG,CAACR,OAAO,CAACC,CAAC,CAAC,CAACI,MAAM,EAAEL,OAAO,CAACC,CAAC,CAAC,CAACyB,kBAAkB,CAAC;MAC5G,IAAI3D,OAAO,CAACC,GAAG,CAAC2D,QAAQ,KAAK,aAAa,IAAIxD,aAAa,CAAC,CAAC,IAAIgD,iBAAiB,GAAG,EAAE,EAAES,OAAO,CAACC,IAAI,CAAC,qBAAqB,EAAEV,iBAAiB,GAAG,IAAI,EAAEnB,OAAO,CAACE,MAAM,EAAE,SAAS,CAAC;MACjL,IAAI4B,gBAAgB,EAAE;QACrBA,gBAAgB,CAAC,IAAI,CAAC;QACtBA,gBAAgB,GAAG,IAAI;MACxB;IACD,CAAC,EAAE;MAAErB,SAAS,EAAE;IAAE,CAAC,CAAC;IACpB,OAAOS,iBAAiB;EACzB,CAAC;EACD,MAAMO,aAAa,GAAG,eAAgB,IAAIlE,OAAO,CAAC,CAAC;EACnD,IAAI2D,iBAAiB,GAAG,IAAI;EAC5B,IAAIY,gBAAgB,GAAG,IAAI;EAC3B,IAAIN,kBAAkB,GAAG,CAAC;EAC1B,IAAIL,iBAAiB,GAAG,CAAC;EACzB,eAAeY,qBAAqBA,CAAC3B,IAAI,EAAE;IAC1C,IAAI,OAAO9C,cAAc,CAACgD,GAAG,CAACF,IAAI,CAAC,KAAK,UAAU,EAAE;IACpD,MAAM4B,UAAU,GAAG5B,IAAI,CAAC6B,aAAa;IACrC,IAAI,CAACD,UAAU,EAAE;IACjB,IAAIE,QAAQ;IACZ,IAAIC,UAAU;IACd,IAAI/C,QAAQ,KAAK,OAAO,EAAE;MACzB8C,QAAQ,GAAGT,aAAa,CAACnB,GAAG,CAACF,IAAI,CAAC;MAClC+B,UAAU,GAAGV,aAAa,CAACnB,GAAG,CAAC0B,UAAU,CAAC;MAC1C,IAAI,CAACE,QAAQ,IAAI,CAACC,UAAU,EAAE;IAC/B,CAAC,MAAM;MACND,QAAQ,GAAG9B,IAAI,CAACgC,qBAAqB,CAAC,CAAC;MACvCD,UAAU,GAAGH,UAAU,CAACI,qBAAqB,CAAC,CAAC;IAChD;IACAC,mBAAmB,CAACjC,IAAI,EAAE4B,UAAU,EAAEE,QAAQ,EAAEC,UAAU,CAAC;EAC5D;EACA,MAAMG,GAAG,GAAG,OAAOC,qBAAqB,KAAK,WAAW,GAAGA,qBAAqB,GAAG,KAAK,CAAC;EACzF,MAAMC,WAAW,GAAGzE,OAAO,CAACC,GAAG,CAACyE,qBAAqB;EACrD,MAAMC,gBAAgB,GAAGF,WAAW,GAAG,CAACA,WAAW,GAAG,EAAE;EACxD,MAAMG,eAAe,GAAG,EAAE;EAC1B,IAAIC,UAAU,GAAGF,gBAAgB;EACjC,IAAIG,UAAU,GAAG,CAAC;EAClB,eAAeC,sBAAsBA,CAAA,EAAG;IACvC,IAAID,UAAU,EAAE,GAAGD,UAAU,KAAK,CAAC,EAAE;MACpCN,GAAG,GAAGA,GAAG,CAACQ,sBAAsB,CAAC,GAAGC,UAAU,CAACD,sBAAsB,EAAE,EAAE,CAAC;MAC1E;IACD;IACA,IAAID,UAAU,IAAIG,MAAM,CAACC,gBAAgB,EAAEJ,UAAU,GAAG,CAAC;IACzD,IAAIzD,QAAQ,KAAK,KAAK,EAAE;MACvB,MAAM8D,YAAY,GAAG,EAAE;MACvB,MAAMC,gBAAgB,GAAG,eAAgB,IAAIzF,GAAG,CAAC,CAAC;MAClD,KAAK,MAAM0C,IAAI,IAAI3C,KAAK,EAAE;QACzB,MAAMwE,aAAa,GAAG7B,IAAI,CAAC6B,aAAa;QACxC,IAAI,EAAEA,aAAa,YAAYmB,WAAW,CAAC,EAAE;UAC5CC,WAAW,CAACjD,IAAI,CAAC;UACjB;QACD;QACA,MAAMkD,UAAU,GAAG9F,gBAAgB,CAAC8C,GAAG,CAACF,IAAI,CAAC;QAC7C,IAAIkD,UAAU,IAAI7E,0BAA0B,CAAC6E,UAAU,CAAC,KAAK,IAAI,EAAE;QACnE,IAAI3F,iBAAiB,CAAC2C,GAAG,CAACF,IAAI,CAAC,KAAK,KAAK,EAAE;QAC3C8C,YAAY,CAACK,IAAI,CAACnD,IAAI,CAAC;QACvB+C,gBAAgB,CAACK,GAAG,CAACvB,aAAa,CAAC;MACpC;MACA,IAAIiB,YAAY,CAAChD,MAAM,GAAG,CAAC,EAAE;QAC5B,MAAMuD,EAAE,GAAGxC,uBAAuB,CAAC,CAAC;QACpCO,kBAAkB,GAAGF,WAAW,CAACC,GAAG,CAAC,CAAC;QACtC,KAAK,IAAItB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiD,YAAY,CAAChD,MAAM,EAAED,CAAC,EAAE,EAAEwD,EAAE,CAACC,OAAO,CAACR,YAAY,CAACjD,CAAC,CAAC,CAAC;QACzE,KAAK,MAAM0D,MAAM,IAAIR,gBAAgB,EAAEM,EAAE,CAACC,OAAO,CAACC,MAAM,CAAC;QACzD,MAAM,IAAIC,OAAO,CAAEC,GAAG,IAAK;UAC1B/B,gBAAgB,GAAG+B,GAAG;QACvB,CAAC,CAAC;QACF,KAAK,IAAI5D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiD,YAAY,CAAChD,MAAM,EAAED,CAAC,EAAE,EAAEwD,EAAE,CAACK,SAAS,CAACZ,YAAY,CAACjD,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM0D,MAAM,IAAIR,gBAAgB,EAAEM,EAAE,CAACK,SAAS,CAACH,MAAM,CAAC;QAC3D,IAAIxC,iBAAiB,GAAG,EAAE,EAAEyB,UAAU,GAAGxB,IAAI,CAAC2C,GAAG,CAACnB,UAAU,GAAG,CAAC,EAAED,eAAe,CAAC,CAAC,KAC9E,IAAIxB,iBAAiB,GAAG,EAAE,EAAEyB,UAAU,GAAGxB,IAAI,CAAC4C,GAAG,CAACpB,UAAU,GAAG,CAAC,EAAEF,gBAAgB,CAAC;QACxF,KAAK,IAAIzC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiD,YAAY,CAAChD,MAAM,EAAED,CAAC,EAAE,EAAE8B,qBAAqB,CAACmB,YAAY,CAACjD,CAAC,CAAC,CAAC;MACrF;IACD;IACAqC,GAAG,GAAGA,GAAG,CAACQ,sBAAsB,CAAC,GAAGC,UAAU,CAACD,sBAAsB,EAAE,EAAE,CAAC;EAC3E;EACAA,sBAAsB,CAAC,CAAC;AACzB;AACA,MAAMmB,qBAAqB,GAAGA,CAAC/B,QAAQ,EAAEC,UAAU,EAAE/B,IAAI,KAAK;EAC7D,OAAO;IACN8D,WAAW,EAAE;MACZC,MAAM,EAAEC,qBAAqB,CAAClC,QAAQ,EAAEC,UAAU,EAAE/B,IAAI,CAAC;MACzDC,MAAM,EAAE6B;IACT,CAAC;IACDmC,SAAS,EAAEC,IAAI,CAAC/C,GAAG,CAAC;EACrB,CAAC;AACF,CAAC;AACD,MAAMgD,yBAAyB,GAAInE,IAAI,IAAK;EAC3C,OAAO;IACNW,KAAK,EAAEX,IAAI,CAACoE,WAAW;IACvBxD,MAAM,EAAEZ,IAAI,CAACqE;EACd,CAAC;AACF,CAAC;AACD,MAAML,qBAAqB,GAAGA,CAACzD,CAAC,EAAEC,CAAC,EAAE8D,KAAK,KAAK;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAI,CAAC,GAAGjE,CAAC;EACvB,MAAME,CAAC,GAAG8D,IAAI,GAAG/D,CAAC,CAAC+D,IAAI;EACvB,MAAM7D,CAAC,GAAG8D,GAAG,GAAGhE,CAAC,CAACgE,GAAG;EACrB,MAAM;IAAE7D,KAAK;IAAEC;EAAO,CAAC,GAAGpD,yBAAyB,CAAC,CAAC,IAAI8G,KAAK,GAAGH,yBAAyB,CAACG,KAAK,CAAC,GAAG;IACnG3D,KAAK,EAAEJ,CAAC,CAACI,KAAK;IACdC,MAAM,EAAEL,CAAC,CAACK;EACX,CAAC;EACD,OAAO;IACNH,CAAC;IACDC,CAAC;IACDC,KAAK;IACLC,MAAM;IACN6D,KAAK,EAAElE,CAAC,CAACgE,IAAI;IACbG,KAAK,EAAEnE,CAAC,CAACiE;EACV,CAAC;AACF,CAAC;AACD,SAASvC,mBAAmBA,CAACjC,IAAI,EAAE4B,UAAU,EAAEE,QAAQ,EAAEC,UAAU,EAAE;EACpE,MAAM4C,QAAQ,GAAGzH,cAAc,CAACgD,GAAG,CAACF,IAAI,CAAC;EACzC,IAAI,OAAO2E,QAAQ,KAAK,UAAU,EAAE;EACpC,MAAMC,UAAU,GAAGzF,aAAa,CAACe,GAAG,CAACF,IAAI,CAAC;EAC1C,MAAM6E,gBAAgB,GAAG1F,aAAa,CAACe,GAAG,CAAC0B,UAAU,CAAC;EACtD,MAAMkD,WAAW,GAAG,CAACF,UAAU,IAAI,CAACtE,UAAU,CAACsE,UAAU,EAAE9C,QAAQ,CAAC;EACpE,MAAMiD,aAAa,GAAG,CAACF,gBAAgB,IAAI,CAACvE,UAAU,CAACuE,gBAAgB,EAAE9C,UAAU,CAAC;EACpF,IAAI,CAAC+C,WAAW,IAAI,CAACC,aAAa,EAAE;EACpC5F,aAAa,CAACiB,GAAG,CAACJ,IAAI,EAAE8B,QAAQ,CAAC;EACjC3C,aAAa,CAACiB,GAAG,CAACwB,UAAU,EAAEG,UAAU,CAAC;EACzC,MAAMiD,KAAK,GAAGnB,qBAAqB,CAAC/B,QAAQ,EAAEC,UAAU,EAAE/B,IAAI,CAAC;EAC/D,IAAIrC,OAAO,CAACC,GAAG,CAAC2D,QAAQ,KAAK,aAAa,IAAIxD,aAAa,CAAC,CAAC,EAAEyD,OAAO,CAACyD,GAAG,CAAC,2BAA2B,EAAE;IACvGC,GAAG,EAAElF,IAAI,CAACmF,OAAO;IACjBvG,EAAE,EAAEoB,IAAI,CAACpB,EAAE,IAAI,KAAK,CAAC;IACrBwG,SAAS,EAAE,CAACpF,IAAI,CAACoF,SAAS,IAAI,EAAE,EAAEC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;IACxDtB,MAAM,EAAEiB,KAAK,CAAClB,WAAW,CAACC,MAAM;IAChCuB,KAAK,EAAE,CAACV;EACT,CAAC,CAAC;EACF,IAAIxF,YAAY,EAAEC,aAAa,CAACe,GAAG,CAACJ,IAAI,EAAE,MAAM2E,QAAQ,CAACK,KAAK,CAAC,CAAC,CAAC,KAC5DL,QAAQ,CAACK,KAAK,CAAC;AACrB;AACA,SAASO,iBAAiBA,CAACvF,IAAI,EAAEkD,UAAU,EAAE;EAC5C7F,KAAK,CAAC+F,GAAG,CAACpD,IAAI,CAAC;EACf,IAAIkD,UAAU,EAAE9F,gBAAgB,CAACgD,GAAG,CAACJ,IAAI,EAAEkD,UAAU,CAAC,CAAC,KAClD9F,gBAAgB,CAACoI,MAAM,CAACxF,IAAI,CAAC;EAClCL,oBAAoB,CAAC,CAAC;EACtB,IAAIZ,0BAA0B,EAAE;IAC/BA,0BAA0B,CAACuE,OAAO,CAACtD,IAAI,CAAC;IACxCzC,iBAAiB,CAAC6C,GAAG,CAACJ,IAAI,EAAE,IAAI,CAAC;EAClC;AACD;AACA,SAASyF,kBAAkBA,CAACzF,IAAI,EAAE0F,QAAQ,EAAExC,UAAU,EAAE;EACvDhG,cAAc,CAACkD,GAAG,CAACJ,IAAI,EAAE0F,QAAQ,CAAC;EAClCH,iBAAiB,CAACvF,IAAI,EAAEkD,UAAU,CAAC;EACnC,OAAO,MAAMD,WAAW,CAACjD,IAAI,CAAC;AAC/B;AACA,SAASiD,WAAWA,CAACjD,IAAI,EAAE;EAC1B3C,KAAK,CAACmI,MAAM,CAACxF,IAAI,CAAC;EAClB9C,cAAc,CAACsI,MAAM,CAACxF,IAAI,CAAC;EAC3B5C,gBAAgB,CAACoI,MAAM,CAACxF,IAAI,CAAC;EAC7Bb,aAAa,CAACqG,MAAM,CAACxF,IAAI,CAAC;EAC1BzC,iBAAiB,CAACiI,MAAM,CAACxF,IAAI,CAAC;EAC9B,IAAIjB,0BAA0B,EAAEA,0BAA0B,CAAC2E,SAAS,CAAC1D,IAAI,CAAC;AAC3E;AACA,MAAM2F,YAAY,GAAG,eAAgB,IAAIxI,OAAO,CAAC,CAAC;AAClD,SAASyI,cAAcA,CAAC5F,IAAI,EAAE;EAC7B,MAAM2E,QAAQ,GAAGzH,cAAc,CAACgD,GAAG,CAACF,IAAI,CAAC;EACzC,IAAI,OAAO2E,QAAQ,KAAK,UAAU,EAAE;EACpC,MAAM/C,UAAU,GAAG5B,IAAI,CAAC6B,aAAa;EACrC,IAAI,CAACD,UAAU,EAAE;EACjB,MAAME,QAAQ,GAAG9B,IAAI,CAACgC,qBAAqB,CAAC,CAAC;EAC7C,MAAMD,UAAU,GAAGH,UAAU,CAACI,qBAAqB,CAAC,CAAC;EACrD7C,aAAa,CAACiB,GAAG,CAACJ,IAAI,EAAE8B,QAAQ,CAAC;EACjC3C,aAAa,CAACiB,GAAG,CAACwB,UAAU,EAAEG,UAAU,CAAC;EACzC4C,QAAQ,CAACd,qBAAqB,CAAC/B,QAAQ,EAAEC,UAAU,EAAE/B,IAAI,CAAC,CAAC;AAC5D;AACA,SAAS6F,gBAAgBA,CAACC,GAAG,EAAEnB,QAAQ,EAAE;EACxC,MAAMzB,UAAU,GAAGnG,UAAU,CAACuB,uBAAuB,CAAC;EACtD,MAAM0B,IAAI,GAAG+F,gBAAgB,CAACD,GAAG,CAACE,OAAO,EAAEC,IAAI,CAAC;EAChD,IAAIjG,IAAI,IAAI2E,QAAQ,EAAE;IACrBzH,cAAc,CAACkD,GAAG,CAACJ,IAAI,EAAE2E,QAAQ,CAAC;IAClCvH,gBAAgB,CAACgD,GAAG,CAACJ,IAAI,EAAEkD,UAAU,CAAC;EACvC;EACArG,yBAAyB,CAAC,MAAM;IAC/B,IAAI,CAAC8H,QAAQ,EAAE;IACf,MAAMuB,QAAQ,GAAGH,gBAAgB,CAACD,GAAG,CAACE,OAAO,EAAEC,IAAI,CAAC;IACpD,MAAME,QAAQ,GAAGR,YAAY,CAACzF,GAAG,CAAC4F,GAAG,CAAC;IACtC,IAAII,QAAQ,KAAKC,QAAQ,EAAE;IAC3B,IAAIA,QAAQ,EAAElD,WAAW,CAACkD,QAAQ,CAAC;IACnCR,YAAY,CAACvF,GAAG,CAAC0F,GAAG,EAAEI,QAAQ,CAAC;IAC/B,IAAI,CAACA,QAAQ,EAAE;IACfhJ,cAAc,CAACkD,GAAG,CAAC8F,QAAQ,EAAEvB,QAAQ,CAAC;IACtCY,iBAAiB,CAACW,QAAQ,EAAEhD,UAAU,CAAC;IACvC0C,cAAc,CAACM,QAAQ,CAAC;EACzB,CAAC,CAAC;EACFrJ,yBAAyB,CAAC,MAAM;IAC/B,IAAI,CAAC8H,QAAQ,EAAE;IACf,MAAMyB,KAAK,GAAGN,GAAG,CAACE,OAAO,EAAEC,IAAI;IAC/B,IAAI,CAACG,KAAK,EAAE;IACZlJ,cAAc,CAACkD,GAAG,CAACgG,KAAK,EAAEzB,QAAQ,CAAC;IACnCY,iBAAiB,CAACa,KAAK,EAAElD,UAAU,CAAC;IACpC,IAAIvF,OAAO,CAACC,GAAG,CAAC2D,QAAQ,KAAK,aAAa,IAAIxD,aAAa,CAAC,CAAC,EAAEyD,OAAO,CAACyD,GAAG,CAAC,6BAA6B,EAAE;MACzGC,GAAG,EAAEkB,KAAK,CAACjB,OAAO;MAClBvG,EAAE,EAAEwH,KAAK,CAACxH,EAAE,IAAI,KAAK,CAAC;MACtBwG,SAAS,EAAE,CAACgB,KAAK,CAAChB,SAAS,IAAI,EAAE,EAAEC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;MACzDgB,UAAU,EAAEhJ,KAAK,CAACiJ;IACnB,CAAC,CAAC;IACF,OAAO,MAAM;MACZrD,WAAW,CAACmD,KAAK,CAAC;MAClB,MAAMG,WAAW,GAAGZ,YAAY,CAACzF,GAAG,CAAC4F,GAAG,CAAC;MACzC,IAAIS,WAAW,IAAIA,WAAW,KAAKH,KAAK,EAAEnD,WAAW,CAACsD,WAAW,CAAC;MAClEZ,YAAY,CAACH,MAAM,CAACM,GAAG,CAAC;IACzB,CAAC;EACF,CAAC,EAAE,CAACA,GAAG,EAAE,CAAC,CAACnB,QAAQ,CAAC,CAAC;AACtB;AACA,SAASoB,gBAAgBA,CAACtF,CAAC,EAAE;EAC5B,IAAI,OAAOuC,WAAW,KAAK,WAAW,EAAE;EACxC,OAAOvC,CAAC,YAAYuC,WAAW,GAAGvC,CAAC,GAAG,KAAK,CAAC;AAC7C;AACA,MAAM+F,0BAA0B,GAAIxG,IAAI,IAAK;EAC5C,OAAO,IAAIwD,OAAO,CAAEC,GAAG,IAAK;IAC3B,IAAI,CAACzD,IAAI,IAAIA,IAAI,CAACyG,QAAQ,KAAK,CAAC,EAAE,OAAOhD,GAAG,CAAC,KAAK,CAAC;IACnD,MAAMJ,EAAE,GAAG,IAAI7E,oBAAoB,CAAEoB,OAAO,IAAK;MAChDyD,EAAE,CAACqD,UAAU,CAAC,CAAC;MACf,OAAOjD,GAAG,CAAC7D,OAAO,CAAC,CAAC,CAAC,CAAC0B,kBAAkB,CAAC;IAC1C,CAAC,EAAE;MAAEjB,SAAS,EAAE;IAAE,CAAC,CAAC;IACpBgD,EAAE,CAACC,OAAO,CAACtD,IAAI,CAAC;EACjB,CAAC,CAAC;AACH,CAAC;AACD,MAAM2G,WAAW,GAAG,MAAAA,CAAO3G,IAAI,EAAE4G,UAAU,KAAK;EAC/C,MAAMC,YAAY,GAAGD,UAAU,IAAI5G,IAAI,EAAE6B,aAAa;EACtD,IAAIgF,YAAY,YAAY7D,WAAW,EAAE;IACxC,MAAM,CAAC8D,OAAO,EAAEC,eAAe,CAAC,GAAG,MAAMvD,OAAO,CAACwD,GAAG,CAAC,CAACR,0BAA0B,CAACxG,IAAI,CAAC,EAAEwG,0BAA0B,CAACK,YAAY,CAAC,CAAC,CAAC;IAClI,IAAIE,eAAe,IAAID,OAAO,EAAE,OAAO9C,qBAAqB,CAAC8C,OAAO,EAAEC,eAAe,EAAE/G,IAAI,CAAC;EAC7F;EACA,OAAO,IAAI;AACZ,CAAC;AACD,MAAMiH,OAAO,GAAG,MAAAA,CAAOjH,IAAI,EAAEkH,QAAQ,KAAK;EACzC,MAAMC,GAAG,GAAG,MAAMR,WAAW,CAAC3G,IAAI,EAAEA,IAAI,CAAC4B,UAAU,YAAYoB,WAAW,GAAGhD,IAAI,CAAC4B,UAAU,GAAG,IAAI,CAAC;EACpG,IAAIuF,GAAG,EAAED,QAAQ,GAAGC,GAAG,CAAC1G,CAAC,EAAE0G,GAAG,CAACzG,CAAC,EAAEyG,GAAG,CAACxG,KAAK,EAAEwG,GAAG,CAACvG,MAAM,EAAEuG,GAAG,CAAC1C,KAAK,EAAE0C,GAAG,CAACzC,KAAK,CAAC;EAC9E,OAAOyC,GAAG;AACX,CAAC;AACD,SAASC,aAAaA,CAACpH,IAAI,EAAE;EAC5B,OAAQkH,QAAQ,IAAKD,OAAO,CAACjH,IAAI,EAAEkH,QAAQ,CAAC;AAC7C;AACA,MAAMG,eAAe,GAAG,MAAAA,CAAOrH,IAAI,EAAEkH,QAAQ,KAAK;EACjD,MAAMC,GAAG,GAAG,MAAMR,WAAW,CAAC3G,IAAI,EAAE,IAAI,CAAC;EACzC,IAAImH,GAAG,EAAED,QAAQ,GAAGC,GAAG,CAAC1C,KAAK,EAAE0C,GAAG,CAACzC,KAAK,EAAEyC,GAAG,CAACxG,KAAK,EAAEwG,GAAG,CAACvG,MAAM,CAAC;EAChE,OAAOuG,GAAG;AACX,CAAC;AACD,MAAMG,qBAAqB,GAAItH,IAAI,IAAK;EACvC,OAAQkH,QAAQ,IAAKG,eAAe,CAACrH,IAAI,EAAEkH,QAAQ,CAAC;AACrD,CAAC;AACD,MAAMK,aAAa,GAAG,MAAAA,CAAOvH,IAAI,EAAE6G,YAAY,EAAEK,QAAQ,KAAK;EAC7D,MAAMC,GAAG,GAAG,MAAMR,WAAW,CAAC3G,IAAI,EAAE6G,YAAY,CAAC;EACjD,IAAIM,GAAG,EAAED,QAAQ,GAAGC,GAAG,CAAC1G,CAAC,EAAE0G,GAAG,CAACzG,CAAC,EAAEyG,GAAG,CAACxG,KAAK,EAAEwG,GAAG,CAACvG,MAAM,EAAEuG,GAAG,CAAC1C,KAAK,EAAE0C,GAAG,CAACzC,KAAK,CAAC;EAC9E,OAAOyC,GAAG;AACX,CAAC;AACD,SAASK,mBAAmBA,CAACxH,IAAI,EAAE;EAClC,OAAO,CAAC4G,UAAU,EAAEM,QAAQ,KAAKK,aAAa,CAACvH,IAAI,EAAE4G,UAAU,EAAEM,QAAQ,CAAC;AAC3E;AAEA,SAASzI,2BAA2B,EAAE2I,aAAa,EAAEE,qBAAqB,EAAEE,mBAAmB,EAAEjI,MAAM,EAAEiH,0BAA0B,EAAE3C,qBAAqB,EAAEoD,OAAO,EAAEI,eAAe,EAAEE,aAAa,EAAEZ,WAAW,EAAElB,kBAAkB,EAAExG,mBAAmB,EAAE4G,gBAAgB","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
|
|
3
3
|
import { createContext, useContext, useId } from "react";
|
|
4
4
|
function _instanceof(left, right) {
|
|
@@ -28,7 +28,7 @@ var LayoutMeasurementController = function (param) {
|
|
|
28
28
|
useIsomorphicLayoutEffect(function () {
|
|
29
29
|
DisableLayoutContextValues[id] = disable;
|
|
30
30
|
}, [disable, id]);
|
|
31
|
-
return /* @__PURE__ */
|
|
31
|
+
return /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
|
|
32
32
|
value: id,
|
|
33
33
|
children
|
|
34
34
|
});
|
|
@@ -68,7 +68,7 @@ function rectsEqual(a, b) {
|
|
|
68
68
|
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
69
69
|
}
|
|
70
70
|
if (ENABLE) {
|
|
71
|
-
let
|
|
71
|
+
let ensureRectFetchObserver2 = function () {
|
|
72
72
|
if (rectFetchObserver) return rectFetchObserver;
|
|
73
73
|
rectFetchObserver = new IntersectionObserver(function (entries) {
|
|
74
74
|
lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
|
|
@@ -89,8 +89,7 @@ if (ENABLE) {
|
|
|
89
89
|
var rectFetchStartTime = 0;
|
|
90
90
|
var lastCallbackDelay = 0;
|
|
91
91
|
async function updateLayoutIfChanged(node) {
|
|
92
|
-
|
|
93
|
-
if (typeof onLayout !== "function") return;
|
|
92
|
+
if (typeof LayoutHandlers.get(node) !== "function") return;
|
|
94
93
|
var parentNode = node.parentElement;
|
|
95
94
|
if (!parentNode) return;
|
|
96
95
|
var nodeRect;
|
|
@@ -103,25 +102,7 @@ if (ENABLE) {
|
|
|
103
102
|
nodeRect = node.getBoundingClientRect();
|
|
104
103
|
parentRect = parentNode.getBoundingClientRect();
|
|
105
104
|
}
|
|
106
|
-
|
|
107
|
-
var cachedParentRect = NodeRectCache.get(parentNode);
|
|
108
|
-
var nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);
|
|
109
|
-
var parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
|
|
110
|
-
if (nodeChanged || parentChanged) {
|
|
111
|
-
NodeRectCache.set(node, nodeRect);
|
|
112
|
-
NodeRectCache.set(parentNode, parentRect);
|
|
113
|
-
var event = getElementLayoutEvent(nodeRect, parentRect, node);
|
|
114
|
-
if (process.env.NODE_ENV === "development" && isDebugLayout()) console.log("[useElementLayout] change", {
|
|
115
|
-
tag: node.tagName,
|
|
116
|
-
id: node.id || void 0,
|
|
117
|
-
className: (node.className || "").slice(0, 60) || void 0,
|
|
118
|
-
layout: event.nativeEvent.layout,
|
|
119
|
-
first: !cachedRect
|
|
120
|
-
});
|
|
121
|
-
if (avoidUpdates) queuedUpdates.set(node, function () {
|
|
122
|
-
return onLayout(event);
|
|
123
|
-
});else onLayout(event);
|
|
124
|
-
}
|
|
105
|
+
emitLayoutIfChanged(node, parentNode, nodeRect, parentRect);
|
|
125
106
|
}
|
|
126
107
|
var rAF = typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : void 0;
|
|
127
108
|
var userSkipVal = process.env.GUI_LAYOUT_FRAME_SKIP;
|
|
@@ -166,7 +147,7 @@ if (ENABLE) {
|
|
|
166
147
|
}
|
|
167
148
|
}
|
|
168
149
|
if (visibleNodes.length > 0) {
|
|
169
|
-
var io =
|
|
150
|
+
var io = ensureRectFetchObserver2();
|
|
170
151
|
rectFetchStartTime = performance.now();
|
|
171
152
|
for (var i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
|
|
172
153
|
var _iteratorNormalCompletion1 = true,
|
|
@@ -255,15 +236,40 @@ var getRelativeDimensions = function (a, b, aNode) {
|
|
|
255
236
|
pageY: a.top
|
|
256
237
|
};
|
|
257
238
|
};
|
|
258
|
-
function
|
|
239
|
+
function emitLayoutIfChanged(node, parentNode, nodeRect, parentRect) {
|
|
240
|
+
var onLayout = LayoutHandlers.get(node);
|
|
241
|
+
if (typeof onLayout !== "function") return;
|
|
242
|
+
var cachedRect = NodeRectCache.get(node);
|
|
243
|
+
var cachedParentRect = NodeRectCache.get(parentNode);
|
|
244
|
+
var nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);
|
|
245
|
+
var parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
|
|
246
|
+
if (!nodeChanged && !parentChanged) return;
|
|
247
|
+
NodeRectCache.set(node, nodeRect);
|
|
248
|
+
NodeRectCache.set(parentNode, parentRect);
|
|
249
|
+
var event = getElementLayoutEvent(nodeRect, parentRect, node);
|
|
250
|
+
if (process.env.NODE_ENV === "development" && isDebugLayout()) console.log("[useElementLayout] change", {
|
|
251
|
+
tag: node.tagName,
|
|
252
|
+
id: node.id || void 0,
|
|
253
|
+
className: (node.className || "").slice(0, 60) || void 0,
|
|
254
|
+
layout: event.nativeEvent.layout,
|
|
255
|
+
first: !cachedRect
|
|
256
|
+
});
|
|
257
|
+
if (avoidUpdates) queuedUpdates.set(node, function () {
|
|
258
|
+
return onLayout(event);
|
|
259
|
+
});else onLayout(event);
|
|
260
|
+
}
|
|
261
|
+
function observeLayoutNode(node, disableKey) {
|
|
259
262
|
Nodes.add(node);
|
|
260
|
-
|
|
261
|
-
if (disableKey) LayoutDisableKey.set(node, disableKey);
|
|
263
|
+
if (disableKey) LayoutDisableKey.set(node, disableKey);else LayoutDisableKey.delete(node);
|
|
262
264
|
startGlobalObservers();
|
|
263
265
|
if (globalIntersectionObserver) {
|
|
264
266
|
globalIntersectionObserver.observe(node);
|
|
265
267
|
IntersectionState.set(node, true);
|
|
266
268
|
}
|
|
269
|
+
}
|
|
270
|
+
function registerLayoutNode(node, onChange, disableKey) {
|
|
271
|
+
LayoutHandlers.set(node, onChange);
|
|
272
|
+
observeLayoutNode(node, disableKey);
|
|
267
273
|
return function () {
|
|
268
274
|
return cleanupNode(node);
|
|
269
275
|
};
|
|
@@ -277,6 +283,17 @@ function cleanupNode(node) {
|
|
|
277
283
|
if (globalIntersectionObserver) globalIntersectionObserver.unobserve(node);
|
|
278
284
|
}
|
|
279
285
|
var PrevHostNode = /* @__PURE__ */new WeakMap();
|
|
286
|
+
function emitLayoutSync(node) {
|
|
287
|
+
var onLayout = LayoutHandlers.get(node);
|
|
288
|
+
if (typeof onLayout !== "function") return;
|
|
289
|
+
var parentNode = node.parentElement;
|
|
290
|
+
if (!parentNode) return;
|
|
291
|
+
var nodeRect = node.getBoundingClientRect();
|
|
292
|
+
var parentRect = parentNode.getBoundingClientRect();
|
|
293
|
+
NodeRectCache.set(node, nodeRect);
|
|
294
|
+
NodeRectCache.set(parentNode, parentRect);
|
|
295
|
+
onLayout(getElementLayoutEvent(nodeRect, parentRect, node));
|
|
296
|
+
}
|
|
280
297
|
function useElementLayout(ref, onLayout) {
|
|
281
298
|
var _ref_current;
|
|
282
299
|
var disableKey = useContext(DisableLayoutContextKey);
|
|
@@ -294,41 +311,23 @@ function useElementLayout(ref, onLayout) {
|
|
|
294
311
|
if (prevNode) cleanupNode(prevNode);
|
|
295
312
|
PrevHostNode.set(ref, nextNode);
|
|
296
313
|
if (!nextNode) return;
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
globalIntersectionObserver.observe(nextNode);
|
|
301
|
-
IntersectionState.set(nextNode, true);
|
|
302
|
-
}
|
|
303
|
-
var handler = LayoutHandlers.get(nextNode);
|
|
304
|
-
if (typeof handler !== "function") return;
|
|
305
|
-
var parentNode = nextNode.parentElement;
|
|
306
|
-
if (!parentNode) return;
|
|
307
|
-
var nodeRect = nextNode.getBoundingClientRect();
|
|
308
|
-
var parentRect = parentNode.getBoundingClientRect();
|
|
309
|
-
NodeRectCache.set(nextNode, nodeRect);
|
|
310
|
-
NodeRectCache.set(parentNode, parentRect);
|
|
311
|
-
handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
|
|
314
|
+
LayoutHandlers.set(nextNode, onLayout);
|
|
315
|
+
observeLayoutNode(nextNode, disableKey);
|
|
316
|
+
emitLayoutSync(nextNode);
|
|
312
317
|
});
|
|
313
318
|
useIsomorphicLayoutEffect(function () {
|
|
314
319
|
var _ref_current2;
|
|
315
320
|
if (!onLayout) return;
|
|
316
321
|
var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
|
|
317
322
|
if (!node2) return;
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
if (globalIntersectionObserver) {
|
|
321
|
-
globalIntersectionObserver.observe(node2);
|
|
322
|
-
IntersectionState.set(node2, true);
|
|
323
|
-
}
|
|
323
|
+
LayoutHandlers.set(node2, onLayout);
|
|
324
|
+
observeLayoutNode(node2, disableKey);
|
|
324
325
|
if (process.env.NODE_ENV === "development" && isDebugLayout()) console.log("[useElementLayout] register", {
|
|
325
326
|
tag: node2.tagName,
|
|
326
327
|
id: node2.id || void 0,
|
|
327
328
|
className: (node2.className || "").slice(0, 60) || void 0,
|
|
328
329
|
totalNodes: Nodes.size
|
|
329
330
|
});
|
|
330
|
-
var parentNode = node2.parentNode;
|
|
331
|
-
if (parentNode) onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2));
|
|
332
331
|
return function () {
|
|
333
332
|
cleanupNode(node2);
|
|
334
333
|
var swappedNode = PrevHostNode.get(ref);
|