react-voodoo 2.5.16 → 2.6.1
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/README.md +274 -0
- package/babel.config.js +6 -0
- package/dist/react-voodoo.js +1 -1
- package/dist/react-voodoo.js.map +1 -1
- package/jest.config.js +16 -0
- package/package.json +10 -4
- package/readme.md +152 -89
package/dist/react-voodoo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-voodoo.js","mappings":";qBAOAA,EAAOC,QAAU,CAOhBC,eAAc,SAAEC,EAASC,EAAMC,GAC9B,IACsBC,EAAGN,EADrBO,EAASH,EAAKI,MAAM,KACpBC,EAASN,EAGb,IADAG,EAAI,EACIA,EAAIC,EAAMG,OAAS,GAAID,EAASA,EAAOF,EAAMD,IAAMG,EAAOF,EAAMD,KAAO,CAAC,EAAGA,IAEnFN,EAAuC,IAA9BW,OAAOC,KAAKP,GAAOK,QAAgBL,EAAMQ,SAAWR,EAEvDI,EAAOF,EAAMD,KAGRG,EAAOF,EAAMD,IAAIQ,YAC3BH,OAAOI,OAAOf,EAAQS,EAAOF,EAAMD,KAInCG,EAAOF,EAAMD,IAAMN,GAPnBS,EAAOF,EAAMD,IAAMN,CASrB,uGChCD,IAASgB,EAAW,CAAC,EAAGd,EAAee,EAAAA,KAAAA,eAKvCf,EAAec,EAAU,MAF0BC,EAAQ,MAK3Df,EAAec,EAAU,OAF2BC,EAAQ,MAK5Df,EAAec,EAAU,QAF4BC,EAAQ,MAK7Df,EAAec,EAAU,QAF4BC,EAAQ,MAK7Df,EAAec,EAAU,QAF4BC,EAAQ,MAK7Df,EAAec,EAAU,SAF6BC,EAAQ,MAK9Df,EAAec,EAAU,SAF6BC,EAAQ,KAK9Df,EAAec,EAAU,SAF6BC,EAAQ,MAIvD,IAAMC,EAAMF,EAASE,IAEfC,EAAOH,EAASG,KAEhBC,EAAQJ,EAASI,MAEjBV,EAASM,EAASN,OAElBW,EAAQL,EAASK,MAEjBC,EAASN,EAASM,OAElBC,EAAQP,EAASO,0GC9BvB,IAAMC,EAAQ,CACpB,OAAiB,CAAE,WAAc,CAAC,YAAa,cAAe,eAAgB,cAAe,UAAY,GACzG,aAAiB,CAAE,MAAS,CAAC,WAC7B,WAAiB,CAAE,MAAS,CAAC,WAC7B,YAAiB,CAAE,MAAS,CAAC,WAC7B,UAAiB,CAAE,MAAS,CAAC,WAC7B,QAAiB,CAAE,WAAc,CAAC,aAAc,eAAgB,gBAAiB,eAAgB,UAAY,GAC7G,cAAiB,CAAE,MAAS,CAAC,WAC7B,YAAiB,CAAE,MAAS,CAAC,WAC7B,aAAiB,CAAE,MAAS,CAAC,WAC7B,WAAiB,CAAE,MAAS,CAAC,WAC7B,OAAiB,CAAE,MAAS,CAAC,2BAC7B,KAAiB,CAAE,MAAS,CAAC,2BAC7B,MAAiB,CAAE,MAAS,CAAC,2BAC7B,IAAiB,CAAE,MAAS,CAAC,2BAC7B,OAAiB,CAAE,MAAS,CAAC,YAC7B,MAAiB,CAAE,MAAS,CAAC,2BAC7B,SAAiB,CAAE,MAAS,CAAC,2BAC7B,SAAiB,CAAE,MAAS,CAAC,2BAC7B,OAAiB,CAAE,MAAS,CAAC,2BAC7B,UAAiB,CAAE,MAAS,CAAC,2BAC7B,UAAiB,CAAE,MAAS,CAAC,2BAC7B,WAAiB,CAAE,MAAS,CAAC,WAC7B,cAAiB,CAAE,MAAS,CAAC,WAC7B,WAAiB,CAAE,MAAS,CAAC,eAC7B,cAAiB,CAAE,MAAS,CAAC,UAAW,UAAY,GACpD,MAAiB,CAAE,MAAS,CAAC,UAC7B,QAAiB,CAAE,MAAS,CAAC,WAE7B,gBAA+B,CAAE,MAAS,CAAC,UAC3C,mBAA+B,CAC9B,MAAc,CAAC,0BACf,UAAc,EACd,YAAc,GAEf,eAA+B,CAC9B,MAAc,CAAC,0BACf,UAAc,EACd,YAAc,GAEf,OAA+B,CAAE,WAAc,CAAC,cAAe,cAAe,gBAC9E,aAA+B,CAAE,WAAc,CAAC,oBAAqB,oBAAqB,sBAC1F,WAA+B,CAAE,WAAc,CAAC,kBAAmB,kBAAmB,oBACtF,YAA+B,CAAE,WAAc,CAAC,mBAAoB,mBAAoB,qBACxF,UAA+B,CAAE,WAAc,CAAC,iBAAkB,iBAAkB,mBACpF,YAA+B,CAAE,WAAc,CAAC,iBAAkB,mBAAoB,oBAAqB,oBAC3G,YAA+B,CAAE,WAAc,CAAC,iBAAkB,mBAAoB,oBAAqB,oBAC3G,kBAA+B,CAAE,MAAS,CAAC,UAC3C,gBAA+B,CAAE,MAAS,CAAC,UAC3C,iBAA+B,CAAE,MAAS,CAAC,UAC3C,eAA+B,CAAE,MAAS,CAAC,UAC3C,kBAA+B,CAAE,MAAS,CAAC,WAC3C,gBAA+B,CAAE,MAAS,CAAC,WAC3C,iBAA+B,CAAE,MAAS,CAAC,WAC3C,eAA+B,CAAE,MAAS,CAAC,WAC3C,aAA+B,CAAE,WAAc,CAAC,sBAAuB,uBAAwB,0BAA2B,2BAC1H,oBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,GAEb,qBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,GAEb,wBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,GAEb,uBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,GAEb,UAA+B,CAAE,MAAS,CAAC,gBAC3C,WAA+B,CAAE,MAAS,CAAC,UAC3C,QAA+B,CAAE,WAAc,CAAC,eAAgB,iBAChE,aAA+B,CAAE,MAAS,CAAC,UAC3C,aAA+B,CAAE,MAAS,CAAC,WAC3C,cAA+B,CAAE,MAAS,CAAC,WAC3C,KAA+B,CAAE,WAAc,CAAC,WAAY,aAAc,cAC1E,SAA+B,CAAE,MAAS,CAAC,WAC3C,WAA+B,CAAE,MAAS,CAAC,WAC3C,UAA+B,CAAE,MAAS,CAAC,2BAC3C,MAA+B,CAAE,MAAS,CAAC,YAC3C,KAA+B,CAAE,WAAc,CAAC,aAAc,cAAe,WAAY,eACzF,WAA+B,CAAE,MAAS,CAAC,gBAC3C,YAA+B,CAAE,MAAS,CAAC,iBAC3C,SAA+B,CAAE,MAAS,CAAC,WAC3C,eAA+B,CAAE,MAAS,CAAC,WAC3C,oBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,GAEb,iBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,GAEb,aAA+B,CAAE,WAAc,CAAC,mBAAoB,wBACpE,KAA+B,CAAE,WAAc,CAAC,mBAAoB,wBACpE,WAA+B,CAAE,MAAS,CAAC,2BAC3C,cAA+B,CAAE,MAAS,CAAC,2BAC3C,QAA+B,CAAE,WAAc,CAAC,aAAc,kBAC9D,KAA+B,CAAE,MAAS,CAAC,cAC3C,SAA+B,CAAE,MAAS,CAAC,gBAC3C,KAA+B,CAAE,WAAc,CAAC,eAAgB,aAChE,aAA+B,CAC9B,MAAc,CAAC,0BACf,UAAc,EACd,YAAc,GAEf,SAA+B,CAC9B,MAAc,CAAC,0BACf,UAAc,EACd,YAAc,GAEf,aAA+B,CAAE,MAAS,CAAC,gBAC3C,YAA+B,CAAE,MAAS,CAAC,2BAC3C,oBAA+B,CAAE,MAAS,CAAC,WAC3C,cAA+B,CAAE,WAAc,CAAC,mBAAoB,qBAAsB,sBAAuB,sBACjH,iBAA+B,CAAE,MAAS,CAAC,2BAC3C,mBAA+B,CAAE,MAAS,CAAC,2BAC3C,oBAA+B,CAAE,MAAS,CAAC,2BAC3C,kBAA+B,CAAE,MAAS,CAAC,2BAC3C,mBAA+B,CAAE,WAAc,CAAC,0BAA2B,0BAC3E,wBAA+B,CAAE,MAAS,CAAC,2BAC3C,sBAA+B,CAAE,MAAS,CAAC,2BAC3C,oBAA+B,CAAE,WAAc,CAAC,2BAA4B,2BAC5E,yBAA+B,CAAE,MAAS,CAAC,2BAC3C,uBAA+B,CAAE,MAAS,CAAC,2BAC3C,iBAA+B,CAAE,WAAc,CAAC,sBAAuB,wBAAyB,yBAA0B,yBAC1H,oBAA+B,CAAE,MAAS,CAAC,WAC3C,sBAA+B,CAAE,MAAS,CAAC,WAC3C,uBAA+B,CAAE,MAAS,CAAC,WAC3C,qBAA+B,CAAE,MAAS,CAAC,WAC3C,sBAA+B,CAAE,WAAc,CAAC,6BAA8B,6BAC9E,2BAA+B,CAAE,MAAS,CAAC,WAC3C,yBAA+B,CAAE,MAAS,CAAC,WAC3C,uBAA+B,CAAE,WAAc,CAAC,8BAA+B,8BAC/E,4BAA+B,CAAE,MAAS,CAAC,WAC3C,0BAA+B,CAAE,MAAS,CAAC,WAC3C,eAA+B,CAAE,WAAc,CAAC,wBAChD,oBAA+B,CAAE,MAAS,CAAC,UAC3C,aAA+B,CAAE,WAAc,CAAC,sBAChD,kBAA+B,CAAE,MAAS,CAAC,UAC3C,WAA+B,CAAE,MAAS,CAAC,gBAC3C,QAA+B,CAAE,WAAc,CAAC,cAAe,gBAC/D,YAA+B,CAAE,MAAS,CAAC,WAC3C,YAA+B,CAAE,MAAS,CAAC,YAC3C,UAA+B,CAAE,MAAS,CAAC,2BAC3C,WAA+B,CAAE,WAAc,CAAC,kBAAmB,oBACnE,gBAA+B,CAAE,MAAS,CAAC,UAC3C,gBAA+B,CAAE,MAAS,CAAC,WAC3C,cAA+B,CAAE,MAAS,CAAC,WAC3C,QAA+B,CAAE,MAAS,CAAC,WAC3C,WAA+B,CAAE,MAAS,CAAC,2BAC3C,YAA+B,CAAE,MAAS,CAAC,2BAC3C,UAA+B,CAAE,MAAS,CAAC,cAC3C,gBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,GAEb,YAA+B,CAAE,MAAS,CAAC,WAC3C,kBAA+B,CAC9B,MAAY,CAAC,0BACb,UAAY,IAIDC,EAAW,CAAC,GAAI,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,OAAQ,QAC7IC,EAAW,IAAIC,OAC3B,sCACA,CAAC,OAAQ,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,OAAQ,QAAQC,KAAK,KAC7J,QAEUC,EAAW,WAAO,OAAMC,QAAVC,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAAgBE,QAAQ,GAAG,EAElD,SAASC,EAAyBC,EAAU9B,GAAqB,IAAdI,EAAMsB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC/DK,EAAaZ,EAAMW,GACnBE,EAAaD,GAAQA,EAAKE,WAC1BC,EAAalC,EAAMG,MAAM,KAe7B,OAbK4B,EAAKI,SACTH,GAAcA,EAAWI,SACxB,SAAEC,EAAGpC,GACJG,EAAOiC,GAAKH,EAAOjC,EAAIiC,EAAO7B,OAC/B,IAGD2B,GAAcA,EAAWI,SACxB,SAAEC,EAAGpC,GACCiC,EAAOjC,KACXG,EAAOiC,GAAKH,EAAOjC,GACrB,IAEKG,CACR,CAEO,SAASkC,EAAqBR,GACpC,IAAIC,EAAaZ,EAAMW,GACnBE,EAAaD,GAAQA,EAAKE,WAC9B,OAAOD,KAAgBA,EAAW3B,MACnC,CAIO,SAASkC,EAAoBT,EAAU9B,GAC7C,QAASmB,EAAMW,EAChB,y+BC3MA,IACCU,EAAkB,CACjBC,KAAY,KACZC,WAAY,IACZC,SAAY,IACZC,YAAY,EACZC,UAAY,IACZC,UAAY,MACZC,OAAY,IACZC,QAAY,IACZC,SAAY,IACZC,MAAY,KACVC,EAAe,CAAC,EAGb,SAASC,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACxE,IAA6BC,EAAzB5D,EAAOsD,EAAMlD,MAAM,KACvB,GAAqB,IAAhBJ,EAAKM,OAAe,CAUxB,KAPQmD,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,KAAQ2D,UACvCF,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,KAMjC2D,EACL,KAAQF,EAAQzD,EAAK,IAAIM,SAAWmD,EAAQzD,EAAK,IAAIyD,EAAQzD,EAAK,IAAIM,OAAS,IAC9EmD,EAAQzD,EAAK,IAAI6D,MAYnB,KAPQJ,EAFRG,EAAS5D,EAAK,GAAK,IAAMA,EAAK,GAAK,IAAMA,EAAK,IAEtBA,EAAK,KAAQ2D,WAC7BF,EAAQG,GAAQ5D,EAAK,WAErBuD,EAAaD,KAIfK,EACL,KAAQF,EAAQG,GAAQtD,SAAWmD,EAAQG,GAAQH,EAAQG,GAAQtD,OAAS,IAC3EmD,EAAQG,GAAQC,MAEc,IAA3BJ,EAAQG,GAAQtD,QAAiBqD,UAC9BF,EAAQG,GAEiB,IAA5BH,EAAQzD,EAAK,IAAIM,QAAiBqD,WAC/BF,EAAQzD,EAAK,WACb0D,EAAS1D,EAAK,WACdwD,EAAOxD,EAAK,IAErB,MAEC8D,QAAQC,IAAI,MAAO/D,EAErB,CAEO,SAASgE,EAAUC,EAAWC,EAAMC,EAAOC,EAASC,EAAMC,GAChE,IAAIrE,EAAQkE,EACRI,EAAQlD,EAAAA,GAAM4C,IAAcxB,EAAa2B,GAsB7C,MAhBc,OAATG,IACJtE,GAAgBqE,EAAIE,EACpBD,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAIG,EACpBF,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAII,EACpBH,EAAQ,MAGK,QAATA,IACJtE,GAAgB,KAEVsE,GAAO9C,EAAAA,EAAAA,IAASxB,GAASsE,GAAO9C,EAAAA,EAAAA,IAASxB,EACjD,CAEO,SAAS0E,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,GAKpD,IAHA,IAEYQ,EAAMC,EAAed,EAAWC,EAASc,EAAe/E,EAFhEgF,EAA6D,GAE7DC,EAAK,EAAoDT,EAAI,EACzDS,EAAKb,EAAKO,GAAKtE,OAAQ4E,IAE9B,IAAMH,KADND,EAAOT,EAAKO,GAAKM,GAEhB,GAAKJ,EAAKK,eAAeJ,GAAQ,CAIhC,IAHAb,EAAQU,EAAM,IAAMM,EAAK,IAAMH,EAC/B9E,EAAQ,GACRwE,EAAQ,EACFR,EAAY,EAAGA,EAAYI,EAAKH,GAAM5D,OAAQ2D,IAC9CI,EAAKH,GAAMD,KAMfe,EAAShB,EAASC,EAAWC,EAAMW,EALzBX,EAAO,IAAMD,GAKgCc,EAAMV,EAAMC,GAE9DG,GAAmB,MAAdO,EAAO,GAChBA,EAAS,MAAQA,EAAOI,OAAO,GACtBX,IACTO,EAAS,MAAQA,GAClB/E,GAAS+E,EACTP,KAGGA,EAAI,IACRxE,EAAQ,QAAUA,EAAQ,KAEtBwE,EAAI,IACRQ,GAAWF,EAAO,KAAO9E,GAAS,KAAO,KAC3C,CAEFI,EAAOgF,OAASJ,CAEjB,CAEO,SAASK,EAAQV,EAAKR,EAASnE,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYC,GAEhF,IAAIC,IAAUC,IAAAA,OAAU1F,IAASA,EAAMyF,MAAMpE,EAAAA,IACzCiD,EAAUmB,GAASA,EAAM,IAAMjD,EAAa2B,GAC5CwB,EAAUvE,EAAAA,GAAMwE,QAAQtB,GACxBuB,GAAuB,IAAbF,GAAmBhB,EAAM,IAAMgB,GAAYhB,EA0BzD,OAxBAW,EAASO,GAAY1C,EAAagB,IAAY,EAC9CC,EAAKO,GAAKgB,GAAWvB,EAAKO,GAAKgB,IAAY,EAGtCH,GAAaA,EAAUG,GAE1BvF,EAAOyF,IADHJ,EACeK,WAAWL,EAAM,IAGjBK,WAAW9F,KAK9BuF,GAAcnB,EAAKO,GAAKgB,KAExBvF,EAAOyF,GADHJ,EACcK,WAAWL,EAAM,IAGjBK,WAAW9F,GAEzBwF,IAAYA,EAAUG,IAAW,IAGhCjB,CACR,CACO,IAAMqB,EAAM,SAAEpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYS,GAEpE5B,EAAKO,GAAOP,EAAKO,IAAQ,GAGnBe,IAAAA,MAAS1F,KACdA,EAAQ,CAACA,IAEV,IADA,IAAY6E,EAAMoB,EAAQC,EAAUC,EAAQlC,EAAMmC,EAAGZ,EAAjDP,EAAK,EACDA,EAAKjF,EAAMK,OAAQ4E,IAAO,CAGjC,IAAMgB,KAFNpB,EAAW7E,EAAMiF,GACjBiB,EAAWF,EAAU,CAAC,EAACK,EAAA,GAASjC,EAAKO,GAAKM,IAAO,CAAC,GAClCJ,EACf,GAAKA,EAAKK,eAAee,GAWxB,GAVAE,EAAYtB,EAAKoB,GACjBT,EAAY,CAAC,EACbvB,EAAYU,EAAM,IAAMM,EAAK,IAAMgB,EAEnCC,EAASD,GAAUC,EAASD,IAAW7B,EAAKO,GAAKM,IAAOb,EAAKO,GAAKM,GAAIgB,IAAW,GAChFV,GAAcW,EAASD,KAIxB7B,EAAKH,GAAQG,EAAKH,IAAS,GACtByB,IAAAA,MAASS,GACb,IAAMC,EAAI,EAAGA,EAAID,EAAO9F,OAAQ+F,IAC/Bf,EAAOpB,EAAMgC,EAAQE,EAAOC,IAAM,EAAGhG,EAAQgE,EAAMkB,EAAUC,EAAYC,QAI1EH,EAAOpB,EAAMgC,EAAQE,GAAU,EAAG/F,EAAQgE,EAAMkB,EAAUC,GAG7DnB,EAAKO,GAAKM,GACTe,EAAOK,EAAAA,EAAAA,EAAA,GACAH,GAAc9B,EAAKO,GAAKM,IAAO,CAAC,GAAOiB,GAE9CA,CAEF,CACA,OAAOxB,CACR,03BCvMA,IAAMlC,EAAkB,CAGjB8D,WAAY,KACZC,WAAY,KACZC,WAAY,KACZC,MAAY,GACZC,OAAY,GACZC,OAAY,GACZC,OAAY,GACZC,OAAY,MAEZC,MAAO,MACPC,MAAO,MAKPC,QAAa,MACbC,QAAa,MACbC,QAAa,MACbC,YAAa,MAEdC,EAAkB,CACjBd,WAAY,IACZC,WAAY,IACZC,WAAY,IACZQ,QAAY,IACZC,QAAY,IACZC,QAAY,IACZG,KAAY,IACZC,MAAY,IACZC,IAAY,IACZC,OAAY,IACZC,MAAY,IACZC,OAAY,KACVvE,EAAe,CAIjBsD,MAAQ,EACRE,OAAQ,EACRC,OAAQ,EACRF,OAAQ,GAGR,SAAStD,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACxE,IAA6BC,EAAzB5D,EAAOsD,EAAMlD,MAAM,KACvB,GAAqB,IAAhBJ,EAAKM,OAAe,CAUxB,KAPQmD,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,KAAQ2D,UACvCF,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,KAMjC2D,EACL,KAAQF,EAAQzD,EAAK,IAAIM,SAAWmD,EAAQzD,EAAK,IAAIyD,EAAQzD,EAAK,IAAIM,OAAS,IAC9EmD,EAAQzD,EAAK,IAAI6D,MAYnB,KAPQJ,EAFRG,EAAS5D,EAAK,GAAK,IAAMA,EAAK,GAAK,IAAMA,EAAK,IAEtBA,EAAK,KAAQ2D,WAC7BF,EAAQG,GAAQ5D,EAAK,WAErBuD,EAAaD,KAIfK,EACL,KAAQF,EAAQG,GAAQtD,SAAWmD,EAAQG,GAAQH,EAAQG,GAAQtD,OAAS,IAC3EmD,EAAQG,GAAQC,MAEc,IAA3BJ,EAAQG,GAAQtD,QAAiBqD,UAC9BF,EAAQG,GAEiB,IAA5BH,EAAQzD,EAAK,IAAIM,QAAiBqD,WAC/BF,EAAQzD,EAAK,WACb0D,EAAS1D,EAAK,WACdwD,EAAOxD,EAAK,IAErB,MAEC8D,QAAQC,IAAI,MAAO/D,EAErB,CAEO,SAASgE,EAAUC,EAAWC,EAAMC,EAAOC,EAASC,EAAMC,GAChE,IAAIrE,EAAQkE,EACRI,EAAQlD,EAAAA,GAAM4C,IAAcxB,EAAa2B,GAsB7C,MApBc,QAATG,IACJtE,GAAiBqE,EAAI+C,EAAWjD,KAAaE,EAAIE,EACjDD,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAIE,EACpBD,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAIG,EACpBF,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAII,EACpBH,EAAQ,MAGK,QAATA,IACJtE,GAAgB,KAEVsE,GAAO9C,EAAAA,EAAAA,IAASxB,GAASsE,GAAO9C,EAAAA,EAAAA,IAASxB,EACjD,CAEO,SAAS0E,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,GAKpD,IAHA,IAEYQ,EAAMC,EAAed,EAAWC,EAASc,EAAe/E,EAFhE2H,EAA6D,GAE7D1C,EAAK,EAAoDT,EAAI,EACzDS,EAAKb,EAAKO,GAAKtE,OAAQ4E,IAE9B,IAAMH,KADND,EAAOT,EAAKO,GAAKM,GAEhB,GAAKJ,EAAKK,eAAeJ,GAAQ,CAIhC,IAHAb,EAAQU,EAAM,IAAMM,EAAK,IAAMH,EAC/B9E,EAAQ,GACRwE,EAAQ,EACFR,EAAY,EAAGA,EAAYI,EAAKH,GAAM5D,OAAQ2D,IAC9CI,EAAKH,GAAMD,KAMfe,EAAShB,EAASC,EAAWC,EAAMW,EALzBX,EAAO,IAAMD,GAKgCc,EAAMV,EAAMC,GAE9DG,GAAmB,MAAdO,EAAO,GAChBA,EAAS,MAAQA,EAAOI,OAAO,GACtBX,IACTO,EAAS,MAAQA,GAClB/E,GAAS+E,EACTP,KAGGA,EAAI,IACRxE,EAAQ,QAAUA,EAAQ,KAEtBwE,EAAI,IACRmD,GAAc7C,EAAO,KAAO9E,GAAS,KAAO,KAC9C,CAEFI,EAAOwH,UAAYD,CAEpB,CAEO,SAAStC,EAAQV,EAAKR,EAASnE,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYC,GAEhF,IAAIC,IAAUC,IAAAA,OAAU1F,IAASA,EAAMyF,MAAMpE,EAAAA,IACzCiD,EAAUmB,GAASA,EAAM,IAAMjD,EAAa2B,GAC5CwB,EAAUvE,EAAAA,GAAMwE,QAAQtB,GACxBuB,GAAuB,IAAbF,GAAmBhB,EAAM,IAAMgB,GAAYhB,EA0BzD,OAxBAW,EAASO,GAAY1C,EAAagB,IAAY,EAC9CC,EAAKO,GAAKgB,GAAWvB,EAAKO,GAAKgB,IAAY,EAGtCH,GAAaA,EAAUG,GAE1BvF,EAAOyF,IADHJ,EACeK,WAAWL,EAAM,IAGjBK,WAAW9F,KAK9BuF,GAAcnB,EAAKO,GAAKgB,KAExBvF,EAAOyF,GADHJ,EACcK,WAAWL,EAAM,IAGjBK,WAAW9F,GAEzBwF,IAAYA,EAAUG,IAAW,IAGhCjB,CACR,CACO,IAAMqB,EAAM,SAAEpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYS,GAKpE,GAHA5B,EAAKO,GAAOP,EAAKO,IAAQ,IAGnBe,IAAAA,MAAS1F,KAAW0F,IAAAA,OAAU1F,GAEnC,OADA6D,QAAQgE,KAAK,yCAA0ClD,EAAK,IAAK3E,EAAO,OAAQI,GACzEsE,EAEFgB,IAAAA,MAAS1F,KACdA,EAAQ,CAACA,IAEV,IADA,IAAY6E,EAAMoB,EAAQC,EAAUC,EAAQlC,EAAMmC,EAAGZ,EAAjDP,EAAK,EACDA,EAAKjF,EAAMK,OAAQ4E,IAAO,CAGjC,IAAMgB,KAFNpB,EAAW7E,EAAMiF,GACjBiB,EAAWF,EAAU,CAAC,EAACK,EAAA,GAASjC,EAAKO,GAAKM,IAAO,CAAC,GAClCJ,EACf,GAAKA,EAAKK,eAAee,GAWxB,GAVAE,EAAYtB,EAAKoB,GACjBT,EAAY,CAAC,EACbvB,EAAYU,EAAM,IAAMM,EAAK,IAAMgB,EAEnCC,EAASD,GAAUC,EAASD,IAAW7B,EAAKO,GAAKM,IAAOb,EAAKO,GAAKM,GAAIgB,IAAW,GAChFV,GAAcW,EAASD,KAIxB7B,EAAKH,GAAQG,EAAKH,IAAS,GACtByB,IAAAA,MAASS,GACb,IAAMC,EAAI,EAAGA,EAAID,EAAO9F,OAAQ+F,IAC/Bf,EAAOpB,EAAMgC,EAAQE,EAAOC,IAAM,EAAGhG,EAAQgE,EAAMkB,EAAUC,EAAYC,QAI1EH,EAAOpB,EAAMgC,EAAQE,GAAU,EAAG/F,EAAQgE,EAAMkB,EAAUC,GAG7DnB,EAAKO,GAAKM,GACTe,EAAOK,EAAAA,EAAAA,EAAA,GACAH,GAAc9B,EAAKO,GAAKM,IAAO,CAAC,GAAOiB,GAE9CA,CAEF,CACA,OAAOxB,CACR,yJC1OMlC,EAAkB,CACjB6E,KAAa,KACbC,MAAa,KACbC,IAAa,KACbC,OAAa,KACbC,MAAa,KACbC,OAAa,KACbP,YAAa,MAEdC,EAAkB,CACjBC,KAAQ,IACRC,MAAQ,IACRC,IAAQ,IACRC,OAAQ,IACRC,MAAQ,IACRC,OAAQ,KACNvE,EAAe,CACjBH,QAAS,GAGT,SAASI,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACxE,IAAI3D,EAAOsD,EAAMlD,MAAM,KAEvB,GAAqB,IAAhBJ,EAAKM,OAAe,CAOxB,KALQmD,EAAQzD,EAAK,IAAIA,EAAK,KAAQ2D,UAC9BJ,EAAaD,IAIfK,EACL,KAAQF,EAAQzD,EAAK,IAAIM,SAAWmD,EAAQzD,EAAK,IAAIyD,EAAQzD,EAAK,IAAIM,OAAS,IAC9EmD,EAAQzD,EAAK,IAAI6D,MAEc,IAA5BJ,EAAQzD,EAAK,IAAIM,QAAiBqD,WAC/BF,EAAQzD,EAAK,WACb0D,EAAS1D,EAAK,IAChBwD,UAAgBA,EAAOxD,EAAK,IAGnC,OAGSyD,EAAQH,GAAOyE,OAAUpE,WACzBJ,EAAaD,UACbG,EAAQH,UACRI,EAASJ,UACTE,EAAOF,GAIjB,CAEO,SAASU,EAAU4B,EAASzB,EAAOC,EAASC,EAAMC,GACxD,IAAIrE,EAAQkE,EACRI,EAAQlD,EAAAA,GAAMuE,IAAYnD,EAAa2B,IAAY,KAmBvD,MAjBc,QAATG,IACJtE,GAAiBqE,EAAI+C,EAAWjD,KAAaE,EAAIE,EACjDD,EAAQ,MAGK,OAATA,IACJtE,GAAgBqE,EAAIE,EACpBD,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAIG,EACpBF,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAII,EACpBH,EAAQ,MAEFA,GAAO9C,EAAAA,EAAAA,IAASxB,GAASsE,GAAO9C,EAAAA,EAAAA,IAASxB,EACjD,CAEO,SAAS0E,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,EAAKF,GACzD,IAAInE,EAAcwE,EAAGuD,EAAV9H,EAAI,EAOf,GALAD,EAAQ,GAKHoE,EAAKO,GAAKqD,SACd,OAAO5H,EAAOuE,GAAOP,EAAKO,GAAK3E,MAAMiI,KAAKC,MAAMtD,EAAUD,KAG3D,IAAMH,EAAI,EAAGA,EAAIJ,EAAKO,GAAKtE,OAAQmE,IAC7BJ,EAAKO,GAAKH,KAETI,EADLmD,EAAOpD,EAAM,IAAMH,GACI,EACtBxE,IAAUC,EACE,MACA,KAAO8D,EAASS,GAAII,EAAUmD,GAAO5D,GAAWQ,EAAKP,EAAMC,GAEvErE,IAAUC,EACE,MACA,IAAM8D,EAASS,EAAGI,EAAUmD,GAAO5D,GAAWQ,EAAKP,EAAMC,GACtEpE,KAMF,OAJKA,EAAI,IACRD,EAAQ,QAAUA,EAAQ,KAGpBI,EAASA,EAAOuE,GAAO3E,EAAQA,CACvC,CAEO,SAASmI,EAAOxD,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,GAE1DnB,EAAKO,GAAWP,EAAKO,IAAQ,GAC7B,IAAIa,EAAY,GAChB,GAAKE,IAAAA,MAAS1F,GACb,IAAM,IAAIC,EAAI,EAAGA,EAAID,EAAMK,OAAQJ,IAClCoF,EAAOV,EAAK3E,EAAMC,IAAM,EAAGG,EAAQgE,EAAMkB,EAAUC,EAAYC,QAIhEH,EAAOV,EAAK3E,GAAS,EAAGI,EAAQgE,EAAMkB,EAAUC,GAGjD,OAAOb,CACR,CAEO,SAASW,EAAQV,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYC,GAEvE,IAAIC,IAAUC,IAAAA,OAAU1F,IAASA,EAAMyF,MAAMpE,EAAAA,IACzCiD,EAAUmB,GAASA,EAAM,IAAMjD,EAAamC,IAAQ,KACpDgB,EAAUvE,EAAAA,GAAMwE,QAAQtB,GACxBuB,GAAuB,IAAbF,GAAmBhB,EAAM,IAAMgB,GAAYhB,EAGzD,OAAMc,GAASC,IAAAA,OAAU1F,IACxBsF,EAASX,GAAYxB,EAAawB,IAAQ,EAC1CP,EAAKO,GAAKmD,MAAQ1D,EAAKO,GAAKmD,OAAO,EACnC1D,EAAKO,GAAKmD,QACV1D,EAAKO,GAAKqD,UAAW,EACrB5D,EAAKO,GAAK3E,MAAWoE,EAAKO,GAAK3E,OAAS,IACvCoE,EAAKO,GAAK3E,MAAMoI,SAASpI,IAAUoE,EAAKO,GAAK3E,MAAMqI,KAAKrI,GACzDI,EAAOuE,GAAOP,EAAKO,GAAK3E,MAAM4F,QAAQ5F,GAC/B0E,IAERY,EAASO,GAAY1C,EAAawB,IAAQ,EAC1CP,EAAKO,GAAKgB,GAAWvB,EAAKO,GAAKgB,IAAY,EAEtCH,GAAaA,EAAUG,GAG1BvF,EAAOyF,IADHJ,EACeK,WAAWL,EAAM,IAGjBK,WAAW9F,KAK9BuF,GAAcnB,EAAKO,GAAKgB,KAExBvF,EAAOyF,GADHJ,EACcK,WAAWL,EAAM,IAGjBK,WAAW9F,GAEzBwF,IAAYA,EAAUG,IAAW,IAGhCjB,EACR,CAEO,IAAMqB,EAAMoC,kFC7KnB,IAAM3F,EAAe,CAAEQ,QAAS,GAEzB,SAASI,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,KAEhEF,EAAQH,IAAWK,WACnBJ,EAAaD,UACbG,EAAQH,UACRI,EAASJ,UACTE,EAAOF,GAEhB,CAEO,SAASqB,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,GACpD,IAAIrE,IAAW4E,EAAUD,GACzB,OAAOvE,EAASA,EAAOuE,GAAO3E,EAAQA,CACvC,CAGO,IAAM+F,EAAM,SAAEpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,GAOxD,OALAD,EAASX,GAAOnC,EAAamC,IAAQ,EACrCvE,EAAOuE,IAAmB,IAAV3E,EAAkB,EAAI,EACtCoE,EAAKO,GAAWP,EAAKO,IAAQ,GAC5BY,GAAcnB,EAAKO,KAEbD,CACR,kFCrCA,MAAM,EAA+B9D,QAAQ,6CCctC,SAASwC,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACxE,IAAI3D,EAASsD,EAAMlD,MAAM,KACrBwD,EAAS5D,EAAKuI,MAAM,EAAGvI,EAAKM,OAAS,GAAGkB,KAAK,OAGzCiC,EAAQH,IAAWK,WACnBJ,EAAaD,UACbG,EAAQH,KAKXM,KAAaH,EAAQG,IAAYD,WAC9BJ,EAAaD,UACbG,EAAQH,GAMjB,CAEO,SAASqB,EAAOC,EAAKC,EAAWxE,EAAQgE,GAC9C,IAAIpE,EAAQ,QACXiI,KAAKM,IAAI,IAAK3D,EAAUD,EAAM,OAAS,KACvCsD,KAAKM,IAAI,IAAK3D,EAAUD,EAAM,OAAS,KACvCsD,KAAKM,IAAI,IAAK3D,EAAUD,EAAM,OAAS,KACvCsD,KAAKM,IAAI,EAAG3D,EAAUD,EAAM,OAAS,IAEtC,OAAOvE,EACAA,EAAOuE,GAAO3E,EAAQA,CAC9B,CAEO,SAAS+F,EAAKpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,GACxD,IAAIiD,EAAe9C,IAAAA,OAAU1F,GACRyI,IAAKzI,GACLA,GAAS,CAACA,EAAM0I,GAAK,EAAG1I,EAAM2I,GAAK,EAAG3I,EAAM4I,GAAK,EAAG5I,EAAM6I,GAAK,GA2BpF,OAzBAzE,EAAKO,GAAcP,EAAKO,IAAQ,EAChCP,EAAKO,EAAM,MAAQP,EAAKO,EAAM,OAAS,EACvCP,EAAKO,EAAM,MAAQP,EAAKO,EAAM,OAAS,EACvCP,EAAKO,EAAM,MAAQP,EAAKO,EAAM,OAAS,EACvCP,EAAKO,EAAM,MAAQP,EAAKO,EAAM,OAAS,EACjCY,IACLnB,EAAKO,IAAQ,EACbP,EAAKO,EAAM,QACXP,EAAKO,EAAM,QACXP,EAAKO,EAAM,QACXP,EAAKO,EAAM,SAGZvE,EAAOuE,EAAM,MAAQ6D,EAAK,GAC1BpI,EAAOuE,EAAM,MAAQ6D,EAAK,GAC1BpI,EAAOuE,EAAM,MAAQ6D,EAAK,GAC1BpI,EAAOuE,EAAM,MAAQ6D,EAAK,GAE1BlD,EAASX,GAAO,EAEhBW,EAASX,EAAM,MAAQ,EACvBW,EAASX,EAAM,MAAQ,EACvBW,EAASX,EAAM,MAAQ,EACvBW,EAASX,EAAM,MAAQ,EAEhBD,CACR,yJChEMlC,EAAkB,CACjB6E,KAAa,KACbC,MAAa,KACbC,IAAa,KACbC,OAAa,KACbC,MAAa,KACbC,OAAa,KACbP,YAAa,MAEdC,EAAkB,CACjBC,KAAQ,IACRC,MAAQ,IACRC,IAAQ,IACRC,OAAQ,IACRC,MAAQ,IACRC,OAAQ,KACNvE,EAAe,CACjBH,QAAS,GAGT,SAASI,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACxE,IAAI3D,EAAOsD,EAAMlD,MAAM,KAEvB,GAAqB,IAAhBJ,EAAKM,OAAe,CAOxB,KALQmD,EAAQzD,EAAK,IAAIA,EAAK,KAAQ2D,UAC9BJ,EAAaD,IAIfK,EACL,KAAQF,EAAQzD,EAAK,IAAIM,SAAWmD,EAAQzD,EAAK,IAAIyD,EAAQzD,EAAK,IAAIM,OAAS,IAC9EmD,EAAQzD,EAAK,IAAI6D,MAEc,IAA5BJ,EAAQzD,EAAK,IAAIM,QAAiBqD,WAC/BF,EAAQzD,EAAK,WACb0D,EAAS1D,EAAK,IAChBwD,UAAgBA,EAAOxD,EAAK,IAGnC,MAEC8D,QAAQC,IAAI,MAAO/D,EAErB,CAEO,SAASgE,EAAU4B,EAASzB,EAAOC,EAASC,EAAMC,GACxD,IAAIrE,EAAQkE,EACRI,EAAQlD,EAAAA,GAAMuE,IAAYnD,EAAa2B,IAAY,KAmBvD,MAjBc,QAATG,IACJtE,GAAiBqE,EAAI+C,EAAWjD,KAAaE,EAAIE,EACjDD,EAAQ,MAGK,OAATA,IACJtE,GAAgBqE,EAAIE,EACpBD,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAIG,EACpBF,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAII,EACpBH,EAAQ,MAEFA,GAAO9C,EAAAA,EAAAA,IAASxB,GAASsE,GAAO9C,EAAAA,EAAAA,IAASxB,EACjD,CAEO,SAAS0E,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,EAAKF,GACzD,IAAInE,EAAcwE,EAAGuD,EAAV9H,EAAI,EAOf,IALAD,EAAQ,GAKFwE,EAAI,EAAGA,EAAIJ,EAAKO,GAAKtE,OAAQmE,IAC7BJ,EAAKO,GAAKH,KAETI,EADLmD,EAAOpD,EAAM,IAAMH,GACI,EACtBxE,IAAUC,EAAI,MAAQ,KAAO8D,EAASS,GAAII,EAAUmD,GAAO5D,GAAWQ,EAAKP,EAAMC,GAEjFrE,IAAUC,EAAI,MAAQ,IAAM8D,EAASS,EAAGI,EAAUmD,GAAO5D,GAAWQ,EAAKP,EAAMC,GAChFpE,KAMF,OAJKA,EAAI,IACRD,EAAQ,QAAUA,EAAQ,KAGpBI,EAASA,EAAOuE,GAAO3E,EAAQA,CACvC,CAEO,SAASmI,EAAOxD,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,GAE1DnB,EAAKO,GAAWP,EAAKO,IAAQ,GAC7B,IAAIa,EAAY,GAChB,GAAKE,IAAAA,MAAS1F,GACb,IAAM,IAAIC,EAAI,EAAGA,EAAID,EAAMK,OAAQJ,IAClCoF,EAAOV,EAAK3E,EAAMC,IAAM,EAAGG,EAAQgE,EAAMkB,EAAUC,EAAYC,QAIhEH,EAAOV,EAAK3E,GAAS,EAAGI,EAAQgE,EAAMkB,EAAUC,GAGjD,OAAOb,CACR,CAEO,SAASW,EAAQV,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYC,GAEvE,IAAIC,IAAUC,IAAAA,OAAU1F,IAASA,EAAMyF,MAAMpE,EAAAA,IACzCiD,EAAUmB,GAASA,EAAM,IAAMjD,EAAamC,IAAQ,KACpDgB,EAAUvE,EAAAA,GAAMwE,QAAQtB,GACxBuB,GAAuB,IAAbF,GAAmBhB,EAAM,IAAMgB,GAAYhB,EA2BzD,OAzBAW,EAASO,GAAY1C,EAAawB,IAAQ,EAC1CP,EAAKO,GAAKgB,GAAWvB,EAAKO,GAAKgB,IAAY,EAGtCH,GAAaA,EAAUG,GAG1BvF,EAAOyF,IADHJ,EACeK,WAAWL,EAAM,IAGjBK,WAAW9F,KAK9BuF,GAAcnB,EAAKO,GAAKgB,KAExBvF,EAAOyF,GADHJ,EACcK,WAAWL,EAAM,IAGjBK,WAAW9F,GAEzBwF,IAAYA,EAAUG,IAAW,IAGhCjB,CACR,CAEO,IAAMqB,EAAMoC,0FChJfW,EAAQ,CACJvB,IAAQ,KACRC,OAAQ,OACRuB,OAAQ,MACR1B,KAAQ,KACRC,MAAQ,QAGhB,SAAS5C,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,EAAK2E,GAI/C,IAFA,IAAIlB,EAAQ1D,EAAM,IAAMO,GAAOsE,EAAI,GAAIC,EAAU,CAAC,EAExCjJ,EAAI,EAAGA,EAAI6H,EAAO7H,IACxBI,EAAAA,MAAasE,EAAM,IAAM1E,EAAG2E,EAAWsE,EAAS9E,EAAMC,EAAK2E,GAC3DC,GAAKC,EAASvE,EAAM,IAAM1E,GAAM,IAGpCG,EAAQuE,GAAQsE,CACpB,CAGA,SAAS7F,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACnDL,EAAMlD,MAAM,IAe3B,CAEA,iBAAiB2H,GAAK,MAAQ,CAC1B/B,IAAK,SAAEpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,GACvC,IAA+B0D,EAA3B/G,EAASlC,EAAMG,MAAM,KAEzBiE,EAAMO,GAAQP,EAAMO,IAAS,EAC7BY,GAAcnB,EAAMO,KACpBP,EAAM,IAAMO,GAAQmD,EAEpB,IAAM,IAAI7H,EAAI,EAAGA,EAAI6H,EAAO7H,IACxBgJ,EAAI/G,EAAQjC,EAAIiC,EAAO7B,QACvB4I,EAAIvD,IAAAA,OAAUuD,IAAMH,EAAOG,IAAOA,EAClC5I,EAAAA,IAAWsE,EAAM,IAAM1E,EAAGgJ,EAAG7I,EAAQgE,EAAMkB,EAAUC,GAGzD,OAAOb,CACX,EAAGA,MAAAA,EAAOtB,QAAAA,EACX,6BCzDI,SAASA,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,KAEhEF,EAAQH,IAAWK,WACnBJ,EAAaD,UACbG,EAAQH,UACRI,EAASJ,UACTE,EAAOF,GAEhB,CAEO,SAASqB,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,GACpDjE,EAAOuE,KAAUC,EAAUD,EAE5B,qDAGO,IAAMoB,EAAM,SAAEpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,GAQxD,OALAD,EAASX,GAAO,EAChBvE,EAAOuE,KAAW3E,EAClBoE,EAAKO,GAAWP,EAAKO,IAAQ,GAC5BY,GAAcnB,EAAKO,KAEbD,CACR,+FC3BMlC,EAAe,CAAEQ,QAAS,GAGzB,SAASI,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,KAEhEF,EAAQH,IAAWK,WACnBJ,EAAaD,UACbG,EAAQH,UACRI,EAASJ,UACTE,EAAOF,GAEhB,CAEO,SAASqB,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,GACpDjE,EAAOuE,GAAOsD,KAAKM,IAAI,EAAGN,KAAKkB,IAAI,GAAG3H,EAAAA,EAAAA,IAASoD,EAAUD,KAC1D,CAGO,IAAMoB,EAAM,SAAEpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,GAQxD,OALAD,EAASX,GAAOnC,EAAamC,IAAQ,EACrCvE,EAAOuE,GAAS3E,EAChBoE,EAAKO,GAAWP,EAAKO,IAAQ,GAC5BY,GAAcnB,EAAKO,KAEbD,CACR,2vBCtBA,IACO0E,EACAC,EACAC,EAEAC,EAsBAC,EAuBAC,EACAC,EAKAC,EAxDDC,GACCR,EAAa,gBACbC,EAAa,gBACbC,EAAa,sBAEbC,EAAa,SAAAM,GAClB,IAAMC,EAAQD,EAAI1J,MAAMkJ,GAClBU,EAAQD,EAAM1B,SAAS,SACvB4B,EAAQF,EAAMxB,OAAO,GAAG,GACxBvH,EAAS0I,EAASO,QAAerI,EAAPqI,EAE1BC,EAA+CH,EACnD1E,QAAO,SAAA8E,GAAC,MAAU,UAANA,CAAa,IACzB9E,QAAO,SAAA8E,GAAC,OAAIA,IAAMnJ,CAAK,IACvBoJ,IAAIT,GACNU,EAAAC,IAAqDJ,EAAI,GAEzD,MAAO,CACNF,MAAAA,EACAO,QAJaF,EAAA,GAKbG,QALsBH,EAAA,GAMtBI,WANkCJ,EAAA,GAOlCK,aAPgDL,EAAA,GAQhDrJ,MAAAA,EAEF,EAEMyI,EAAiB,SAAAkB,GACtB,IAAAC,EAOUD,GAAO,CAAC,EANXX,EAAKY,EAALZ,MAAKa,EAAAD,EACLL,QAAAA,OAAO,IAAAM,EAAM,EAACA,EAAAC,EAAAF,EACdJ,QAAAA,OAAO,IAAAM,EAAM,EAACA,EAAAC,EAAAH,EACdH,WAKP,MAAO,CACLT,EAAQ,QAAU,KACnBO,EACAC,OARgB,IAAAO,EAAG,EAACA,EACFH,EAAZF,aACKE,EAAL5J,OAULqE,QAAO,SAAA6D,GAAC,OAAIA,OAA6B,IACzCkB,IAAIR,GACJQ,KAAI,SAAAY,GAAC,OAAK,GAAKA,GAAGC,MAAM,IACxBzJ,KAAK,IACR,EAEMkI,EAAW,SAAAR,GAAC,MAAU,MAANA,GAAaK,EAAW2B,KAAKhC,EAAE,EAC/CS,EAAW,SAAAT,GAChB,IAAM,MAAMgC,KAAKhC,IAAY,MAANA,EAAY,OAAOA,EAC1C,IAAMiB,EAAIpE,WAAWmD,GACrB,OAAQiC,MAAMhB,GAASjB,EAAJiB,CACpB,EACMP,EAAW,SAAAO,GAAC,MAAiB,iBAANA,GAAwB,IAANA,EAAWA,EAAI,KAAQA,CAAC,EAKhE,CACNiB,MAJiB,SAAAtB,GAAG,OAAIA,EAAI1J,MAAMiJ,GAAYe,KAAI,SAAAY,GAAC,OAAIA,EAAEC,MAAM,IAAEb,IAAIZ,EAAW,EAKhF6B,UAJiB,SAAAC,GAAG,OAAIA,EAAIlB,IAAIX,GAAgBjI,KAAK,KAAK,IAStDiB,EAAgB,CACf2E,YAAa,MAEdC,EAAgB,CACfd,WAAY,KAEbgF,EAAgB,CAEfvB,MAAOjJ,EAAAA,GAIPC,MAAOA,EAAAA,IAGP,SAASqC,EAASC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACxE,IAA6BC,EAAzB5D,EAAOsD,EAAMlD,MAAM,KACvB,GAAKJ,EAAKM,OAAS,EAAI,CAItB,GADAsD,EAAS5D,EAAK,GAAK,IAAMA,EAAK,GAAK,IAAMA,EAAK,GACzCuL,EAAcvL,EAAK,IAevB,OAdAuL,EAAcvL,EAAK,IAAIqD,QAAQC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GACzEF,EAAQG,MAELH,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,KAAQ2D,UACvCF,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,SAIP,IAA5ByD,EAAQzD,EAAK,IAAIM,QAAiBqD,WAC/BF,EAAQzD,EAAK,WACb0D,EAAS1D,EAAK,WACdwD,EAAOxD,EAAK,MAcrB,KAPQyD,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,KAAQ2D,UACvCF,EAAQzD,EAAK,IAAIA,EAAK,IAAIA,EAAK,KAMjC2D,EACL,KAAQF,EAAQzD,EAAK,IAAIM,SAAWmD,EAAQzD,EAAK,IAAIyD,EAAQzD,EAAK,IAAIM,OAAS,IAC9EmD,EAAQzD,EAAK,IAAI6D,MAYnB,KAPQJ,EAAQG,GAAQ5D,EAAK,KAAQ2D,WAC7BF,EAAQG,GAAQ5D,EAAK,WAErBuD,EAAaD,KAIfK,EACL,KAAQF,EAAQG,GAAQtD,SAAWmD,EAAQG,GAAQH,EAAQG,GAAQtD,OAAS,IAC3EmD,EAAQG,GAAQC,MAKlB,GAHgC,IAA3BJ,EAAQG,GAAQtD,QAAiBqD,UAC9BF,EAAQG,IAEVD,EACL,KAAQF,EAAQzD,EAAK,IAAIM,SAAWC,OAAOC,KAAKiD,EAAQzD,EAAK,IAAIyD,EAAQzD,EAAK,IAAIM,OAAS,IAAIA,QAC9FmD,EAAQzD,EAAK,IAAI6D,MAEc,IAA5BJ,EAAQzD,EAAK,IAAIM,QAAiBqD,WAC/BF,EAAQzD,EAAK,WACb0D,EAAS1D,EAAK,WACdwD,EAAOxD,EAAK,IAGrB,MAEC8D,QAAQC,IAAI,MAAO/D,EAErB,CAEO,SAASgE,EAAUC,EAAWC,EAAMC,EAAOC,EAASC,EAAMC,GAChE,IAAIrE,EAAQkE,EACRI,EAAQlD,EAAAA,GAAM4C,IAAcxB,EAAa2B,GAsB7C,MApBc,QAATG,IACJtE,GAAiBqE,EAAI+C,EAAWjD,KAAaE,EAAIE,EACjDD,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAIE,EACpBD,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAIG,EACpBF,EAAQ,MAEK,OAATA,IACJtE,GAAgBqE,EAAII,EACpBH,EAAQ,MAGK,QAATA,IACJtE,GAAgB,KAEVsE,GAAO9C,EAAAA,EAAAA,IAASxB,GAASsE,GAAO9C,EAAAA,EAAAA,IAASxB,EACjD,CAEO,SAAS0E,EAAOC,EAAKC,EAAWxE,EAAQgE,EAAMC,GAKpD,IAHA,IAEYkH,EAAWzG,EAAed,EAAWC,EAASc,EAAe/E,EAFrEwL,EAAkE,GAClEC,EAAkE,CAAC,EACnExG,EAAK,EAAyDT,EAAI,EAC9DS,EAAKb,EAAKO,GAAKtE,OAAQ4E,IAAO,CAGrC,IAAMH,KADN2G,EAAY,CAAC,EADbF,EAAYnH,EAAKO,GAAKM,GAGrB,GAAKsG,EAAUrG,eAAeJ,GAAQ,CAIrC,GAHAb,EAAOU,EAAM,IAAMM,EAAK,IAAMH,EAGzBwG,EAAcxG,GAClB9E,EAAQsL,EAAcxG,GAAMJ,MAAMT,EAAMW,OAAWjD,EAAWyC,EAAMC,OAIhE,CAGJ,IAFArE,EAAQ,GACRwE,EAAQ,EACFR,EAAY,EAAGA,EAAYI,EAAKH,GAAM5D,OAAQ2D,IAC9CI,EAAKH,GAAMD,KAEfe,EAAUhB,EAASC,EAAWC,EAAMW,EAD1BX,EAAO,IAAMD,GACiCc,EAAMV,EAAMC,GAC/DG,GAAmB,MAAdO,EAAO,GAChBA,EAAS,MAAQA,EAAOI,OAAO,GACtBX,IACTO,EAAS,MAAQA,GAClB/E,GAAS+E,EACTP,KAGGA,EAAI,IACRxE,EAAQ,QAAUA,EAAQ,IAE5B,CACAyL,EAAS3G,GAAS9E,GAAS,CAC5B,CACDwL,EAAQnD,KAAKoD,EACd,CAEArL,EAAOuE,GAAOiF,EAAgBwB,UAAUI,EAGzC,CAEO,SAASnG,EAAQV,EAAKR,EAASnE,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYC,GAEhF,IAAIC,IAAUC,IAAAA,OAAU1F,IAASA,EAAMyF,MAAMpE,EAAAA,IACzCiD,EAAUmB,GAASA,EAAM,IAAMjD,EAAa2B,IAAY,KACxDwB,EAAUvE,EAAAA,GAAMwE,QAAQtB,GACxBuB,GAAuB,IAAbF,GAAmBhB,EAAM,IAAMgB,GAAYhB,EA2BzD,OAzBAW,EAASO,GAAY,EACrBzB,EAAKO,GAAKgB,GAAWvB,EAAKO,GAAKgB,IAAY,EAGtCH,GAAaA,EAAUG,GAG1BvF,EAAOyF,IADHJ,EACeK,WAAWL,EAAM,IAGjBK,WAAW9F,KAK9BuF,GAAcnB,EAAKO,GAAKgB,KAExBvF,EAAOyF,GADHJ,EACcK,WAAWL,EAAM,IAGjBK,WAAW9F,GAEzBwF,IAAYA,EAAUG,IAAW,IAGhCjB,CACR,CACO,IAAMqB,EAAM,SAAEpB,EAAK3E,EAAOI,EAAQgE,EAAMkB,EAAUC,EAAYS,GAEpE5B,EAAKO,GAAOP,EAAKO,IAAQ,GAGnBe,IAAAA,MAAS1F,KACdA,EAAQ,CAACA,IAEV,IADA,IAAYuL,EAAWtF,EAAQC,EAAUC,EAAQlC,EAAMmC,EAAGZ,EAAtDP,EAAK,EACDA,EAAKjF,EAAMK,OAAQ4E,IAAO,CAKjC,IAAMgB,KAJNsF,EAAYvL,EAAMiF,GACbS,IAAAA,OAAU6F,KACdA,EAAY3B,EAAgBuB,MAAMI,GAAW,IAC9CrF,EAAWF,EAAU,CAAC,EAACK,EAAA,GAASjC,EAAKO,GAAKM,IAAO,CAAC,GAClCsG,EACf,GAAKA,EAAUrG,eAAee,GAM7B,GALAE,EAASoF,EAAUtF,GACnBhC,EAASU,EAAM,IAAMM,EAAK,IAAMgB,EAEhCC,EAASD,GAAUC,EAASD,IAAW7B,EAAKO,GAAKM,IAAOb,EAAKO,GAAKM,GAAIgB,IAAW,GAChFV,GAAcW,EAASD,KACnBqF,EAAcrF,GAClBqF,EAAcrF,GAAQF,IAAI9B,EAAMkC,EAAQ/F,EAAQgE,EAAMkB,EAAUC,EAAYS,QAQ5E,GAJAR,EAAY,CAAC,EAGbpB,EAAKH,GAAQG,EAAKH,IAAS,GACtByB,IAAAA,MAASS,GACb,IAAMC,EAAI,EAAGA,EAAID,EAAO9F,OAAQ+F,IAC/Bf,EAAOpB,EAAMgC,EAAQE,EAAOC,IAAM,EAAGhG,EAAQgE,EAAMkB,EAAUC,EAAYC,QAI1EH,EAAOpB,EAAMgC,EAAQE,GAAU,EAAG/F,EAAQgE,EAAMkB,EAAUC,GAM9DnB,EAAKO,GAAKM,GACTe,EAAOK,EAAAA,EAAAA,EAAA,GACAH,GAAc9B,EAAKO,GAAKM,IAAO,CAAC,GAAOiB,GAE9CA,CAEF,CACA,OAAOxB,CACR,wBCrUA/E,EAAOC,QAAUgB,QAAQ,+DCAzBjB,EAAOC,QAAUgB,QAAQ,8DCAzBjB,EAAOC,QAAUgB,QAAQ,iCCAzBjB,EAAOC,QAAUgB,QAAQ,QCCrB8K,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBjK,IAAjBkK,EACH,OAAOA,EAAajM,QAGrB,IAAID,EAAS+L,EAAyBE,GAAY,CAGjDhM,QAAS,CAAC,GAOX,OAHAkM,EAAoBF,GAAUjM,EAAQA,EAAOC,QAAS+L,GAG/ChM,EAAOC,OACf,CCrBA+L,EAAoBzB,EAAKvK,IACxB,IAAIoM,EAASpM,GAAUA,EAAOc,WAC7B,IAAOd,EAAiB,QACxB,IAAM,EAEP,OADAgM,EAAoBK,EAAED,EAAQ,CAAElD,EAAGkD,IAC5BA,CAAM,ECLdJ,EAAoBK,EAAI,CAACpM,EAASqM,KACjC,IAAI,IAAItH,KAAOsH,EACXN,EAAoBO,EAAED,EAAYtH,KAASgH,EAAoBO,EAAEtM,EAAS+E,IAC5ErE,OAAO6L,eAAevM,EAAS+E,EAAK,CAAEyH,YAAY,EAAMC,IAAKJ,EAAWtH,IAE1E,ECNDgH,EAAoBO,EAAI,CAACxB,EAAK4B,IAAUhM,OAAOiM,UAAUrH,eAAesH,KAAK9B,EAAK4B,GCClFX,EAAoBjD,EAAK9I,IACH,oBAAX6M,QAA0BA,OAAOC,aAC1CpM,OAAO6L,eAAevM,EAAS6M,OAAOC,YAAa,CAAE1M,MAAO,WAE7DM,OAAO6L,eAAevM,EAAS,aAAc,CAAEI,OAAO,GAAO,6ZCL9D,MAAM,EAA+BY,QAAQ,sDCA7C,MAAM,EAA+BA,QAAQ,mDCA7C,MAAM,EAA+BA,QAAQ,iECA7C,MAAM,EAA+BA,QAAQ,sDCA7C,MAAM,EAA+BA,QAAQ,gDCA7C,MAAM,EAA+BA,QAAQ,wCCA7C,MAAM,EAA+BA,QAAQ,gCCA7C,MAAM,EAA+BA,QAAQ,+CCA7C,MAAM,EAA+BA,QAAQ,iFCc7C,QADuB+L,IAAAA,cAAoB,MCbrC,EAA+B/L,QAAQ,yDCA7C,MAAM,EAA+BA,QAAQ,uoBCARA,QAAQ,aCatC,IAAMgM,EAAsB,IAAItL,OACtC,mCACA,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,OAAQ,QAAQC,KAAK,KAC3H,KASI,SAASsL,EAAQC,EAAMC,GACvBrH,IAAAA,MAASoH,KACdA,EAAO,CAACA,IACHpH,IAAAA,MAASqH,KACdA,EAAO,CAACA,IAET,IAE6B9M,EAFzB+M,EAAqBF,EAAK3C,KAAI,SAAAlB,GAAC,OAAKA,GAAKA,EAAExD,OAASwD,EAAExD,MAAMmH,IAAwB,CAAC,CAAE3D,GAAK,EAAG,KAAK,IACpGgE,EAAqBF,EAAK5C,KAAI,SAAAlB,GAAC,OAAKA,GAAKA,EAAExD,OAASwD,EAAExD,MAAMmH,IAAwB,CAAC,CAAE3D,GAAK,EAAG,KAAK,IACpGiE,EAAQ,CAAC,EAAGC,EAAS,GAGzB,IADAlN,EAAI,EACIA,EAAI+M,EAAO3M,QAClB6M,EAAMF,EAAO/M,GAAG,IAAMiN,EAAMF,EAAO/M,GAAG,KAAO,EAC7CiN,EAAMF,EAAO/M,GAAG,KAAO6F,WAAWkH,EAAO/M,GAAG,IAC5CA,IAGD,IADAA,EAAI,EACIA,EAAIgN,EAAO5M,QAClB6M,EAAMD,EAAOhN,GAAG,IAAMiN,EAAMD,EAAOhN,GAAG,KAAO,EAC7CiN,EAAMD,EAAOhN,GAAG,KAAO6F,WAAWmH,EAAOhN,GAAG,IAC5CA,IAEDK,OAAOC,KAAK2M,GACL9K,SACA,SAAAkC,GAAI,OAAK6I,EAAO9E,KAAK6E,EAAM5I,GAAQA,EAAK,IACvC,QAAA8I,EAAA1L,UAAArB,OAzB8BgN,EAAI,IAAAC,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,EAAA,GAAA7L,UAAA6L,GA0B1C,OAAOF,EAAKhN,OAASwM,EAAMW,WAAC,EAAD,CAACL,GAAMM,OAAKJ,IAAQF,CAChD,CAQO,SAASO,EAASZ,EAAMa,GACxBjI,IAAAA,MAASoH,KACdA,EAAO,CAACA,IAET,IAC6B7M,EADzB+M,EAAqBF,EAAK3C,KAAI,SAAAlB,GAAC,OAAKA,GAAKA,EAAExD,OAASwD,EAAExD,MAAMmH,IAAwB,CAAC,CAAE3D,GAAK,EAAG,KAAK,IACpGiE,EAAQ,CAAC,EAAGC,EAAS,GAGzB,IADAlN,EAAI,EACIA,EAAI+M,EAAO3M,QAClB6M,EAAMF,EAAO/M,GAAG,IAAMiN,EAAMF,EAAO/M,GAAG,KAAO,EAC7CiN,EAAMF,EAAO/M,GAAG,IAAM6F,WAAWkH,EAAO/M,GAAG,IAAM0N,EACjD1N,IAMD,OAJAK,OAAOC,KAAK2M,GACL9K,SACA,SAAAkC,GAAI,OAAK6I,EAAO9E,KAAK6E,EAAM5I,GAAQA,EAAK,IAExC6I,CACR,CAEO,SAASnE,EAAQ4E,GAAmB,IAAZC,EAAKnM,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAEtC,OADAkM,EAAQlI,IAAAA,MAASkI,GAASA,EAAQA,GAAS,CAACA,IAAUA,GACzCzD,KACZ,SAAA2D,GAAI,OAAAzH,EAAAA,EAAA,GAECyH,GAAI,IACPC,KAAMD,EAAKC,KAAOF,GAAK,GAI3B,CAEO,SAASpH,EAAOmH,GAAkC,IAA3BI,EAAQtM,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAAGuM,EAAUvM,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EACrDiM,EAAQlI,IAAAA,MAASkI,GAASA,EAAQA,GAAS,CAACA,IAAUA,EAGtD,IAAIM,EAAY,EAgBhB,OAfAN,EAAMxL,SACL,SAAA0L,GACCI,EAAYjG,KAAKkB,IAAI+E,EAAWJ,EAAKC,KAAOD,EAAKE,SAClD,IAGDJ,EAAQA,EAAMzD,KACb,SAAA2D,GAAI,OAAAzH,EAAAA,EAAA,GAECyH,GAAI,IACPC,KAAWD,EAAKC,KAAOG,EAAaF,EACpCA,SAAWF,EAAKE,SAAWE,EAAaF,GAAQ,IAI5CC,EAAajF,EAAO4E,EAAOK,GAAcL,CACjD,CAEA,SAASO,EAAelF,GACvB,OAAKvD,IAAAA,OAAUuD,IACNA,EACJvD,IAAAA,OAAUuD,GACP3I,OAAOC,KAAK0I,GAAGmF,QAAO,SAAEC,EAAG1J,GAAG,OAAO0J,EAAE1J,GAAOwJ,EAAclF,EAAEtE,IAAO0J,CAAC,GAAG,CAAC,GAC7E3I,IAAAA,MAASuD,GACNA,EAAEkB,KAAI,SAAE2D,GAAI,OAAOK,EAAcL,EAAK,IAEjC7E,EAAE9I,MAAM,iCAEPgK,KACb,SAAEwD,EAAK1N,GAAC,OAAOA,EAAI,GAAK6F,WAAW6H,GAAOA,CAAG,IAC5CpM,KAAK,GACR,CAEO,SAAS+M,EAASV,GACxBA,EAAgBlI,IAAAA,MAASkI,GAASA,EAAQA,GAAS,CAACA,IAAUA,EAE9D,IAAIM,EAAY,EAOhB,OANAN,EAAMxL,SACL,SAAA0L,GACCI,EAAYjG,KAAKkB,IAAI+E,EAAWJ,EAAKC,KAAOD,EAAKE,SAClD,IAGMJ,EAAMzD,KACZ,SAAA2D,GAOC,OANIzH,EAAAA,EAAA,GAECyH,GAAI,IACPC,KAAMG,GAAaJ,EAAKC,KAAOD,EAAKE,WAChCF,EAAKN,MAAQ,CAAEA,MAAOW,EAAcL,EAAKN,aAAW7L,EAG3D,GAEF,CAEA,IAAM4M,EAAgB,CAAE,WAAa,EAAM,QAAU,EAAM,YAAc,EAAM,WAAa,GAErF,SAASC,EAAQpO,GAAqB,QAAAqO,EAAA/M,UAAArB,OAAVqO,EAAO,IAAApB,MAAAmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAPD,EAAOC,EAAA,GAAAjN,UAAAiN,GACzC,IAAIC,EAASF,EAAQG,QAErB,IAAM,IAAMlK,KAAOiK,EAAS,CAeG,IAAAE,EAdxBF,EAAO1J,eAAeP,KAGvB4J,EAAc5J,IACZvE,EAAOuE,KACZvE,EAAOuE,GAAO,IAETe,IAAAA,MAASkJ,EAAOjK,IAGjB6J,EAAOpO,EAAOuE,GAAMiK,EAAOjK,IAF/B6J,EAAOpO,EAAOuE,GAAM,CAACiK,EAAOjK,MAMxBe,IAAAA,MAASkJ,EAAOjK,KACdvE,EAAOuE,KACZvE,EAAOuE,GAAO,IAETe,IAAAA,MAAStF,EAAOuE,KAGjBmK,EAAA1O,EAAOuE,IAAK0D,KAAImF,MAAAsB,EAAAC,IAAIH,EAAOjK,KAF/BvE,EAAOuE,GAAO,GAAH8I,OAAAsB,IAAOH,EAAOjK,IAAI,CAAEvE,EAAOuE,MAKjCvE,EAAOuE,GAQHe,IAAAA,OAAUtF,EAAOuE,KAASe,IAAAA,OAAUkJ,EAAOjK,IACpD6J,EAAOpO,EAAOuE,GAAMiK,EAAOjK,IAI3BvE,EAAOuE,GAAOqK,EAAW5O,EAAOuE,GAAMiK,EAAOjK,IAZvCe,IAAAA,OAAUkJ,EAAOjK,IAItBvE,EAAOuE,GAAI0B,EAAA,GAAQuI,EAAOjK,IAH1BvE,EAAOuE,GAAOiK,EAAOjK,GAiB1B,CAEA,OAAO+J,EAAQrO,QAAUmO,EAAMhB,WAAC,EAAD,CAACpN,GAAMqN,OAAKiB,KAAYtO,CACxD,CAEA,SAAS4O,EAAYC,EAAIC,GACxB,IAAMD,EACL,OAAOC,EACR,IAAMA,EACL,OAAOD,EACR,IAAIE,GAAW,GAAKF,GAAI9O,MAAM,iCAC1BiP,GAAW,GAAKF,GAAI/O,MAAM,iCAC1BuI,EAAUyG,EAAQhF,KACjB,SAAEwD,EAAK1N,GAAC,OAAOA,EAAI,EAAI6F,WAAW6H,GAAO7H,WAAWsJ,EAAQnP,IAAM,GAAK0N,CAAG,IACzEvI,QAAO,SAAAnF,GAAC,MAAW,KAANA,CAAQ,IAE3B,OAAoB,IAAbyI,EAAErI,OAAegP,SAAS3G,EAAE,IAAMA,EAAEnH,KAAK,GACjD,CAEO,SAAS+N,EAAY1B,EAAO2B,GAClC,IAAIC,EAAM,CAAC,EAaX,OAZA5B,EAAUlI,IAAAA,MAASkI,GAASA,EAAQA,GAAS,CAACA,IAAUA,GAClDxL,SACL,SAAA0L,GACCU,EAAOgB,EAAK1B,EAAKN,MAClB,IAEI+B,IACJC,EAAMrB,EAAcqB,IAKdA,CACR,CAEO,SAASpP,EAAQwN,EAAOxN,GAE9B,OADAwN,EAAQlI,IAAAA,MAASkI,GAASA,EAAQA,GAAS,CAACA,IAAUA,GACzCzD,KACZ,SAAA2D,GAAI,OAAAzH,EAAAA,EAAA,GAECyH,GAAI,IACP1N,OAAAA,GAAM,GAIV,CAEO,SAASqP,EAAiB7B,GAAmB,IAAZiB,EAAKnN,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE/C,OADAkM,EAAQlI,IAAAA,MAASkI,GAASA,EAAQA,GAAS,CAACA,IAAUA,GACzCzD,KACZ,SAAA2D,GACC,IAAI4B,EAAI5B,EAAKN,OAASM,EAAKN,MAAM5F,UACjC,GAAK8H,EAAI,CACRA,EAAIhK,IAAAA,MAASgK,GAAKA,EAAI,CAACA,GACvB,IAAM,IAAIzP,EAAI,EAAGA,EAAI4O,EAAO5O,IAC3ByP,EAAEC,QAAQ,CAAC,GAEZ7B,EAAIzH,EAAAA,EAAA,GAAQyH,GAAI,IAAEN,MAAKnH,EAAAA,EAAA,GAAOyH,EAAKN,OAAK,IAAE5F,UAAW8H,KACtD,CACA,OAAO5B,CACR,GAEF,cCxQSnN,EAAW,CAAC,EAAGd,EAAee,EAAAA,KAAAA,eAKvCf,EAAec,EAAU,SAFuBC,EAAQ,MAKxDf,EAAec,EAAU,YAF0BC,EAAQ,MAK3Df,EAAec,EAAU,YAF0BC,EAAQ,KAK3Df,EAAec,EAAU,aAF2BC,EAAQ,MAK5Df,EAAec,EAAU,kBAFgCC,EAAQ,KAajE,ylBCTA,IAAMgP,GAAQvJ,GAAAA,GAAA,GACVwJ,GAAW,IACdnI,OAAmBrH,EAAAA,GACnBoH,MAAmBpH,EAAAA,GACnBkH,IAAmBlH,EAAAA,GACnBgH,KAAmBhH,EAAAA,GACnBiH,MAAmBjH,EAAAA,GACnBmH,OAAmBnH,EAAAA,GACnByP,UAAmBzP,EAAAA,GACnB0P,WAAmB1P,EAAAA,GACnB2P,YAAmB3P,EAAAA,GACnB4P,aAAmB5P,EAAAA,GACnB6P,WAAmB7P,EAAAA,GACnB8P,YAAmB9P,EAAAA,GACnB+P,aAAmB/P,EAAAA,GACnBgQ,cAAmBhQ,EAAAA,GACnBiQ,aAAmBjQ,EAAAA,GACnBkQ,eAAmBxP,EAAAA,GACnByP,gBAAmBzP,EAAAA,GACnB0P,iBAAmB1P,EAAAA,GACnB2P,kBAAmB3P,EAAAA,GACnB4P,eAAmBtQ,EAAAA,GACnBuQ,gBAAmBvQ,EAAAA,GACnBwQ,iBAAmBxQ,EAAAA,GACnByQ,kBAAmBzQ,EAAAA,GACnB0Q,iBAAmB/P,EAAAA,EAAAA,IAAM,GACzBgQ,OAAmB/P,EAAAA,GACnB+B,QAAmB9B,EAAAA,KAyBb,SAAS+P,GAAqBC,EAAQ7N,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,GAAa,IAAAyN,EAExF,QAAjBA,EAAA1N,EADWJ,EAAMlD,MAAM,KACT,WAAG,IAAAgR,GAAjBA,EAAmB/N,QAAQC,EAAOC,EAAcC,EAAQC,EAASC,EAAUC,EAC5E,CAUO,SAAS0N,GAAUxM,EAAW4K,EAAK6B,EAAUjN,EAAMC,GACzD/D,OAAOC,KAAK8Q,GACLjP,SACA,SAAEuC,GACD0M,EAAS1M,GAAKD,MAAMC,EAAKC,EAAW4K,EAAKpL,EAAMC,EAChD,GAER,CAaO,SAASiN,GAAYC,EAAOC,EAAclM,EAAUlB,EAAMiN,EAAU9L,EAAYS,GACtF,IAAIyL,EAAS,CAAC,EA+Bd,OA9BAF,GAASjR,OAAOC,KAAKgR,GACLnP,SACA,SAAEuC,GACIiL,GAASjL,GACb8M,EAAO9M,GAAO4M,EAAM5M,IACXpC,EAAAA,EAAAA,IAAmBoC,EAAK4M,EAAM5M,MAElCrC,EAAAA,EAAAA,IAAoBqC,IACxB9C,EAAAA,EAAAA,IAAwB8C,EAAK4M,EAAM5M,GAAM8M,GAMnDA,EAAO9M,GAAO4M,EAAM5M,EAEb,IAEhB8M,GAAUnR,OAAOC,KAAKkR,GACLrP,SACA,SAAEuC,GACIiL,GAASjL,IACZ0M,EAAS1M,GAAOiL,GAASjL,IAAMoB,IAAIpB,EAAK8M,EAAO9M,GAAM6M,EAAcpN,EAAMkB,EAAUC,EAAYS,IAEvFzD,EAAAA,EAAAA,IAAmBoC,EAAK4M,EAAM5M,KACtC0M,EAAS1M,GAjFvB,SAAiC7C,GACvC,IAAIC,EAAQZ,EAAAA,GAAMW,GACd4P,EAAQ3P,GAAQA,EAAK2P,MACzB,IAAMA,EACL,OAAO7Q,EAAAA,GAER,IAAM,IAAIZ,EAAI,EAAGA,EAAIyR,EAAMrR,OAAQJ,IAClC,OAASyR,EAAMzR,IACd,IAAK,SACL,IAAK,yBACJ,OAAOI,EAAAA,GACR,IAAK,SACL,IAAK,UACJ,OAAOY,EAAAA,GACR,IAAK,QACJ,OAAOF,EAAAA,GAGV,OAAOF,EAAAA,EACR,CA8DqC8Q,CAAuBhN,IAAMoB,IAAIpB,EAAK8M,EAAO9M,GAAM6M,EAAcpN,EAAMkB,EAAUC,EAAYS,IAE7GqL,EAAS1M,GAAO9D,EAAAA,IAAKkF,IAAIpB,EAAK8M,EAAO9M,GAAM6M,EAAcpN,EAAMkB,EAAUC,EAAYS,EACxF,IA7BW,CAAC,CAgC9B,CAWO,SAAS4L,GAAWC,EAAWvM,EAAUlB,EAAMiN,EAAU9L,GAC/DA,EAAmBA,GAAc,CAAC,EAClC,IAAIuM,EAAe,CAAC,EAChBC,EAAeF,EAAUzD,QACxB,SAAE4D,EAAMT,GACP,IAAIU,EAAqB,CAAC,EAgB1B,OAfAZ,EAASE,EAAMnR,QAAUiR,EAASE,EAAMnR,SAAW,CAAC,EACpDkF,EAASiM,EAAMnR,QAAUkF,EAASiM,EAAMnR,SAAW,CAAC,EACpDgE,EAAKmN,EAAMnR,QAAcgE,EAAKmN,EAAMnR,SAAW,CAAC,EAE1CmR,EAAMxP,MAAuB,UAAfwP,EAAMxP,KAUrBiQ,EAAK3J,KAAIhC,GAAC,CAAC,EAAIkL,MATlBhM,GAAciJ,EAAOsD,EAAaP,EAAMnR,QAAU0R,EAAaP,EAAMnR,SAAW,CAAC,EAAGmR,EAAM/D,OAE3F8D,GAAWC,EAAM/D,MAAOyE,EAAc3M,EAASiM,EAAMnR,QAASgE,EAAKmN,EAAMnR,QAASiR,EAASE,EAAMnR,SAAS,GAC1G4R,EAAK3J,KAAIhC,GAAAA,GAAC,CAAD,EAEJkL,GAAK,IACR/D,MAAOyE,MAIHD,CACR,GACA,IAOL,OALCzM,GAAcjF,OAAOC,KAAKuR,GACL1P,SACA,SAAA8P,GAAE,OAAIZ,GAAWQ,EAAaI,GAAK,CAAC,EAAG,CAAC,EAAG9N,EAAK8N,GAAKb,EAASa,GAAI,IAGjFH,CACR,CCpLA,MAAM,GAA+BnR,QAAQ,0RCe7C,ICMkCuR,GADtBC,GDLNC,GAAsB,GAKPC,GAAY,SAAAC,GAEhC,SAAAD,EAAaE,EAAKC,GACjB,GADyBC,IAAA,KAAAJ,GACpBD,GAAoBhS,OAAS,CACjC,IAAIsS,EAAYN,GAAoBzO,MAUpC,OATA+O,EAAQF,MAAQA,EACX/M,IAAAA,MAAS8M,IACbG,EAAQC,YAAc,EACtBD,EAAQE,MAAML,EAAKC,IAGdD,EAAIM,MACRH,EAAQE,MAAML,EAAIM,KAAML,GAE1BM,SAZwBC,EAYjBL,EACR,CAAC,OAAAM,GAAA,KAAAX,EACQ5Q,UACV,CAAC,OAAAwR,IAAAZ,EAAAC,GAAAY,IAAAb,EAAA,EAAA3N,IAAA,UAAA3E,MAED,WAECoT,KAAKX,WAAyB9Q,EAC9ByR,KAAKC,QAAQhT,OAAiB,EAC9B+S,KAAKE,cAAcjT,OAAW,EAC9B+S,KAAKG,YAAYlT,OAAa,EAC9B+S,KAAKI,aAAanT,OAAY,EAC9B+S,KAAKK,SAASpT,OAAgB,EAC9B+S,KAAKM,gBAAgBrT,OAAS,EAE9B+S,KAAKM,gBAAgBrT,OAAS,EAC9B+S,KAAKO,WAAWtT,OAAc,EAC9B+S,KAAKQ,WAAWvT,OAAc,EAC9B+S,KAAKS,OAAyB,EAC9BT,KAAKpF,SAAyB,EAC9BoF,KAAKU,SAAyB,EAC9BV,KAAKW,UAAyB,EAC9B1B,GAAoBhK,KAAK+K,KAC1B,IAAC,CArC+B,CAASY,MCHtCtO,GAAY9E,EAAQ,KACpBqT,GAA8B,oBAAXC,OAgBnBC,IAfYF,KACJ7B,GAAW,4BAA4BjS,MAAM,QAK1C,iBAAkB+T,QAAYA,OAAOE,eAAiBC,oBAAoBD,iBAJvDjC,GAUd,CAAC,IAAKC,GAAS7Q,KAAK,oBAAqB,SAAU,KAAKA,KAAK,IAT9D2S,OAAOI,YAAcJ,OAAOI,WAAWnC,IAAOoC,UAYjDN,GAAY,CACpBO,OAAgB,UAAYvJ,KAAKwJ,UAAUC,YAAc,SACzC,WAAazJ,KAAKwJ,UAAUE,WAAa,MACzC,WAAa1J,KAAKwJ,UAAUE,WAAa,KAC3C,UAAWT,OAAS,IAAM,GACxCU,aAAgB,UAAY3J,KAAKwJ,UAAUC,YAAc,WACzC,WAAazJ,KAAKwJ,UAAUE,WAAa,QACzC,WAAa1J,KAAKwJ,UAAUE,WAAa,OAC3C,UAAWT,OAAS,MAAQ,IAC1C,CACAM,OAAc,GACdI,aAAc,KAElBC,GAAY,CACRC,YAAmB,GACnBC,YAAmB,GACnBC,SAAmB,GACnBC,YAAmB,GACnBC,gBAAmB,GACnBC,QAAmB,CAAC,EACpBC,UAAmB,EACnBC,kBAAmB,SAAWC,GAC1B,IAAIpJ,EAGAqJ,EACAC,EAHAC,EAAgBZ,GAChB5U,EAAgBwV,EAAGR,YAAYrP,QAAQwN,MAEjC+B,EAAU,GAEpB,IAAY,IAAPlV,EAAL,CAMMwV,EAAGL,YACLM,GAAIC,SAAStB,SACA,CACI,UAAaoB,EAAGG,aAChB,UAAaH,EAAGG,aAChB,SAAaH,EAAGI,aAChB,QAAaJ,EAAGI,eAEjCH,GAAIC,SAASvC,KACA,CACI,MAASqC,EAAGK,kBACb,KAAM,KAAM,MAAM,IAGjCR,EAAES,gBAAkBT,EAAES,eAAe1V,OACtC8U,EAAUG,EAAES,eAEXZ,EAAQ9M,KAAKiN,GAElB,IAAM,IAAI5F,EAAI,EAAGsG,EAAKb,EAAQ9U,OAAQqP,EAAIsG,EAAItG,IAM1C,GALA6F,EAASJ,EAASzF,KAGlB8F,EAAOC,EAAGP,gBAAiBjV,IAEjBmV,UAkBV,IAhBAK,EAAGL,YAEHK,EAAGN,QAASI,EAAOU,YAAeR,EAAGN,QAASI,EAAOU,aAAgB,GACrER,EAAGN,QAASI,EAAOU,YAAa5N,KAAKmN,GAGrCA,EAAKJ,YAELI,EAAKU,UAAU3R,EAAmB,MAAf4P,GAAKK,OAAiBe,EAAOhR,EAAIgR,EAAOY,MAC3DX,EAAKU,UAAU1R,EAAmB,MAAf2P,GAAKK,OAAiBe,EAAO/Q,EAAI+Q,EAAOa,MAC3DZ,EAAKa,SAAcf,EAAEgB,UAGrBd,EAAKe,SAAShS,EAAmB,MAAf4P,GAAKK,OAAiBe,EAAOhR,EAAIgR,EAAOY,MAC1DX,EAAKe,SAAS/R,EAAmB,MAAf2P,GAAKK,OAAiBe,EAAO/Q,EAAI+Q,EAAOa,MAEpDlK,EAAI,EAAGA,EAAIsJ,EAAKgB,UAAUnW,OAAQ6L,IACpCsJ,EAAKgB,UAAWtK,GAAK,GAAIM,KAAKgJ,EAAKgB,UAAWtK,GAAK,IACrBkH,KAAMkC,EAAGC,EAAQC,EAjDvD,CAmDJ,EACAI,aAAmB,SAAWN,GAAI,IAC1BpJ,EAEAqJ,EAAsBkB,EAHIzD,EAAA,KAE1ByC,EAAkBZ,GACVM,EAAU,GACAN,GAAGG,SAAU,GAG9BM,EAAES,gBAAkBT,EAAES,eAAe1V,OACtC8U,EAAUG,EAAES,eAEXZ,EAAQ9M,KAAKiN,GAElB,IAAM,IAAIrV,EAAI,EAAG+V,EAAKb,EAAQ9U,OAAQJ,EAAI+V,EAAI/V,IAC1CsV,EAASJ,EAASlV,GACTwV,EAAGN,QAASI,EAAOU,YAC5BR,EAAGN,QAASI,EAAOU,aACnBR,EAAGN,QAASI,EAAOU,YAAa7T,SAC5B,SAAAoT,GACI,GAAKiB,EAOD,OANAjB,EAAKe,SAAShS,EAAIiR,EAAKU,UAAU3R,EAAmB,MAAf4P,GAAKK,OACHe,EAAOhR,EACPgR,EAAOY,WAC9CX,EAAKe,SAAS/R,EAAIgR,EAAKU,UAAU1R,EAAmB,MAAf2P,GAAKK,OACHe,EAAO/Q,EACP+Q,EAAOa,OAMlD,IAHAZ,EAAKe,SAAShS,EAAmB,MAAf4P,GAAKK,OAAiBe,EAAOhR,EAAIgR,EAAOY,MAC1DX,EAAKe,SAAS/R,EAAmB,MAAf2P,GAAKK,OAAiBe,EAAO/Q,EAAI+Q,EAAOa,MAEpDlK,EAAI,EAAGA,EAAIsJ,EAAKkB,KAAKrW,OAAQ6L,IAC/BuK,GAE6C,IAFnCjB,EAAKkB,KAAMxK,GAAK,GAAIM,KAAKgJ,EAAKkB,KAAMxK,GAAK,IAAO8G,EAAMsC,EAC7BC,EACAC,EAC3C,GAIZ,EACAM,iBAAmB,SAAWR,GACrBT,GAAG8B,mBACJrB,EAAEsB,iBACFtB,EAAEuB,kBACFvB,EAAEwB,2BACFjC,GAAG8B,kBAAmB,GAE1BjB,GAAIqB,YAAY3D,KACA,CACI,MAASA,KAAK0C,kBAEtC,EACAD,aAAmB,SAAWP,GAAI,IAC1BpJ,EACSqJ,EACTyB,EAH0BC,EAAA,KAE1BxB,EAAKZ,GAAYM,EAAU,GAG1BG,EAAES,gBAAkBT,EAAES,eAAe1V,OACtC8U,EAAUG,EAAES,eAEXZ,EAAQ9M,KAAKiN,GAElB,IAAM,IAAIrV,EAAI,EAAG+V,EAAKb,EAAQ9U,OAAQJ,EAAI+V,EAAI/V,IAC1CsV,EAASJ,EAASlV,GAClBwV,EAAGL,YACHK,EAAGN,QAASI,EAAOU,aACnBR,EAAGN,QAASI,EAAOU,YAAa7T,SAC5B,SAAAoT,GAQI,IALAA,EAAKJ,YACL4B,EAAkBA,GAAWxB,EAAK0B,WAAe5B,EAAEgB,UAAYd,EAAKa,SAAW,IAC/Eb,EAAKe,SAAShS,EAAmB,MAAf4P,GAAKK,OAAiBe,EAAOhR,EAAIgR,EAAOY,MAC1DX,EAAKe,SAAS/R,EAAmB,MAAf2P,GAAKK,OAAiBe,EAAO/Q,EAAI+Q,EAAOa,MAEpDlK,EAAI,EAAGA,EAAIsJ,EAAK2B,QAAQ9W,OAAQ6L,IAClCsJ,EAAK2B,QAASjL,GAAK,GAAIM,KAAKgJ,EAAK2B,QAASjL,GAAK,IACnB+K,EAAM3B,EACNC,EAAQC,EAG5C,IAEJC,EAAGN,QAASI,EAAOU,YAAe,KAEjCe,IACDvB,EAAGkB,kBAAmB,GAEpBlB,EAAGL,WACLM,GAAIqB,YAAY1C,SACA,CACI,UAAaoB,EAAGG,aAChB,UAAaH,EAAGG,aAChB,SAAaH,EAAGI,aAChB,QAAaJ,EAAGI,cAG5C,EACAuB,aAAmB,SAAWC,EAAMH,EAAWI,GAC3C,IAAwC9B,EAApCvV,EAAImT,KAAK6B,YAAYrP,QAAQyR,GA+BjC,OA9BY,IAAPpX,GACDmT,KAAK6B,YAAY5M,KAAKgP,GACtBjE,KAAK8B,gBAAgB7M,KACjBmN,EAAO,CACH0B,UAAAA,EACAI,UAAAA,EACAlC,UAAW,EACXmC,MAAW,EACXrB,UAAW,CACP3R,EAAG,EACHC,EAAG,GAEP+R,SAAW,CACPhS,EAAG,EACHC,EAAG,GAEPgS,UAAW,GACXE,KAAW,GACXc,QAAW,GACXL,QAAW,KAInBzB,GAAIC,SAAS0B,EACA,CACI,UAAcH,GAAa9D,KAAKiC,kBAChC,WAAciC,GAAalE,KAAKiC,mBACjC,KAAM,KAAM,MAAM,IAEjCG,EAAOpC,KAAK8B,gBAAiBjV,GAC3BuV,CACX,EACAiC,cAAmB,SAAWJ,GAC1B,IAAIpX,EAAImT,KAAK6B,YAAYrP,QAAQyR,IACrB,IAAPpX,IACDmT,KAAK6B,YAAYyC,OAAOzX,EAAG,GAC3BmT,KAAK8B,gBAAgBwC,OAAOzX,EAAG,GAE/ByV,GAAIqB,YAAYM,EACA,CACI,UAAcjE,KAAKiC,kBACnB,WAAcjC,KAAKiC,oBAG/C,EAEAM,SAAa,SAAW0B,EAAMtV,EAAM4V,EAAIC,GAC/BP,EAAKQ,iBACNR,EAAKQ,iBAAiB9V,EAAM4V,EAAIC,GAE1BP,EAAKS,aACXT,EAAKS,YAAY,KAAO/V,EACP4V,EAAGI,QAAU,SAAWzC,GACpB,OAAOqC,EAAGnL,KAAK6K,EAAM/B,EACzB,EAEzB,EACAyB,YAAa,SAAWM,EAAMtV,EAAM4V,EAAIC,GAC/BP,EAAKW,oBACNX,EAAKW,oBAAoBjW,EAAM4V,EAAIC,GAE7BP,EAAKS,aACXT,EAAKY,YAAY,KAAOlW,EAAM4V,EAAGI,QAEzC,EACAG,SAAa,SAAW7M,EAAKsM,EAAIlF,GAC7B,IAAM,IAAIxS,EAAI,EAAG+V,EAAK3K,EAAIhL,OAAQJ,EAAI+V,EAAI/V,IACtC,GAAKoL,EAAKpL,GAAK,KAAQ0X,EACnB,OAAOtM,EAAIqM,OAAOzX,EAAG,GAG7B4D,QAAQgE,KAAK,mCACjB,GAEJ6N,GAAY,CACRC,SAAa,SAAW0B,EAAMtV,EAAM4V,EAAIT,GAAsC,IAA3BI,IAAS5V,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,KAAAA,UAAA,GAASkW,EAAMlW,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EACvE,GAAK+D,GAAGyS,OAAOpW,GACX,IAAM,IAAImK,KAAKnK,EACNA,EAAKmD,eAAegH,IAAMnK,EAAMmK,IACjCkH,KAAKuC,SAAS0B,EAAMnL,EAAGnK,EAAMmK,GAAKgL,EAAWI,EAAWM,OAGjD,cAAT7V,EACN8S,GAAGuC,aAAaC,EAAMH,EAAWI,GAAWd,UAAUnO,KAAK,CAACsP,IAE7C,SAAT5V,EACN8S,GAAGuC,aAAaC,EAAMH,EAAWI,GAAWZ,KAAKrO,KAAK,CAACsP,IAExC,YAAT5V,EACN8S,GAAGuC,aAAaC,EAAMH,EAAWI,GAAWH,QAAQ9O,KAAK,CAACsP,IAGrDN,EAAKQ,iBACNR,EAAKQ,iBAAiB9V,EAAM4V,EAAI,CAAES,SAAS,IAErCf,EAAKS,aACXT,EAAKS,YAAY,KAAO/V,EACP4V,EAAGI,QAAU,SAAWzC,GACpB,OAAOqC,EAAGnL,KAAK6K,EAAM/B,EACzB,EAI7B,EACAyB,YAAa,SAAWM,EAAMtV,EAAM4V,EAAIlF,EAAOmF,GAC3C,IAAOpC,EAEP,GAAK9P,GAAGyS,OAAOpW,GACX,IAAM,IAAImK,KAAKnK,EACNA,EAAKmD,eAAegH,IACrBkH,KAAK2D,YAAYM,EAAMnL,EAAGnK,EAAMmK,GAAKuG,OAGvC,eAAexH,KAAKlJ,IAC1ByT,EAAOX,GAAGuC,aAAaC,GACvBxC,GAAGqD,SAAS1C,EAAMzT,GAAQ4V,EAAIlF,GACxB+C,EAAKgB,UAAUnW,QACZmV,EAAKkB,KAAKrW,QACVmV,EAAKgC,QAAQnX,QACbmV,EAAK2B,QAAQ9W,QAClBwU,GAAG4C,cAAcJ,IAGhBA,EAAKW,oBACNX,EAAKW,oBAAoBjW,EAAM4V,EAAIC,GAE7BP,EAAKS,aACXT,EAAKY,YAAY,KAAOlW,EAAM4V,EAAGI,QAI7C,EACA/O,OAAa,SAAWqP,GAOpB,IANA,IAAIC,EAAO,CACP/Q,IAAQ,EACRF,KAAQ,EACRI,MAAQ4Q,EAAKE,YACb7Q,OAAQ2Q,EAAKG,cAETH,GACJC,EAAK/Q,IAAO+Q,EAAK/Q,IAAM8H,SAASgJ,EAAKI,WACrCH,EAAKjR,KAAOiR,EAAKjR,KAAOgI,SAASgJ,EAAKK,YACtCL,EAAYA,EAAKM,aAErB,OAAOL,CACX,EAQAM,iBAAgB,SAAEC,GACd,IAAIC,EAAWC,EAAQ,CAACF,GACxB,IAAM,IAAMlU,KAAOkU,EAEf,GAAKlU,EAAIqU,WAAW,6BAA+BrU,EAAIqU,WAAW,iBAAmB,CAEjF,IADAF,EAAYD,EAASlU,GACbmU,EAAUG,QACTH,EAAUI,YAAcH,EAAM3Q,SAAS0Q,EAAUI,YAClDH,EAAM1Q,KAAKyQ,EAAUI,WACzBJ,EAAYA,EAAUG,OAE1B,OAAOF,CACX,CAEJ,OAAOF,EAAQM,YAAc/F,KAAKwF,iBAAiBC,EAAQM,WAC/D,GAGR,ilBCvXA,IACCzT,GAAW9E,EAAQ,KACnBwY,GAAWxY,EAAQ,KACnByY,GAAW,SAAe9U,GACzB,MAAoB,iBAANA,EAAiBA,EAAIA,EAAI,GAAK,EAAI,EAAIA,GAAMA,EAAIA,EAAI+U,IAAMA,GACzE,EACAC,GAAWtR,KAAKsR,IAChBC,GAAWvR,KAAKuR,MAEhBjR,IADWN,KAAKC,MACLD,KAAKM,KAChBY,GAAWlB,KAAKkB,IAChB3H,GAAW,WAAO,OAAJE,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAASE,QAAQ,EAAE,EAuChB6X,GAAO,WA2B1B,OAAAtG,KArBD,SAAAsG,EAAaC,GAAMhH,IAAA,KAAA+G,GAClB,IAAIE,EAAKvG,KAAKuG,EAAI,CAAC,EACnBA,EAAEC,KAAIvT,GAAAA,GAAA,GACF+M,KAAKyG,YAAYC,QACjBJ,GAGJtG,KAAK2G,QAAmB,EACxBJ,EAAEK,IAAsBN,EAAI1Z,OAAS,EACrC2Z,EAAEM,OAAsB,GACxBN,EAAEpR,IAAsBmR,EAAInR,KAAO,EACnCoR,EAAExQ,IAAsBuQ,EAAIvQ,KAAO,EACnCwQ,EAAEO,YAAsB,EACxBP,EAAEQ,eAAsB,EACxBR,EAAES,MAAsBT,EAAEC,KAAKQ,MAC/BT,EAAEU,SAAsBV,EAAEC,KAAKS,SAC/BV,EAAEW,UAAsBX,EAAEC,KAAKU,UAC/BX,EAAEY,UAAsBnB,GAASoB,YACjCb,EAAEc,oBAAsB,EAExBrH,KAAKsH,oBACN,GAAC,EAAA/V,IAAA,aAAA3E,MAED,SAAY0Z,GACX,IAAIC,EAAgBvG,KAAKuG,EACzBA,EAAEpR,IAAkBmR,EAAInR,KAAO,EAC/BoR,EAAExQ,IAAkBuQ,EAAIvQ,KAAO,EAC/BwQ,EAAES,MAAkBV,EAAIU,MACxBT,EAAEU,SAAkBX,EAAIW,SACxBV,EAAEW,UAAkBZ,EAAIY,UACxBX,EAAEC,KAAKe,SAAajB,EAAIiB,SACxBhB,EAAEC,KAAKgB,SAAalB,EAAIkB,SACxBjB,EAAEC,KAAKiB,OAAanB,EAAImB,OACxBlB,EAAEC,KAAKkB,OAAapB,EAAIoB,OACxBnB,EAAEC,KAAKmB,WAAarB,EAAIqB,UACzB,GAAC,CAAApW,IAAA,YAAA3E,MAED,WACC,IAAI2Z,EAAavG,KAAKuG,EACtBA,EAAEqB,OAAerB,EAAEsB,QAAUC,KAAKC,MAAQ,IAC1CxB,EAAEyB,aAAezB,EAAE0B,cAAgB,EACnC1B,EAAE2B,UAAe,EACjB3B,EAAE4B,QAAe,EACjB5B,EAAE6B,UAAe,EACjBpI,KAAK2G,QAAY,EACjB3G,KAAKqI,SAAY,EACjB9B,EAAE+B,SAAe,CAClB,GAAC,CAAA/W,IAAA,OAAA3E,MAED,SAAM2b,GACL,IAEIC,EAFAjC,EAAevG,KAAKuG,EACpBkC,OAAiCla,IAAlBgY,EAAEmC,YAA4BH,EAAUhC,EAAEmC,YAAc,EAEvEX,EAAeD,KAAKC,MAAQ,IAC5BY,EAAgBZ,EAAMxB,EAAEqB,OACxBhB,EAAe2B,EACfK,EAAeH,EAAQE,EA+D3B,GA7DApC,EAAEmC,YAAcH,EAIVhC,EAAEsC,aACPtC,EAAEuC,YAAcP,EAChBhC,EAAEsC,WAActC,EAAEqB,QAGde,EAAe,QAMjBC,GAAQ,GAAKrC,EAAEyB,aAAe,GAE9BY,GAAQ,GAAKrC,EAAEyB,aAAe,GAE/B7B,GAAIyC,GAAQzC,GAAqB,GAAjBI,EAAEyB,gBAElBD,EAAMxB,EAAEsC,WA1HO,KA6HhBtC,EAAEuC,YAAiBP,EACnBhC,EAAEsC,WAAiBd,EACnBxB,EAAEyB,aAAiB,EACnBzB,EAAE0B,cAAiB,EACnB1B,EAAEqB,OAAiBG,EACnBxB,EAAEwC,WAAiB,EACnBxC,EAAEQ,eAAiB,GAGlB6B,GAAQ,GAAKrC,EAAEyB,aAAe,GAE9BY,GAAQ,GAAKrC,EAAEyB,aAAe,GAE/B7B,GAAIyC,GAAQzC,GAAqB,GAAjBI,EAAEyB,gBAKlBzB,EAAE0B,cAAgBW,EAClBrC,EAAEyB,cAAkBpB,EAAQL,EAAEuC,cAAiBf,EAAMxB,EAAEsC,YACvDtC,EAAEqB,OAAsBG,EACxBxB,EAAEwC,WAAsB,EACxBxC,EAAEQ,eAAsB,EAExBR,EAAEyC,oBAAsBza,EACxBgY,EAAEc,yBAAsB9Y,IAGpBgY,EAAEC,KAAKyC,SACNrC,EAAML,EAAExQ,IACZ6Q,EAAML,EAAExQ,IAEC6Q,EAAML,EAAEpR,MACjByR,EAAML,EAAEpR,MAILoR,EAAEC,KAAKmB,WACX,KAASa,EAAOjC,EAAEC,KAAKmB,WAAWf,EAAK6B,IACtC7B,GAAO4B,EAGTjC,EAAEK,IAAMA,CAET,GAAC,CAAArV,IAAA,UAAA3E,MAED,WAAU,IAAAsc,EAAAC,EACL5C,EAAUvG,KAAKuG,EACLN,GAAOM,EAAEyB,cAEvBhI,KAAKqI,SAAU,EAtKV,SAAuB9B,GAC7B,IAAI6C,EAAUnD,GAAOM,EAAEyB,cAElBzB,EAAEU,UACNV,EAAE8C,YAAiB,EACnB9C,EAAE+C,YAAiB,EACnB/C,EAAEwC,WAAiB,EACnBxC,EAAEgD,eAAiB,IAKnBhD,EAAE8C,YAAcjD,GAAMvR,KAAKnE,IAAI,IAAMyV,GAAII,EAAEyB,eAAiBnT,KAAKnE,IAAI,KAGrE6V,EAAE+C,aAAezU,KAAK2U,IAAI,GAAIjD,EAAE8C,aAAelD,GAAII,EAAEyB,gBAAkB,GAAK,GAG5EzB,EAAEwC,WAAkBxC,EAAE+C,YAAc/C,EAAEM,OAASuC,EAAW,KAAQ,EAClE7C,EAAEgD,eAAiBpD,GAAII,EAAE8C,YAAc9C,EAAEM,OAASuC,IAAY,EAGhE,CAmJEK,CAAalD,GAEbA,EAAEmC,iBAAcna,EAEhBgY,EAAEuC,iBAAcva,EAChBgY,EAAEsC,gBAActa,EAChBgY,EAAE8B,SAAc,EAcX9B,EAAEC,KAAKyC,QAAU1C,EAAEC,KAAKkD,eACtBnD,EAAEK,IAAML,EAAEwC,WAAcxC,EAAExQ,KAC/BwQ,EAAEwC,WAAiBxC,EAAExQ,IAAMwQ,EAAEK,IAC7BL,EAAEgD,eAAiBpD,GAAmB,GAAfI,EAAEwC,aAEfxC,EAAEK,IAAML,EAAEwC,WAAcxC,EAAEpR,MAEpCoR,EAAEwC,WAAiBxC,EAAEpR,IAAMoR,EAAEK,IAC7BL,EAAEgD,eAAiBpD,GAAmB,GAAfI,EAAEwC,cAIrBxC,EAAEgD,iBACPhD,EAAEgD,eAAiB,IAGpBvJ,KAAK2G,QAAc,EACnBJ,EAAE+B,SAAiB,EACnB/B,EAAEQ,eAAiB,EACnBR,EAAEoD,eACDpD,EAAEqD,cAAgB9B,KAAKC,MAIxB/H,KAAK6J,QAAQ,KAAM,KACL,QAAdX,GAAAC,EAAA5C,EAAEC,MAAKsD,eAAO,IAAAZ,GAAdA,EAAA9P,KAAA+P,EAAiB5C,EAAEwC,WAAaxC,EAAEK,IAAKL,EAAEwC,WAAYxC,EAAEgD,eACxD,GAAC,CAAAhY,IAAA,SAAA3E,MAED,WAA0B,IACPmd,EAAWvB,EADtBwB,EAAE1b,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAGwZ,KAAKC,MACbxB,EAAMvG,KAAKuG,EAEdK,EAAML,EAAEY,WAAW6C,EAAKzD,EAAEoD,gBAAkBpD,EAAEgD,gBAAkBhD,EAAEwC,WAEnE,IAAMxC,EAAE+B,QAMP,OAAO/B,EAAEK,IAEV,IACC6B,EAAe7B,EAAML,EAAEQ,eA6BxB,GA5BAR,EAAEQ,eAAiBH,EAEboD,EAAKzD,EAAEoD,gBAAmBpD,EAAEgD,iBACjChD,EAAE+B,QAAiBtI,KAAK2G,QAAS,EACjCJ,EAAEQ,eAAiB0B,EAAQ,EAC3BlC,EAAEwC,WAAiB,EACdxC,EAAEyC,iBACNP,EAAyBlC,EAAEyC,eAAegB,GAAKzD,EAAEK,IAEjDL,EAAE0D,gBAAuB1D,EAAEyC,eAC3BzC,EAAE2D,qBAAuB3D,EAAEc,oBAC3Bd,EAAEyC,eAAuB,KACzBzC,EAAEc,oBAAuB,MAIrBd,EAAEC,KAAKiB,QACXlB,EAAEC,KAAKiB,OAAOlB,EAAEK,IAAKL,EAAE0D,iBAEnB1D,EAAEC,KAAKkB,QACXnB,EAAEC,KAAKkB,OAAOnB,EAAE2D,qBAAsB3D,EAAE0D,kBAI1CxB,EAAYA,GAAS,EAErBsB,EAAYxD,EAAEK,IAAM6B,EAEflC,EAAEC,KAAKmB,WAEX,KAASa,EAAOjC,EAAEC,KAAKmB,WAAWoC,EAAWtB,IAE5CsB,GAAavB,EACRjC,EAAE+B,QAUT,OAFA/B,EAAEK,IAAMmD,EAEDA,CACR,GAAC,CAAAxY,IAAA,SAAA3E,MAED,SAAQga,GACP,IAAIL,EAAevG,KAAKuG,EASxB,GARAA,EAAE+B,SAAiB,EACnBtI,KAAK2G,QAAc,EACnBJ,EAAEQ,eAAiB,EACnBR,EAAEwC,WAAiB,EACnBxC,EAAEoD,eAAiB,EACnBpD,EAAEqD,cAAiB,EACnBrD,EAAEgD,eAAiB,EAEdhD,EAAEC,KAAKmB,WAAa,CAExB,IADA,IAAIa,EAAMuB,EAAYnD,EACb4B,EAAOjC,EAAEC,KAAKmB,WAAWoC,EAAWxD,EAAEK,IAAMA,IACpDmD,GAAavB,EAId5B,EAAMmD,CACP,CACAxD,EAAEK,IAAMA,EACHL,EAAEC,KAAKyC,SACX1C,EAAEK,IAAM7Q,GAAIwQ,EAAEK,IAAKL,EAAEpR,KACrBoR,EAAEK,IAAMzR,GAAIoR,EAAEK,IAAKL,EAAExQ,KAEvB,GAAC,CAAAxE,IAAA,eAAA3E,MAED,SAAcsa,GACClH,KAAKuG,EACjBW,UAAYA,EACdlH,KAAKsH,oBACN,GAAC,CAAA/V,IAAA,WAAA3E,MAED,SAAUud,GACT,IAAI5D,EAAIvG,KAAKuG,EACb,IAAMA,EAAE+B,QACP,OAAO/B,EAAEK,KAAOuD,EAGjB5D,EAAEK,KAAOuD,CAEV,GAAC,CAAA5Y,IAAA,WAAA3E,MAED,SAAU6b,GAAkB,IAAX2B,EAAE9b,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,IACjBiY,EAAMvG,KAAKuG,EACXwB,EAAMD,KAAKC,MAGf/H,KAAK2G,QAAS,EAGRJ,EAAE+B,SAAWrC,GAAOwC,KAAWxC,GAAOM,EAAEwC,aAa7CxC,EAAEwC,YAAcN,EAChBlC,EAAEgD,gBAAkBa,EAAK,IAbzB7D,EAAE+B,SAAiB,EACnB/B,EAAEQ,eAAiB,EACnBR,EAAEoD,eACDpD,EAAEqD,cAAgB7B,EAEnBxB,EAAEwC,WAAiBN,EACnBlC,EAAEgD,eAAiBa,GAcf7D,EAAEC,KAAKyC,SACL1C,EAAEK,IAAML,EAAEwC,WAAcxC,EAAExQ,KAE/BwQ,EAAEwC,WAAiBxC,EAAExQ,IAAMwQ,EAAEK,IAC7BL,EAAEgD,eAAiBpD,GAAmB,GAAfI,EAAEwC,aAEfxC,EAAEK,IAAML,EAAEwC,WAAcxC,EAAEpR,MAEpCoR,EAAEwC,WAAiBxC,EAAEpR,IAAMoR,EAAEK,IAC7BL,EAAEgD,eAAiBpD,GAAmB,GAAfI,EAAEwC,cAG3B/I,KAAK6J,QAAQ5D,GAAOwC,GAAQ,IAC7B,GAAC,CAAAlX,IAAA,qBAAA3E,MAGD,WACC,IAEIC,EAFA0Z,EAAMvG,KAAKuG,EACXK,EAAML,EAAEK,IAGZ,GAAKL,EAAEW,WAAaX,EAAEW,UAAUja,OAC/B,IAAMJ,EAAI,EAAGA,EAAI0Z,EAAEW,UAAUja,OAAQJ,IACpC,GAAKuB,GAASmY,EAAEW,UAAUra,GAAGmd,MAAQ5b,GAASwY,GAK7C,OAJAL,EAAE0D,gBAAuB1D,EAAEW,UAAUra,GACrC0Z,EAAE2D,qBAAuBrd,EAGlBA,CAGX,GAAC,CAAA0E,IAAA,UAAA3E,MAED,SAASyd,GAAgC,IAKpCrd,EACAsd,EACAzd,EACA2b,EARe+B,EAAWjc,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,IAC7BiY,EAAUvG,KAAKuG,EAEfiE,EADUjE,EAAEwC,YAAcxC,EAAEK,KAAOL,EAAEQ,gBAAkB,IAEvD0D,EAAU,EAMd,GAAKlE,EAAEW,WAAaX,EAAEW,UAAUja,OAAS,CAGxC,GAAKsZ,EAAEC,KAAKmB,WACX,KAASa,EAAOjC,EAAEC,KAAKmB,WAAW6C,EAAM,IACvCA,GAAQhC,EACRiC,GAAWjC,EAIb,IAAM3b,EAAI,EAAGA,EAAI0Z,EAAEW,UAAUja,UACvBsZ,EAAEW,UAAUra,GAAGmd,GAAKQ,GADW3d,KAkBrC,GAdKA,IAAM0Z,EAAEW,UAAUja,OACtBJ,IAEe,IAANA,EACTA,EAAI,GAGJyd,GAAO/D,EAAEW,UAAUra,GAAGmd,GAAKzD,EAAEW,UAAUra,EAAI,GAAGmd,IAAM,EACpDM,EAAM/D,EAAEW,UAAUra,EAAI,GAAGmd,GAAMM,IAAQ/D,EAAEW,UAAUra,GAAG6d,SAAW,IAAMnE,EAAEW,UAAUra,EAAI,GAAG6d,SAAW,IAEhGL,EAAYA,EAAY,GAAKxd,IACxB2d,EAAOF,GAAMzd,KAGnB0Z,EAAEC,KAAKmE,SAAWrY,GAAGzE,OAAO0Y,EAAE2D,sBAAwB,CAC1D,IAAItR,EAAK/L,EAAI0Z,EAAE2D,qBAEV/D,GAAIvN,GAAK2N,EAAEC,KAAKmE,UAEpB9d,EAAI0Z,EAAE2D,qBAAuBjE,GAAOrN,GAAK2N,EAAEC,KAAKmE,QAElD,CACA3d,EAASuZ,EAAEW,UAAUra,GAAGmd,GAEnBzD,EAAEC,KAAKgB,UACXjB,EAAEC,KAAKgB,SAAS3a,EAAG0Z,EAAEW,UAAUra,IAGhC0Z,EAAEQ,eAAsBR,EAAEQ,gBAAkB,EAC5C/Z,EAAwBA,GAAUuZ,EAAEK,IAAML,EAAEQ,gBAAkB0D,EAC9DlE,EAAEgD,eAAsBxT,GAAI,GAAIZ,GAAIoV,EAAapE,GAAKI,EAAEgD,eAAiBhD,EAAEwC,WAAc/b,MAAa,EAEtGuZ,EAAEwC,WAAsB/b,EACxBuZ,EAAEyC,eAAsBzC,EAAEW,UAAUra,GACpC0Z,EAAEc,oBAAsBxa,CACzB,MAECG,KAAYuZ,EAAEK,IAAML,EAAEQ,gBAEhBR,EAAEC,KAAKoE,WACP5d,EAASuZ,EAAExQ,KACf/I,EAAmBuZ,EAAExQ,IAAM/I,EAC3BuZ,EAAEgD,eAAiBpU,GAAIoV,EAAapE,GAAKI,EAAEgD,eAAiBhD,EAAEwC,WAAc/b,IAC5EuZ,EAAEwC,WAAiB/b,GAEVA,EAASuZ,EAAEpR,MACpBnI,EAAmBuZ,EAAEpR,IAAMnI,EAC3BuZ,EAAEgD,eAAiBpU,GAAIoV,EAAapE,GAAKI,EAAEgD,eAAiBhD,EAAEwC,WAAc/b,IAC5EuZ,EAAEwC,WAAiB/b,GAKvB,GAAC,CAAAuE,IAAA,YAAA3E,MAED,SAAWuI,EAAKY,GACf,IAAIwQ,EAAIvG,KAAKuG,EAEbA,EAAEpR,IAAMA,EACRoR,EAAExQ,IAAMA,CACT,GAAC,CAAAxE,IAAA,YAAA3E,MAED,SAAW2b,GACV,IAAIhC,EAAQvG,KAAKuG,EACbkC,OAA0Bla,IAAlBgY,EAAEmC,YAA4BH,EAAUhC,EAAEmC,YAAc,EAChE9B,GAASL,EAAEwC,YAAc,IAAMxC,EAAEK,KAAOL,EAAEQ,gBAAkB,IAAM0B,EAStE,OAAO7B,GAAOL,EAAEpR,KAAOyR,GAAOL,EAAExQ,GACjC,IAAC,CArc0B,o8BAqc1B8U,IArcmBxE,GAAO,SACX,CACf4C,QAAc,EACdS,cAAc,ICvChB,IAEIoB,GAAOC,GAFPC,GAA2B,IAAIC,SAAS,sDAAb,GAC3BC,GAA0B5Y,IAAAA,MACX6Y,GAAW,GAGxBC,GAaE,SAASC,IACf,IAAIxe,EAAK,EAAMud,EAAKtC,KAAKC,MAAOU,EAAQ2B,EAAKW,GAE7C,IADAA,GAASX,EACDvd,EAAIse,GAASle,OAAQJ,IAC5Bse,GAASte,GAAGye,KAAOzW,KAAKM,IAAIsT,EAAQ0C,GAASte,GAAGye,KAAMH,GAASte,GAAG+N,UAClEuQ,GAASte,GAAGuN,MACX+Q,GAASte,GAAGye,KAAMH,GAASte,GAAG+N,UAG1BuQ,GAASte,GAAGye,MAAQH,GAASte,GAAG+N,WAEpCuQ,GAASte,GAAG0e,IAAMC,WAAWL,GAASte,GAAG0e,IACzCJ,GAAS7G,OAAOzX,EAAG,GAAIA,KAIpBse,GAASle,OACbue,WAAWH,EAAO,IAGlBP,IAAQ,CAEV,EAKoBW,GAAO,SAAAC,GAU3B,SAAAD,EAAa1d,GAAQ,IAAA4d,EAAAC,EAAAC,EAAAjM,EAAAN,IAAA,KAAAmM,GACpB7L,EAAAC,GAAA,KAAA4L,EAASnd,WAAWuc,IAAAjL,EAAA,OATE,CAAC,GAACiL,IAAAjL,EAAA,uBACF,CAAC,GAIxBiL,IAAAjL,EAAA,QACQ,CAAC,GA+yBTiL,IAAAjL,EAAA,sBAEqB,WACpB,IAAgBkM,EAAZvF,EAAI3G,EAAK2G,EAAY3D,EAAK2D,EAAEwF,cAAc9e,OAEzC2S,EAAKoM,aACTC,qBAAqBrM,EAAKoM,aAE3B,IAAM,IAAInf,EAAI,EAAG+V,EAAK/V,EAAGA,MACxBif,EAAUvF,EAAEwF,cAAclf,IACbyb,QAAQnX,EAAEwV,QAAUmF,EAAQxD,QAAQnX,EAAEkX,WAClDyD,EAAQ9e,OAAOkf,aAAeJ,EAAQxD,QAAQnX,EAAEgb,WAE5CL,EAAQxD,QAAQlX,EAAEuV,QAAUmF,EAAQxD,QAAQlX,EAAEiX,WAClDyD,EAAQ9e,OAAOof,YAAcN,EAAQxD,QAAQlX,EAAE+a,UAG1CL,EAAQxD,QAAQnX,EAAEwV,QAAWmF,EAAQxD,QAAQlX,EAAEuV,QAAWmF,EAAQxD,QAAQnX,EAAEkX,SAAYyD,EAAQxD,QAAQlX,EAAEiX,UAC/G9B,EAAEwF,cAAc7W,MAAMrI,EAAG,GACzBA,IACA+V,KAIDhD,EAAKoM,YADM,IAAPpJ,EACeyJ,sBAAsBzM,EAAK0M,oBACvB,IACzB,IAr0BC,IAAI/F,EAAoB3G,EAAK2G,EAAI,CAChCgG,KAAa,CAAC,EACdC,YAAa,CAAC,GAuCX,OArCJjG,EAAEtV,IAAsB,CACvBE,EAAG,IACHC,EAAG,IACHC,EAAG,KAEJuO,EAAK6M,aAAmB,EACxBlG,EAAEmG,SAAsB9M,EAAK8M,SAASC,KAAI/M,GAC1C2G,EAAEqG,QAAsBhN,EAAK7R,MAAM8e,cAAgBtT,IAAAA,YACnDgN,EAAEuG,QAAO7Z,GAAA,CACR8Z,WAAgB,IAChBC,eAAgB,GACZjf,EAAMkf,gBAAkB,CAAC,GAE9B1G,EAAE2G,YAAsB,CAAC,EACzB3G,EAAE4G,UAAsB,CAAC,EACzB5G,EAAE6G,aAAsB,CAAC,EACzB7G,EAAE8G,WAAsB,CAAC,EACzB9G,EAAE+G,oBAAsB,CAAC,EACzB/G,EAAEgH,cAAsB,EACxBhH,EAAEiH,eAAsB,CAAC,EACzBjH,EAAEkH,kBAAsB,CAAC,EACzBlH,EAAEmH,gBAAsBnH,EAAEmH,iBAAmB,CAAC,EAC9CnH,EAAEoH,gBAAsBpH,EAAEoH,iBAAmB,CAAC,EAC9CpH,EAAEqH,gBAAsBrH,EAAEqH,iBAAmB,GAC7CrH,EAAEsH,aAAsBtH,EAAEsH,cAAgB,GAE1CtH,EAAEuH,WAAsB,GACxBvH,EAAEwF,cAAsB,GACxBxF,EAAEwH,oBAA0C,QAAvBpC,EAAG5d,EAAMkf,sBAAc,IAAAtB,OAAA,EAApBA,EAAsBoC,oBAC1B,QAApBnC,EAAA7d,EAAMkf,sBAAc,IAAArB,GAAK,QAALC,EAApBD,EAAsBoC,WAAG,IAAAnC,GAAzBA,EAAAzS,KAAAwS,EAAAhM,GAEAoL,IAAiBlK,OAAO2D,iBACvB,SACA7E,EAAK2G,EAAE0H,SAAW,SAAE/L,GAAO,IAAAgM,EAAAC,EAC1BvO,EAAKwO,aACLxO,EAAKyO,mBACI,QAATH,EAAA3H,EAAEqG,eAAO,IAAAsB,GAAS,QAATA,EAATA,EAAWpC,eAAO,IAAAoC,GAAiB,QAAjBC,EAAlBD,EAAoBI,uBAAe,IAAAH,GAAnCA,EAAA/U,KAAA8U,EAAsChM,EACvC,GAAGtC,CACL,CAEA,OAAAE,IAAA2L,EAAAC,GAAA3L,IAAA0L,EAAA,EAAAla,IAAA,WAAA3E,MAWA,SAAUkS,GAAwD,IAApDyP,EAAMjgB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGkgB,EAAIlgB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAQ0f,EAAG1f,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EAAEkgB,EAAKngB,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EAAEmgB,EAAQpgB,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EAG1DgY,EAAevG,KAAKuG,EACpBrW,EAAe,CAAC,EAEhBgC,EAAW,CAAC,EAyHhB,OAxHMqU,EAAE4G,UAAUrO,IACjByH,EAAEqH,gBAAgB3Y,KAAK6J,IAEnByH,EAAE4G,UAAUrO,KAChB4P,GACInI,EAAE8G,WAAWvO,KAAQ0P,GAASG,IAAUH,EAAMjI,EAAE8G,WAAWvO,KAC3DyH,EAAEkH,kBAAkB3O,KAAQyP,GAAWI,IAAUJ,EAAQhI,EAAEkH,kBAAkB3O,IA0DvEyH,EAAE4G,UAAUrO,GAoDtBd,GAASuI,EAAE6G,aAAatO,GAAKyH,EAAE2G,YAAYpO,GAAKyH,EAAEiG,YAAY1N,GAAKyH,EAAEmH,gBAAgB5O,GAAKyH,EAAEtV,MAjD5FsV,EAAE8G,WAAWvO,GAAM0P,EACnBD,EAAmBA,GAAU,CAAC,EAC9BC,EAAmBA,GAAQ,CAAC,EAE5BjI,EAAE4G,UAAUrO,IAAY,EACxByH,EAAEiG,YAAY1N,GAAUyH,EAAEiG,YAAY1N,IAAO,CAAC,EAC9CyH,EAAEmH,gBAAgB5O,GAAMyH,EAAEmH,gBAAgB5O,IAAO,CAAC,EAElDyH,EAAEkH,kBAAkB3O,GAAMyP,EAE1BhI,EAAE6G,aAAatO,GAAMyH,EAAE6G,aAAatO,IAAO,CAAC,EACvCyH,EAAEiH,eAAe1O,IACrByP,EAAMtb,GAAAA,GAAA,GAAQsb,GAAWrQ,GAAWsQ,EAAMte,EAAcgC,EAAUqU,EAAEmH,gBAAgB5O,GAAKyH,EAAEiG,YAAY1N,IAAK,GAAO,IAGnH5R,OAAOC,KAAK+E,GACLlD,SACA,SAAAuC,GAAG,OAAKgV,EAAE6G,aAAatO,GAAIvN,GAAOe,IAAAA,OAAUiU,EAAE6G,aAAatO,GAAIvN,IAC3BgV,EAAE6G,aAAatO,GAAIvN,GAAOW,EAASX,GACnC,CAAC,IAG5CrE,OAAOC,KAAK+C,GACLlB,SACA,SAAAuC,GAAG,OAAKgV,EAAE6G,aAAatO,GAAIvN,IAAQrB,EAAaqB,EAAI,MAI3Dgd,EAAMtb,GAAAA,GAAA,GAAQsb,GAAWrQ,GAAWsQ,EAAMte,EAAcgC,EAAUqU,EAAEmH,gBAAgB5O,GAAKyH,EAAEiG,YAAY1N,KAIvG5O,EAAehD,OAAOI,OAAO,CAAC,EAAG4E,EAAUhC,GAAgB,CAAC,GAI5DhD,OAAOC,KAAK+C,GACLlB,SACA,SAAAuC,GAAG,OAAKgV,EAAE6G,aAAatO,GAAIvN,IAAQgV,EAAE6G,aAAatO,GAAIvN,IAAQ,GAAKrB,EAAaqB,EAAI,KAG5FgV,EAAEiH,eAAe1O,GAAG7L,GAAA,GAAQ/C,GAC5BqW,EAAE2G,YAAYpO,GAASyP,EAEvBvQ,GADA9N,EAAuBqW,EAAE6G,aAAatO,GACfyP,EAAQhI,EAAEiG,YAAY1N,GAAKyH,EAAEmH,gBAAgB5O,GAAKyH,EAAEtV,OApG3EsV,EAAE8G,WAAWvO,GAAa0P,EAC1BjI,EAAEkH,kBAAkB3O,GAAMyP,EAE1BC,EAA0BA,GAAQ,CAAC,EAGnCD,EAAMtb,GAAAA,GAAA,GAJNsb,EAA0BA,GAAU,CAAC,GAIZrQ,GAAWsQ,EAAMte,EAAcgC,EAAUqU,EAAEmH,gBAAgB5O,GAAKyH,EAAEiG,YAAY1N,IAAK,GAAO,IAKnH5R,OAAOC,KAAKoZ,EAAEiH,eAAe1O,IACtB9P,SACA,SAAAuC,GAAG,OAAKgV,EAAE6G,aAAatO,GAAIvN,IAAQgV,EAAEiH,eAAe1O,GAAIvN,EAAI,IAGnErE,OAAOC,KAAK+E,GACLlD,SACA,SAAAuC,GAAG,OAAKgV,EAAE6G,aAAatO,GAAIvN,GAAOe,IAAAA,OAAUiU,EAAE6G,aAAatO,GAAIvN,IAC3BgV,EAAE6G,aAAatO,GAAIvN,GACnBW,EAASX,EAAI,IAGxDrE,OAAOC,KAAK+C,GACLlB,SACA,SAAAuC,GAAG,OAAKgV,EAAE6G,aAAatO,GAAIvN,IAAQrB,EAAaqB,EAAI,IAG3DrE,OAAOC,KAAKoZ,EAAEiH,eAAe1O,IACtB9P,SACA,SAAAuC,GACCsM,GAAoBtM,EAAKA,EAAKgV,EAAE6G,aAAatO,GAAKyH,EAAE2G,YAAYpO,GAAKyH,EAAEmH,gBAAgB5O,GAAKyH,EAAEiG,YAAY1N,GAC3G,IAEP5R,OAAOC,KAAKoZ,EAAE2G,YAAYpO,IACnB9P,SACA,SAAAuC,IACMgV,EAAE2G,YAAYpO,GAAIvN,IAASgV,EAAEiG,YAAY1N,GAAIvN,IAASgd,EAAOhd,WAC1DgV,EAAE2G,YAAYpO,GAAIvN,EAC3B,IAEPrE,OAAOC,KAAKohB,GACLvf,SACA,SAAAuC,GACMgV,EAAE2G,YAAYpO,GAAIvN,KAASgd,EAAOhd,IAASgV,EAAEiG,YAAY1N,GAAIvN,KACjEgV,EAAE2G,YAAYpO,GAAIvN,GAAOgd,EAAOhd,GAClC,IAEPgV,EAAEiH,eAAe1O,GAAG7L,GAAA,GAAQ/C,GAE5B8N,GAASuI,EAAE6G,aAAatO,GAAKyH,EAAE2G,YAAYpO,GAAKyH,EAAEiG,YAAY1N,GAAKyH,EAAEmH,gBAAgB5O,GAAKyH,EAAEtV,KAC5F+O,KAAK4O,gBAAgB9P,GAAI,IA0DrB2P,EACG,CACNI,MAAK5b,GAAA,GAAOsT,EAAE2G,YAAYpO,KAGpB,CACN+P,MAAK5b,GAAA,GAAOsT,EAAE2G,YAAYpO,IAC1BkP,IAAO1b,IAAAA,SAAY0b,GACV,SAAA/J,GAAI,OAAKsC,EAAEgG,KAAKzN,GAAMkP,EAAI/J,EAAK,EAC/B+J,EACE,SAAA/J,GAAI,OAAKsC,EAAEgG,KAAKzN,GAAMkP,EAAIlC,QAAU7H,CAAI,EACxC,SAAAA,GAAI,OAAKsC,EAAEgG,KAAKzN,GAAMmF,CAAI,EAExC,GAEA,CAAA1S,IAAA,aAAA3E,MAIA,SAAYkS,GACNkB,KAAKuG,EAAE4G,UAAUrO,KACrBkB,KAAKuG,EAAEqH,gBAAgBtJ,OAAOtE,KAAKuG,EAAEqH,gBAAgBpb,QAAQsM,GAAK,UAC3DkB,KAAKuG,EAAE4G,UAAUrO,UACjBkB,KAAKuG,EAAEiG,YAAY1N,UACnBkB,KAAKuG,EAAEmH,gBAAgB5O,UACvBkB,KAAKuG,EAAE8G,WAAWvO,UAClBkB,KAAKuG,EAAEiH,eAAe1O,UACtBkB,KAAKuG,EAAE2G,YAAYpO,UACnBkB,KAAKuG,EAAE6G,aAAatO,UACpBkB,KAAKuG,EAAEgG,KAAKzN,GAErB,GAEA,CAAAvN,IAAA,iBAAA3E,MAIA,WACgB,IADa,IAAAiX,EAAA,KACxB0C,EAAIvG,KAAKuG,EAAEvM,EAAA1L,UAAArB,OADG6hB,EAAO,IAAA5U,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAP2U,EAAO3U,GAAA7L,UAAA6L,GAEzB2U,EAAQ9f,SACP,SAAEsN,GACDuH,EAAKkL,SAASzS,EAAGiK,EAAEkH,kBAAkBnR,GAAIiK,EAAE8G,WAAW/Q,GAAI,KAAM,KAAM,MAAM,EAC7E,IAED0D,KAAKqO,kBACN,GAEA,CAAA9c,IAAA,iBAAA3E,MAOA,SAAgBI,EAAQ6hB,EAAOG,GAAW,IACVC,EADUC,EAAA,KACrC3I,EAAIvG,KAAKuG,EAGb,OAAK2E,GAAQle,IAAWke,GAAQ2D,GACxB7hB,EAAO+J,KAAI,SAAEoY,EAAGtiB,GAAC,OAAMqiB,EAAKE,eAAeD,EAAGN,EAAMhiB,GAAImiB,EAAS,IACpE9D,GAAQle,GACLA,EAAO+J,KAAI,SAAEoY,GAAC,OAAMD,EAAKE,eAAeD,EAAGN,EAAOG,EAAS,IAE7DzI,EAAE6G,aAAapgB,IAGrBiiB,EAAU/Q,GAAW2Q,EAAOtI,EAAE6G,aAAapgB,GAXhB,CAAC,EAWkCuZ,EAAEmH,gBAAgB1gB,GAASuZ,EAAEiG,YAAYxf,IACvGE,OAAOI,OAAOiZ,EAAE2G,YAAYlgB,GAASiiB,GACrC/hB,OAAOI,OAAOiZ,EAAEkH,kBAAkBzgB,GAASiiB,GAC3CjR,GAASuI,EAAE6G,aAAapgB,GAASuZ,EAAE2G,YAAYlgB,GAASuZ,EAAEiG,YAAYxf,GAASuZ,EAAEmH,gBAAgB1gB,GAASuZ,EAAEtV,UAC5G+O,KAAK4O,gBAAgB5hB,GAAQ,IANrByD,QAAQgE,KAAK,6DAA8DzH,EAAQ,IAO5F,GAMA,CAAAuE,IAAA,kBAAA3E,MAKA,SAAiBkS,GAAK,IAAAuQ,EACrB,OAAK/c,IAAAA,QAAW0N,KAAKuG,EAAEgG,KAAKzN,IACpBkB,KAAKuG,EAAEgG,KAAKzN,GACK,QAAfuQ,EAAArP,KAAKuG,EAAEgG,KAAKzN,UAAG,IAAAuQ,GAAG,QAAHA,EAAfA,EAAiB9I,SAAC,IAAA8I,GAAS,QAATA,EAAlBA,EAAoBzC,eAAO,IAAAyC,GAA3BA,EAA6BvD,SAAWxZ,IAAAA,QAAW0N,KAAKuG,EAAEgG,KAAKzN,GAAIyH,EAAEqG,QAAQd,SAC/E9L,KAAKuG,EAAEgG,KAAKzN,GAAIyH,EAAEqG,QAAQd,aACvB9L,KAAKuG,EAAE4G,UAAUrO,IAC3BrO,QAAQgE,KAAK,uCAAwCqK,GACvD,GAEA,CAAAvN,IAAA,cAAA3E,MAIA,WACC,IACC,OAAOoT,KAAKuG,EAAEqG,SAAW5M,KAAKuG,EAAEqG,QAAQd,OACzC,CAAE,MAAQ5J,GACT,OAAOlC,KAAKuG,EAAEqG,SAAW5M,KAAKuG,EAAEqG,QAAQd,OACzC,CACD,GAMA,CAAAva,IAAA,WAAA3E,MAOA,SAAU0iB,EAAMC,GAA2B,IACtCC,EAIAC,EALsCC,EAAA,KAArBC,IAAWrhB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,KAAAA,UAAA,GAG5BiY,EAAWvG,KAAKuG,EAChBrU,EAAW,CAAC,EA0BhB,GAvBKgZ,GAAQoE,GACZE,EAAKF,GAGLE,EAAUF,EAAKM,MACLN,EAAKO,SAGTL,aAAc5O,KAEpB4O,EAAKhR,GAAUgR,EAAItd,EAAU8N,KAAKuG,EAAEmH,gBAAiB1N,KAAKuG,EAAEiG,aAC5DgD,EAAK,IAAI5O,GAAU4O,EAAIxP,KAAKuG,EAAE6G,cAC9BlgB,OAAOC,KAAK+E,GACLlD,SACA,SAAA8P,GAAE,OACD4Q,EAAKnJ,EAAE6G,aAAatO,IACpB5R,OAAOI,OAAOoiB,EAAKnJ,EAAE6G,aAAatO,GAAG7L,GAAAA,GAAA,GACjCf,EAAS4M,IACT4Q,EAAKnJ,EAAE6G,aAAatO,OACjB2Q,EAAOhf,QAAQgE,KAAK,0CAA2CqK,EAAI,OAAQ2M,EAAQqE,eAAgB,EAAK,MAInHL,EAIL,OAAO,IAAIM,SACV,SAAAC,GAGCR,EAAGS,IAAIP,EAAKnJ,EAAE6G,cAAc,WAC3B,IAAIvgB,EAAI6iB,EAAKnJ,EAAEsH,aAAarb,QAAQgd,IACzB,GAAN3iB,GACJ6iB,EAAKnJ,EAAEsH,aAAavJ,OAAOzX,EAAG,GAE/BK,OAAOC,KAAK+E,GACLlD,SACA,SAAA8P,GACC5R,OAAOC,KAAK+E,EAAS4M,IACd9P,SACA,SAAAkhB,GAECrS,GAAoBqS,EAAMA,EAAM3J,EAAE6G,aAAatO,GAAKyH,EAAE2G,YAAYpO,GAAKyH,EAAEmH,gBAAgB5O,GAAKyH,EAAEiG,YAAY1N,GAAK6Q,EAClH,GACR,IACPH,EAAGW,UACHH,EAAQR,EACT,IAEAE,EAAKnJ,EAAEsH,aAAa5Y,KAAKua,GAEnBE,EAAKnJ,EAAE6J,OACZV,EAAKnJ,EAAE6J,MAAO,EACd/D,sBAAsBqD,EAAKnJ,EAAEmG,SAAWgD,EAAKnJ,EAAEmG,UAAYgD,EAAKhD,SAASC,KAAK+C,IAEhF,IACCH,MAAK,SAAAC,GAAE,OAAKD,GAAQA,EAAKC,EAAG,GAE/B,GAEA,CAAAje,IAAA,kBAAA3E,MAMA,SAAiBkS,EAAI/H,EAAKsZ,GAAQ,IAAAC,EAAA,KAC7B7e,EAAO,CAAC,EAAGS,EAAW,CAAC,EAC3BgM,GAAWnH,EAAKtF,EAAMS,EAAU8N,KAAKuG,EAAEmH,gBAAgB5O,GAAKkB,KAAKuG,EAAEiG,YAAY1N,IAAK,GACpF5R,OAAOC,KAAKsE,GAAMsF,KACjB,SAAEwZ,GAAC,OAAMD,EAAK/J,EAAE6G,aAAatO,GAAIyR,KAAOF,GAASC,EAAK/J,EAAE6G,aAAatO,GAAIyR,IAAMre,EAASqe,IAAM9e,EAAK8e,EAAE,GAEvG,GAEA,CAAAhf,IAAA,WAAA3E,MAWA,SAAU4jB,EAAGjZ,EAOV8Y,GAAQ,IAAAI,EAAAC,EAAAC,EAAAC,EAAA,KANQC,EAAQtZ,EAA1B+Q,QAAOwI,EAAAvZ,EACPwZ,eAAkBC,OAAe,IAAAF,EAAG,EAACA,EACnBG,EAAiB1Z,EAAnC2Z,iBACkBC,EAAiB5Z,EAAnC6Z,iBACAC,EAAe9Z,EAAf8Z,gBACAC,EAAW/Z,EAAX+Z,YAII/K,EAAmBvG,KAAKuG,EACxBgL,EAAmBvR,KAAKwR,KAAKhB,GAC7BU,EAAmBD,EACnBQ,GAAoBpB,GAASkB,EACRA,EAAIE,WACiB,QAArBhB,EAAAlK,EAAEwH,2BAAmB,IAAA0C,OAAA,EAArBA,EAAwBD,KAAQa,GAAmBH,GAAoBA,EAAiB/b,KAAO,EACpH4b,EAAmBlc,KAAKkB,IAAIwb,GAAOA,EAAIR,gBAAkB,EAAGC,GAC5DI,EAAmBvc,KAAKkB,IAAIwb,GAAOA,EAAIH,kBAAoB,EAAGD,GAC9DO,EAAmBH,EAAMA,EAAIG,UAAYD,EACzCnJ,EACCiJ,EAAMA,EAAIjJ,QAAU,IAAIjC,GAAOpT,GAAAA,GAAC,CACCgU,UAAW4J,GACPA,GAAY,CAAC,GAAC,IAClBjkB,MAAO6kB,KAEzCE,EAAmB,CAElBL,YAAAA,EACA1Q,UAAW2Q,GAAOA,EAAI3Q,WAAa,GACnC6Q,UAAAA,EACAC,UAAAA,EACApJ,QAAAA,EACA8I,iBAAAA,EACAF,iBAAAA,EACAH,eAAAA,EACAa,SAAW,SAAEhL,EAAKwD,EAAIyH,EAAMC,GAC3B,OAAOlB,EAAKgB,SAAShL,EAAKwD,EAAIoG,EAAKqB,EAAMC,EAC1C,GAGL9R,KAAKwR,KAAKhB,GAAOmB,GAChBd,IAAavI,EAAQ/B,EAAEU,UAAW,GAClC4J,GAAavI,IAAYA,EAAQ3B,SAAW2B,EAAQ/B,EAAEK,IAAM6K,GAC5DZ,GAAavI,GAAYA,EAAQyJ,WAAWlB,GACxCvI,GAAW4I,EACE,QAAjBR,EAAApI,EAAQ0J,iBAAS,IAAAtB,GAAjBA,EAAAtX,KAAAkP,EAAoB4I,EAAiB/b,IAAK+b,EAAiBnb,KAE3DuS,IAA4B,QAArBqI,EAAIrI,EAAQ0J,iBAAS,IAAArB,GAAjBA,EAAAvX,KAAAkP,EAAoB,EAAGyI,GACpC,GAAC,CAAAxf,IAAA,WAAA3E,MAED,WAA4B,IAAAqlB,EAAA,KAAlBzB,EAAGliB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,UACXiY,EAAIvG,KAAKuG,EAiBb,OAfAvG,KAAKwR,KAAKhB,GAAOxQ,KAAKwR,KAAKhB,IAAQ,CAClC5P,UAAkB,GAClB6Q,UAAkBlL,EAAEuG,QAAQoF,kBAAoB3L,EAAEuG,QAAQoF,iBAAiB1B,IAAQ,EACnFkB,UAAkB,EAClBN,iBAAkB,EAClBL,eAAkB,EAClBzI,QAAkB,IAAIjC,GAAOpT,GAAC,CACCrG,MAAO2Z,EAAEuG,QAAQoF,kBAAoB3L,EAAEuG,QAAQoF,iBAAiB1B,IAAQ,GACpEjK,EAAEuG,QAAQ0E,MAAQjL,EAAEuG,QAAQ0E,KAAKhB,IAAQjK,EAAEuG,QAAQ0E,KAAKhB,GAAKlI,SAAW,CAAC,IAE5GsJ,SAAkB,SAAEhL,EAAKwD,EAAIyH,EAAMC,GAClC,OAAOG,EAAKL,SAAShL,EAAKwD,EAAIoG,EAAKqB,EAAMC,EAC1C,GAGM9R,KAAKwR,KAAKhB,EAClB,GAEA,CAAAjf,IAAA,eAAA3E,MAGA,SAAc4jB,GAAM,IAAA2B,EAAA,KACHC,GAARpS,KAAKuG,EAAW,CAAC,GAKzB,OAJAvG,KAAKwR,MAAQtkB,OAAOC,KAAK6S,KAAKwR,MACVxiB,SACA,SAAAwhB,GAAG,OAAK4B,EAAM5B,GAAO2B,EAAKX,KAAKhB,GAAKkB,WAAaS,EAAKX,KAAKhB,GAAKiB,SAAS,IAEtFW,CACR,GAAC,CAAA7gB,IAAA,eAAA3E,MAED,WAAiC,IAAnBylB,EAAI/jB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,UAEpB,OADQ0R,KAAKuG,EACNvG,KAAKwR,KAAKa,GACRrS,KAAKwR,KAAKa,GAAMX,WAAa1R,KAAKwR,KAAKa,GAAMZ,UAC7C,CACV,GAEA,CAAAlgB,IAAA,WAAA3E,MAQA,SAAU0lB,GAAkD,IAAAC,EAAA,KAA1CC,EAAElkB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAAGkiB,EAAGliB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,UAAWujB,EAAIvjB,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EAAEujB,EAAQxjB,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EACpDgY,EAAIvG,KAAKuG,EACb,OAAMyE,GAIC,IAAI+E,SACT,SAAEC,EAASyC,GACX,GAAKF,EAAKf,MAAQe,EAAKf,KAAKhB,GAAO,CAClC,IAoBWkC,EAAAC,EAE0BC,EAtBjCC,EAASN,EAAKf,KAAKhB,GAAKkB,UACxBoB,EAAS,SAAAlM,GAOgB,IAAAmM,EAAAC,EAJxBpM,KAAqC,IAANA,GAAgB,IAC/C2L,EAAKf,KAAKhB,GAAKkB,UAAYa,EAAKf,KAAKhB,GAAKiB,UAAY7K,IAG/CA,IAAQiM,IACdN,EAAKU,gBAAgBrM,EAAK4J,GACjB,QAATuC,EAAAxM,EAAEqG,eAAO,IAAAmG,GAAS,QAATA,EAATA,EAAWjH,eAAO,IAAAiH,GAAoB,QAApBC,EAAlBD,EAAoBG,0BAAkB,IAAAF,GAAtCA,EAAA5Z,KAAA2Z,IAA2CnM,EAAK4J,IAEjD+B,EAAKlE,kBACN,EAOJ,GALAiE,EAASzd,KAAKkB,IAAI,EAAGuc,GACrBA,EAASzd,KAAKM,IAAImd,EAAQC,EAAKf,KAAKhB,GAAKO,gBAAkB,GAE3DwB,EAAKf,KAAKhB,GAAKkB,UAAYY,EAErBE,EAYLD,EAAKY,eAAe3C,EAAK8B,EAAQE,EAAIxM,EAAS6L,GAAOC,EAAUgB,EAAQ9C,QAX9D,QAAT0C,EAAAH,EAAKf,YAAI,IAAAkB,GAAO,QAAPA,EAATA,EAAYlC,UAAI,IAAAkC,GAAS,QAATA,EAAhBA,EAAkBpK,eAAO,IAAAoK,GAAzBA,EAA2BI,OAAOR,GACpB,QAAdK,EAAKJ,EAAKf,YAAI,IAAAmB,GAAO,QAAPA,EAATA,EAAYnC,UAAI,IAAAmC,GAAS,QAATA,EAAhBA,EAAkBrK,eAAO,IAAAqK,GAAzBA,EAA2BpM,IAC/B+L,EAAkB,QAAZM,EAAGL,EAAKf,YAAI,IAAAoB,GAAO,QAAPA,EAATA,EAAYpC,UAAI,IAAAoC,GAAS,QAATA,EAAhBA,EAAkBtK,eAAO,IAAAsK,OAAA,EAAzBA,EAA2BrM,EAAEK,KAEvC2L,EAAKf,KAAKhB,GAAK5P,UAAU5R,SACxB,SAAAwgB,GAAE,OAAIA,EAAG4D,KAAKd,EAAQ/L,EAAE6G,cAAc,EAAO0E,EAAS,IAEvDgB,EAAOR,GACPtC,IAMKzJ,EAAE6J,OACP7J,EAAE6J,MAAO,EACT/D,sBAAsB9F,EAAEmG,UAE1B,CACD,IAAI6C,MACJ,SAAAgB,GAAK,IAAA8C,EACK,QAATA,EAAAd,EAAKf,YAAI,IAAA6B,GAAO,QAAPA,EAATA,EAAY7C,UAAI,IAAA6C,GAAS,QAATA,EAAhBA,EAAkB/K,eAAO,IAAA+K,GAAzBA,EAA2B/L,oBAC5B,KAjDA7W,QAAQgE,KAAK,gHACNsb,QAAQC,UAkDjB,GAEA,CAAAze,IAAA,oBAAA3E,MAOA,SAAmB0iB,GAA8B,IAAAgE,EAC5C9D,EAD4C+D,EAAA,KAAxB/C,EAAGliB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,UAE1BiY,EAAWvG,KAAKuG,EAChBrU,EAAW,CAAC,EACZqf,EAAWvR,KAAKwT,SAAShD,GA4C7B,OA1CKtF,GAAQoE,GACZE,EAAKF,GAGLE,EAAOF,EAAKM,MACLN,EAAKriB,QAINuiB,aAAc5O,KACpB4O,EAAKhR,GAAUgR,EAAItd,EAAU8N,KAAKuG,EAAEmH,gBAAiB1N,KAAKuG,EAAEiG,cAE5DgD,EAAc,IAAI5O,GAAU4O,EAAIjJ,EAAE6G,eAC/Blb,SAAWA,EAEdhF,OAAOC,KAAK+E,GACLlD,SACA,SAAA8P,GACCyH,EAAEiH,eAAe1O,GAAMyH,EAAEiH,eAAe1O,IAAO,CAAC,EAEhDyH,EAAE6G,aAAatO,GAAMyH,EAAE6G,aAAatO,IAAO,CAAC,EAC5C5R,OAAOI,OAAOimB,EAAKhN,EAAE6G,aAAatO,GAAG7L,GAAAA,GAAA,GACjCf,EAAS4M,IACTyU,EAAKhN,EAAE6G,aAAatO,IAEzB,KAORyS,EAAI3Q,UAAU3L,KAAKua,GACnB+B,EAAIE,UAAiBF,EAAIE,WAAa,EACtCF,EAAIR,eAAiBQ,EAAIR,gBAAkB,EAC3CQ,EAAIR,eAAiBlc,KAAKkB,IAAIwb,EAAIR,eAAgBvB,EAAG5U,UAE/C2W,EAAIL,kBACE,QAAXoC,EAAA/B,EAAIjJ,eAAO,IAAAgL,GAAXA,EAAatB,UAAU,EAAGT,EAAIR,gBAE/BvB,EAAG4D,KAAK7B,EAAIE,UAAWzR,KAAKuG,EAAE6G,cAAc,GAAO,GACnDpN,KAAKqO,mBACEmB,CACR,GAEA,CAAAje,IAAA,mBAAA3E,MAKA,SAAkB4iB,GAAsB,IACrBiE,EAGFC,EAJKlD,EAAGliB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,UACvBiY,EAAMvG,KAAKuG,EACXgL,EAAMvR,KAAKwT,SAAShD,GACpB3jB,EAAM0kB,EAAI3Q,UAAUpO,QAAQgd,IACpB,IAAP3iB,IAGJ0kB,EAAI3Q,UAAU0D,OAAOzX,EAAG,GACxB0kB,EAAIR,eAAiBlc,KAAKkB,IAAGqE,MAARvF,KAAI8G,IAAQ4V,EAAI3Q,UAAU7J,KAAI,SAAA4c,GAAE,OAAIA,EAAG/Y,QAAQ,KAACP,OAAA,CAAE,KACjEkX,EAAIL,kBACE,QAAXwC,EAAAnC,EAAIjJ,eAAO,IAAAoL,GAAXA,EAAa1B,UAAU,EAAGT,EAAIR,gBAAkB,GAEjDvB,EAAG4D,KAAK,EAAGpT,KAAKuG,EAAE6G,cAAc,GAAO,GAGvClgB,OAAOC,KAAKqiB,EAAGtd,UACRlD,SACA,SAAA8P,GACC5R,OAAOC,KAAKqiB,EAAGtd,SAAS4M,IACjB9P,SACA,SAAAkhB,GAECrS,GAAoBqS,EAAMA,EAAM3J,EAAE6G,aAAatO,GAAKyH,EAAE2G,YAAYpO,GAAKyH,EAAEmH,gBAAgB5O,GAAKyH,EAAEiG,YAAY1N,GAK7G,GACR,WACA0Q,EAAGtd,SACVsd,EAAGW,UACHsD,GAAQ,EACRzT,KAAKqO,qBAELoF,GAAShjB,QAAQgE,KAAK,kCAAmC+b,EAC3D,GAEA,CAAAjf,IAAA,iBAAA3E,MAUA,SAAgB4jB,EAAKoD,EAAIxJ,GAA0C,IAAAyJ,EAAA,KAAtCC,EAAMxlB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,SAAA6C,GAAC,OAAIA,CAAC,EAAE2gB,EAAQxjB,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EAAEwlB,EAAIzlB,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EAAEgd,EAAEjd,UAAArB,OAAA,EAAAqB,UAAA,QAAAC,EAC3DoM,EAASqF,KAAKwR,KAAKhB,GAAKiB,UACxBxkB,EAAS2mB,EAAKjZ,EAElBwQ,GAASlW,KACR,CACCmF,MAAU,SAAEwM,EAAK7Q,GAChB,IAC2Bie,EAAAC,EAGUC,EAJjC/iB,EAAKwJ,EAAQmZ,EAAOlN,EAAM7Q,GAAQ9I,EACjC4mB,EAAKtN,EAAEgH,eAEF,QAATyG,EAAAH,EAAKrC,YAAI,IAAAwC,GAAO,QAAPA,EAATA,EAAYxD,UAAI,IAAAwD,GAAS,QAATA,EAAhBA,EAAkB1L,eAAO,IAAA0L,GAAzBA,EAA2BlB,OAAO3hB,GACpB,QAAd8iB,EAAKJ,EAAKrC,YAAI,IAAAyC,GAAO,QAAPA,EAATA,EAAYzD,UAAI,IAAAyD,GAAS,QAATA,EAAhBA,EAAkB3L,eAAO,IAAA2L,GAAzBA,EAA2B1N,IAC/BpV,EAAa,QAAZ+iB,EAAGL,EAAKrC,YAAI,IAAA0C,GAAO,QAAPA,EAATA,EAAY1D,UAAI,IAAA0D,GAAS,QAATA,EAAhBA,EAAkB5L,eAAO,IAAA4L,OAAA,EAAzBA,EAA2B3N,EAAEK,KAElCiN,EAAKrC,KAAKhB,GAAK5P,UAAU5R,SACxB,SAAAwgB,GAAE,OAAIA,EAAG4D,KAAKjiB,EAAG0iB,EAAKtN,EAAE6G,cAAc,EAAO0E,EAAS,IAEvDiC,GAAQA,EAAK5iB,GAEf,EACAyJ,SAAUwP,EACVkB,KAAU,EACVC,GAAAA,IAIIT,KACLA,IAAS,EACTC,GAASjD,KAAKC,MAEdyD,WAAWJ,GAAc,IAE3B,GAEA,CAAA7Z,IAAA,wBAAA3E,MAIA,WAAwB,IAAAunB,EACnB5N,EAAIvG,KAAKuG,EACb,QAAOA,EAAEqG,SACFrG,EAAEqG,QAAQd,SACVvF,EAAEqG,QAAQd,QAAQsI,yBAClBD,EAAA5N,EAAEqG,QAAQd,SAAQsI,sBAAqBha,MAAA+Z,EAAI7lB,UACnD,GAEA,CAAAiD,IAAA,YAAA3E,MAMA,SAAWynB,EAAQC,GAClB,IAAIC,EAAWvU,KAAKwU,qBAGpB,OAFAD,EAAKF,GAAUE,EAAKF,IAAW,GAC/BE,EAAKF,GAAQpf,KAAKqf,GACX,WACN,IAAIG,EAAQF,EAAKF,GAAQ7hB,QAAQ8hB,GACjCC,EAAKF,GAAQ/P,OAAOmQ,EAAO,EAC5B,CACD,GAIA,CAAAljB,IAAA,gBAAA3E,MAEA,SAAega,EAAKyN,GACnB,IAAIK,EAAW1U,KAAKwU,qBAAqBH,GACrCxnB,EAAW6nB,aAAQ,EAARA,EAAUznB,OACzB,GAAKynB,EACJ,KAAQ7nB,GAAI6nB,IAAW7nB,GAAG+Z,EAC5B,GAEA,CAAArV,IAAA,eAAA3E,MAKA,SAAc2kB,EAAKf,GAAM,IAAAmE,EAAAC,EAAAC,EAAA,KACpB1jB,EAAIogB,EAAIjJ,QAAQ6D,SAAU5F,EAAIvG,KAAKuG,EAEvCvG,KAAKwR,KAAKhB,GAAK5P,UAAU5R,SACxB,SAAAwgB,GACCqF,EAAKrD,KAAKhB,GAAKkB,UAAYmD,EAAKrD,KAAKhB,GAAKiB,UAAYtgB,EACtDqe,EAAG4D,KAAKjiB,EAAG0jB,EAAKtO,EAAE6G,aACnB,IAIQ,QAATuH,EAAApO,EAAEqG,eAAO,IAAA+H,GAAS,QAATA,EAATA,EAAW7I,eAAO,IAAA6I,GAAoB,QAApBC,EAAlBD,EAAoBzB,0BAAkB,IAAA0B,GAAtCA,EAAAxb,KAAAub,EAAyCxjB,EAAGqf,GAC5CxQ,KAAKiT,cAAc9hB,EAAGqf,GACtBxQ,KAAKqO,mBACAkD,EAAIjJ,QAAQ3B,QAAU4K,EAAIjJ,QAAQD,QACtCkJ,EAAIuD,aAAetJ,WAAWxL,KAAKyJ,aAAakD,KAAK3M,KAAMuR,EAAKf,GAAM,IAGtEe,EAAIuD,aAAe,IAGrB,GAEA,CAAAvjB,IAAA,kBAAA3E,MAIA,WAAkB,IAAAmoB,EAAA,KACDpO,GAAR3G,KAAKuG,GAAY,GAMzB,OALAvG,KAAKwR,MACLtkB,OAAOC,KAAK6S,KAAKwR,MACVxiB,SACA,SAAAwhB,GAAG,OAAK7J,EAASA,GAAUoO,EAAKvD,KAAKhB,IAAQuE,EAAKvD,KAAKhB,GAAKlI,QAAQ3B,MAAM,IAE1EA,CACR,GAAC,CAAApV,IAAA,YAAA3E,MAED,SAAWylB,EAAMxc,EAAGsQ,GACTnG,KAAKuG,EAAf,IACIgL,EAAMvR,KAAKwR,MAAQxR,KAAKwR,KAAKa,GAC7BzL,EAAMT,EAAMtQ,EAAI0b,GAAQA,EAAIE,UAAY5b,EAI5C,OAFA+Q,EAAMA,GAAO/R,KAAKC,MAAM8R,IAEhB2K,IAENA,EAAIL,iBAEHtK,GAAO2K,EAAIL,iBAAiB/b,KAAOyR,GAAO2K,EAAIL,iBAAiBnb,IAE/D6Q,GAAO,GAAKA,GAAO2K,EAAIR,eAE3B,GAAC,CAAAxf,IAAA,uBAAA3E,MAED,SAAsBqX,GACrB,IAAIsC,EAAIvG,KAAKuG,EACT1Z,EAAI0Z,EAAEwF,cAAciJ,WAAU,SAAAta,GAAI,OAAKA,EAAK1N,SAAWiX,CAAI,IAkB/D,OAjBY,IAAPpX,IACJ0Z,EAAEwF,cAAc9W,KACf,CACCqT,QAAS,CACRnX,EAAG,IAAIkV,GAAQ,CACCtQ,IAAOkO,EAAKgR,YAAchR,EAAKqB,WAC/B1Y,MAAOqX,EAAKiI,aAE5B9a,EAAG,IAAIiV,GAAQ,CACCtQ,IAAOkO,EAAKiR,aAAejR,EAAKmB,aAChCxY,MAAOqX,EAAKmI,aAG7Bpf,OAASiX,IAEXpX,EAAI0Z,EAAEwF,cAAc9e,OAAS,GAEvBsZ,EAAEwF,cAAclf,GAAGyb,OAE3B,GAAC,CAAA/W,IAAA,aAAA3E,MAgCD,SAAYkS,GACXkB,KAAKuG,EAAEqG,QAAU9N,CAClB,GAAC,CAAAvN,IAAA,aAAA3E,MAED,WACC,IAAIqX,EAAOjE,KAAKmV,cACXlR,IACJjE,KAAKuG,EAAEtV,IAAImkB,QAAS,EACpBpV,KAAKuG,EAAEtV,IAAIE,EAAS8S,EAAKkB,YACzBnF,KAAKuG,EAAEtV,IAAIG,EAAS6S,EAAKmB,aAE3B,GAAC,CAAA7T,IAAA,WAAA3E,MAED,WACCoT,KAAKqO,mBACArO,KAAKuG,EAAEsH,aAAa5gB,OACxBof,sBAAsBrM,KAAKuG,EAAEmG,UAI7B1M,KAAKuG,EAAE6J,MAAO,CAEhB,GAAC,CAAA7e,IAAA,mBAAA3E,MAED,WACC,GAAKoT,KAAKuG,EAAEgH,aACX,IAAM,IAAWvgB,EAAPH,EAAI,EAAwBA,EAAImT,KAAKuG,EAAEqH,gBAAgB3gB,OAAQJ,IACxEG,EAASgT,KAAKuG,EAAEqH,gBAAgB/gB,GACvBmT,KAAK4O,gBAAgB5hB,EAGjC,GAAC,CAAAuE,IAAA,kBAAA3E,MAED,SAAiBI,EAAQqoB,GACxB,IAAIpR,EAAMqR,EAAOtV,KAAKuV,MAItB,GAHAvV,KAAKuG,EAAE2G,YAAYlgB,IACnBgR,GAASgC,KAAKuG,EAAE6G,aAAapgB,GAASsoB,EAAMtV,KAAKuG,EAAEiG,YAAYxf,GAASgT,KAAKuG,EAAEmH,gBAAgB1gB,GAASgT,KAAKuG,EAAEtV,KAC/GgT,EAAOjE,KAAKwV,gBAAgBxoB,GAChB,CACX,IAAM,IAAI8L,KAAKkH,KAAKuG,EAAE2G,YAAYlgB,QAChBuB,IAAZ+mB,EAAKxc,KACTmL,EAAK4K,MAAM/V,GAAKkH,KAAKuG,EAAE2G,YAAYlgB,GAAQ8L,IAI7C,IAAM,IAAIA,KAAKwc,EACTtV,KAAKuG,EAAE2G,YAAYlgB,GAAQ8E,eAAegH,MACzCuc,GAASC,EAAKxc,KAAOkH,KAAKuG,EAAE2G,YAAYlgB,GAAQ8L,MAEpDmL,EAAK4K,MAAM/V,GAAKkH,KAAKuG,EAAE2G,YAAYlgB,GAAQ8L,GAAKwc,EAAKxc,WAK/Cwc,EAAKxc,GAEf,CAGA,OAAOkH,KAAKuG,EAAE2G,YAAYlgB,EAC3B,GAKA,CAAAuE,IAAA,uBAAA3E,MAEA,WAAuB,IAAA6oB,EAAA,KACXzV,KAAKmV,cACXnV,KAAKuG,EAAEgH,eACXvN,KAAKuG,EAAEgH,cAAe,EACtBzM,OAAO8D,oBAAoB,SAAU5E,KAAKuG,EAAE0H,UAE5C/gB,OAAOC,KAAK6S,KAAKwR,MAAMxiB,SACtB,SAAAwhB,GACCiF,EAAKjE,KAAKhB,GAAKsE,cACfY,aAAaD,EAAKjE,KAAKhB,GAAKsE,aAC7B,KAGFa,GAAAlK,EAAA,gCAAAkK,GAAAlK,EAAA,8BAAAkK,CAA4DrnB,UAC7D,GAAC,CAAAiD,IAAA,oBAAA3E,MAED,WAAoB,IAAAgpB,EAAA,KACfC,EAAU7V,KAAKyG,YAEnBzG,KAAKuG,EAAEuP,UAAW,EACb9V,KAAKuG,EAAEgH,eAEXvN,KAAKoO,aACLpO,KAAKqO,oBAEDwH,EAAQE,iBACPzjB,IAAAA,MAASujB,EAAQE,gBACrB/V,KAAKgW,kBAAkBH,EAAQE,gBAE/B7oB,OAAOC,KAAK0oB,EAAQE,gBACb/mB,SACA,SAAAwhB,GAAG,OAAIoF,EAAKI,kBAAkBH,EAAQE,eAAevF,GAAMA,EAAI,KAOxEmF,GAAAlK,EAAA,6BAAAkK,GAAAlK,EAAA,2BAAAkK,CAAsDrnB,UACvD,GAAC,CAAAiD,IAAA,qBAAA3E,MAED,SAAoBqpB,EAAWC,GAEzBlW,KAAKuG,EAAEgH,eACXvN,KAAKoO,aACLpO,KAAKqO,oBAENsH,GAAAlK,EAAA,8BAAAkK,GAAAlK,EAAA,4BAAAkK,CAAwDrnB,UACzD,GAAC,CAAAiD,IAAA,SAAA3E,MAED,WAAS,IAAAupB,EAAA,KACRC,EAAkCpW,KAAKjS,MAA/BsoB,EAAaD,EAAbC,cAAeC,EAAMF,EAANE,OACvB,OAAO/c,IAAAA,cAACgd,EAAeC,SAAQ,MAE7B,SAAAC,GAEC,OADAN,EAAKO,eAAiBD,EACfld,IAAAA,cAACgd,EAAeI,SAAQ,CAAC/pB,MAAOupB,GACtC5c,IAAAA,cAAC8c,EAAaO,IAAA,GAAKN,EAAM,CAAEtI,IAAKmI,EAAK5P,EAAEqG,QACxBiK,QAASV,KAE1B,GAGH,IAAC,CAr9B0B,CAAS5c,IAAAA,2BClDrC,kBAAiB0T,GAA0C,IAA1B6J,EAAYxoB,UAAArB,OAAA,QAAAsB,IAAAD,UAAA,GAAAA,UAAA,GAAG,MACzCmoB,EAAqBld,IAAAA,WAAiBgd,GACtCQ,EAAqBxd,IAAAA,SACrByd,EAAqBzd,IAAAA,SACrB0d,EAAqB1d,IAAAA,SACpB,kBAA0B,IAAnB0T,GAA2B3a,IAAAA,OAAU2a,EAAe,GAC3D,IAED4J,EAAqBtd,IAAAA,SACpB,WACC,IAAwB,IAAnB0T,EACJ,OAAOwJ,EAER,GAAKnkB,IAAAA,OAAU2a,GAAkB,CAGhC,IAFA,IAAIiK,EAAWT,EAEC,QAARU,EAAAD,SAAQ,IAAAC,GAARA,EAAU5Q,GAAK2Q,EAAS3Q,EAAEuG,QAAQsK,OAASnK,GAAc,KAAAkK,EAChE,IAAKD,EAASR,eAET,CACJjmB,QAAQgE,KAAK,8DAAgEwY,EAAiB,KAC9F,KACD,CAJCiK,EAAWA,EAASR,cAIpB,CAEF,OAAOQ,CACR,CAEA,IAAIG,EAAmB,IAAI5L,GAAQ,CACCoB,aAAckK,EACd9J,eAAAA,IAIpC,OAFAoK,EAAGC,mBAAoB,EACvBD,EAAGX,eAAoBD,EAChBY,CACR,GACA,IAEDE,EAAqBhe,IAAAA,SACpB,kBACCA,IAAAA,YACC,SAAAhC,EAA0ByW,GAAS,IAA/BwJ,EAAQjgB,EAARigB,SAAazpB,EAAK0pB,IAAAlgB,EAAAmgB,IACrB,OAAOne,IAAAA,cAACgd,EAAeI,SAAQ,CAAC/pB,MAAOiqB,GACtCtd,IAAAA,cAACud,EAAYF,IAAA,CACZ5I,IAAMA,EAEC,SAAE/J,GAAI,OAAO+J,EAAIlC,QAAUiL,EAAQjL,QAAU7H,CAAI,EADjD8S,GACwDhpB,GAE9DypB,GAIJ,GACA,GAEF,IAkDP,OA/CAje,IAAAA,WACC,WAAM,IAAAoe,EACL,IAAKV,GAA0C,QAApBU,EAACX,EAAYlL,eAAO,IAAA6L,GAAnBA,EAAqBpR,EAKjD,OAFAsQ,EAAQe,oBACRZ,EAAYlL,QAAU+K,EACf,WAAM,IAAAgB,EACa,QAApBA,EAACb,EAAYlL,eAAO,IAAA+L,GAAnBA,EAAqBtR,IAG3ByQ,EAAYlL,QAAQgM,uBACpBd,EAAYlL,QAAU,KACvB,CACD,GAAG,IAEJvS,IAAAA,WACC,WAAM,IAAAwe,GAEAd,GAA0C,QAApBc,EAACf,EAAYlL,eAAO,IAAAiM,GAAnBA,EAAqBxR,IAGjDyQ,EAAYlL,QAAQsC,aACpB4I,EAAYlL,QAAQuC,mBAErB,GAEA,CAAC0I,EAAQjL,UAEVvS,IAAAA,WACC,WAAM,IAAAye,GACAf,GAA0C,QAApBe,EAAChB,EAAYlL,eAAO,IAAAkM,GAAnBA,EAAqBzR,IAEjDyQ,EAAYlL,QAAQ4K,eAAiBD,EACtC,GACA,CAACA,IAEFld,IAAAA,WACC,WAAM,IAAA0e,GACAhB,GAA0C,QAApBgB,EAACjB,EAAYlL,eAAO,IAAAmM,GAAnBA,EAAqB1R,IAEjDyQ,EAAYlL,QAAQvF,EAAEuG,QAAUG,EAChC+J,EAAYlL,QAAQsC,aACpB4I,EAAYlL,QAAQuC,mBACrB,GACA,CAACpB,IAEK1T,IAAAA,SACN,iBAAO,CAACsd,EAASU,EAAQ,GACzB,CAACA,EAASV,GAEX,EChHD,YAAetf,GACWA,EAARigB,SAMM,IALN1Y,EAAEvH,EAAFuH,GAAEoZ,EAAA3gB,EACFiZ,IAAAA,OAAG,IAAA0H,EAAGpZ,EAAEoZ,EACR5G,EAAW/Z,EAAX+Z,YAAarI,EAAM1R,EAAN0R,OACbmI,EAAgB7Z,EAAhB6Z,iBAAkB9I,EAAO/Q,EAAP+Q,QAAS6P,EAAI5gB,EAAJ4gB,KAAM9G,EAAe9Z,EAAf8Z,gBAAe+G,EAAA7gB,EAChDiD,MAAAA,OAAK,IAAA4d,EAAG,GAAEA,EAErBC,EAAY9e,IAAAA,OAAa,CAAC,GAAGuS,QAAOwM,EACxBC,IAAU,GAArB1B,EAA0B5f,IAAAqhB,EAAA,GAAnB,GAqDd,OAnDMD,EAAEG,cAAgBH,EAAEG,eAAiBhI,EAYhC6H,EAAEI,iBAAmBJ,EAAEI,kBAAoBnQ,GAAW+P,EAAEK,iBAAmBzP,GAAUoP,EAAEM,2BAA6BvH,IAC9HiH,EAAEI,gBAA2BnQ,EAC7B+P,EAAEG,aAA2BhI,EAC7B6H,EAAEK,eAA2BzP,EAC7BoP,EAAEM,yBAA2BvH,EAC7ByF,EAAQ+B,SAASpI,EAAK,CACrBlI,QAAAA,EACA6P,KAAAA,EACA/G,iBAAAA,EACAC,gBAAAA,EACAC,YAAAA,EACAJ,iBAAkBjI,MAtBnBoP,EAAEG,aAAkBhI,EACpB6H,EAAEI,gBAAkBnQ,EACpBuO,EAAQ+B,SAASpI,EAAK,CACrBlI,QAAAA,EACA6P,KAAAA,EACA/G,iBAAAA,EACAC,gBAAAA,EACAC,YAAAA,EACAJ,iBAAkBjI,IAChB,IAgBEoP,EAAEQ,iBAAmBR,EAAEQ,kBAAoBhC,EAOvCwB,EAAES,iBAAmBte,GAAW6d,EAAES,gBAAkBnK,IAAUnU,EAAO6d,EAAES,kBAChFT,EAAEU,QAAUV,EAAEQ,iBAAmBR,EAAEQ,gBAAgBG,iBAAiBX,EAAEU,OAAQV,EAAEG,cAChFH,EAAEU,OAAS,KACNve,EAAMvN,SACVorB,EAAEU,OAASlC,EAAQb,kBAAkBxb,EAAOgW,EAAK2H,IAClDE,EAAES,eAAiBte,IAXnB6d,EAAEQ,iBAAmBR,EAAEU,QAAUV,EAAEQ,gBAAgBG,iBAAiBX,EAAEU,OAAQV,EAAEG,cAC3Ehe,EAAMvN,SACVorB,EAAEU,OAASlC,EAAQb,kBAAkBxb,EAAOgW,EAAK2H,IAClDE,EAAEQ,gBAAkBhC,EACpBwB,EAAES,eAAkBte,GAUrBjB,IAAAA,WACC,WAEC,OAAO,WACN8e,EAAEU,QAAUV,EAAEQ,iBAAmBR,EAAEQ,gBAAgBG,iBAAiBX,EAAEU,OAAQV,EAAEG,qBAEzEH,EAAEQ,uBACFR,EAAEY,kBACV,CACD,GAAG,IACG1f,IAAAA,cAACA,IAAAA,SAAc,KACtB,EC/EK,GAA+B/L,QAAQ,0BCkBtC,SAAS0rB,GAAsBC,GAClC,MACyB,mBAAdA,KAEPA,EAAUhgB,WACPggB,EAAUhgB,UAAUigB,iBAG/B,CAEO,SAASA,GAAiBC,GAC7B,OAjBG,SAA0BA,GAC7B,MACyB,mBAAdA,KACLA,EAAUlgB,UAAUigB,gBAE9B,CAaQE,CAAiBD,IACjBH,GAAsBG,EAE9B,guBCdA,SAASE,GAAW3J,EAAO5iB,GAC1B,OAAO4iB,EAAM7Y,KACZ,SAAAoH,GAAK,OAAAlL,GAAAA,GAAA,GACDkL,GAAK,IACRnR,OAAAA,GAAM,GAGT,CAEA,IAAMwsB,GAAOjgB,IAAAA,YAAiB,SAAAhC,EAUKyW,GAAS,IATXwJ,EAAQjgB,EAARigB,SAAQiC,EAAAliB,EACRuH,GAAAA,OAAE,IAAA2a,EAAGlgB,IAAAA,SAAc,kBAAMmgB,KAAAA,UAAkB,GAAE,IAAGD,EAChD5K,EAAKtX,EAALsX,MAAOgB,EAAOtY,EAAPsY,QAASjJ,EAAGrP,EAAHqP,IAAK+S,EAAKpiB,EAALoiB,MAAc9C,GAAFtf,EAAL8Y,MAAc9Y,EAAPsf,SAEnCrF,GADMja,EAANqiB,OACIriB,EAAJia,MAAIqI,EAAAtiB,EACJuiB,QAAAA,OAAO,IAAAD,EAAG,UAASA,EAAAE,EAAAxiB,EACnByiB,WAAAA,OAAU,IAAAD,EAAGvI,EAAIuI,EAAAE,EAAA1iB,EACjBqJ,UAAAA,OAAS,IAAAqZ,EAAGD,EAAUC,EACnBlsB,EAAK0pB,IAAAlgB,EAAAmgB,IAEpCW,EAAkB9e,IAAAA,OAAa,CAAC,GAAGuS,QAAOwM,EACxBC,IAAU,GAA3B9B,EAAgCxf,IAAAqhB,EAAA,GAAnB,GAGlB,KAFA7B,EAAsBI,GAAWJ,GAIhC,OADAhmB,QAAQypB,MAAM,yEACP3gB,IAAAA,cAACA,IAAAA,SAAc,MAIvB,IAEI4gB,EAFAC,EAAQ3D,EAAc1H,SAASjQ,EAAI0Y,EAASzpB,OAASypB,EAASzpB,MAAM8gB,MAAOA,GAASgB,EACrDjJ,EAAKoH,EAAK2L,GAK7CpgB,IAAAA,WACC,kBAAM,WACA8e,EAAEgC,eACNntB,OAAOC,KAAKkrB,EAAEgC,eACPrrB,SAAQ,SAAAwhB,GAAG,OAAI6H,EAAEiC,gBAAgBtB,iBAAiBX,EAAEgC,cAAc7J,GAAMA,EAAI,IAE/E6H,EAAEiC,kBACNjC,EAAEiC,gBAAgBC,WAAWlC,EAAEmC,eAC/BnC,EAAEiC,gBAAgBG,gBAAWlsB,WAEvB8pB,EAAEiC,uBACFjC,EAAEgC,qBACFhC,EAAEqC,mBACV,CAAC,GACD,KAGDP,EAAkB9B,EAAElZ,aAAeyB,KAAeyX,EAAElZ,YAAcwP,IAAU/N,EAAWyX,EAAElZ,cACpFyB,IAAcyX,EAAElZ,aACGkZ,EAAEiC,kBAAoB7D,GAAiB4B,EAAEqC,sBAAwB9Z,GAGnFyX,EAAEiC,iBAAmBH,GACzB9B,EAAEgC,eAAiBntB,OAAOC,KAAKkrB,EAAEgC,eACPrrB,SAAQ,SAAAwhB,GAAG,OAAI6H,EAAEiC,gBAAgBtB,iBAAiBX,EAAEgC,cAAc7J,GAAMA,EAAI,IAMlG6H,EAAEiC,iBAAmBjC,EAAEiC,kBAAoB7D,GAC/C4B,EAAEiC,gBAAgBC,WAAWzb,GAIzBqb,IACJ9B,EAAElZ,WAAayB,EACVA,GAAatO,IAAAA,MAASsO,GAC1ByX,EAAEgC,cAAgB,CAAEM,QAASlE,EAAcT,kBAAkBuD,GAAU3Y,EAAW9B,KAElFuZ,EAAEgC,cAAgBzZ,GACjB1T,OAAOC,KAAKyT,GACL5F,QACA,SAAEC,EAAGuV,GAAG,OAENvV,EAAEuV,GAAOiG,EAAcT,kBAAkBuD,GAAU3Y,EAAU4P,GAAM1R,GAAK0R,GACvEvV,CAAC,GACA,CAAC,GACdmf,EAAQ3D,EAAc1H,SAASjQ,EAAI0Y,EAASzpB,OAASypB,EAASzpB,MAAM8gB,MAAOA,GAASgB,EACrDjJ,EAAKoH,EAAK2L,IAI1CS,EAAMvL,MAAK5b,GAAA,GAAQwjB,EAAc7H,gBAAgB9P,GAAI,IAEhD/Q,EAAM+D,eAAe,YACzBumB,EAAEiC,iBAAmBjC,EAAEiC,gBAAgBG,gBAAWlsB,GAClDsoB,EAAQ4D,WAAW3b,IAGpBuZ,EAAEiC,gBAAsB7D,EACxB4B,EAAEqC,oBAAsB9Z,GAGfwZ,IACTA,EAAMvL,MAAK5b,GAAA,GAAQwjB,EAAc7H,gBAAgB9P,GAAI,KAGtD,IAAI8b,EAAWrhB,IAAAA,SAAeshB,KAAKrD,GAEnC,OAAKoD,GAAYrhB,IAAAA,eAAqBqhB,IACrCvC,EAAEyC,SAAWV,EAERlB,GAAsB0B,EAASjsB,MAC5B4K,IAAAA,cAACqhB,EAASjsB,KAAIioB,IAAA,GAChB7oB,EACA6sB,EAAS7sB,MACTqsB,EAAK,CACTpM,SAAKzf,GAAUsc,IAAA,GAGZiP,EAAUM,EAAMpM,OAKdzU,IAAAA,cAACqhB,EAASjsB,KAAIioB,IAAA,GAChB7oB,EACA6sB,EAAS7sB,MACTqsB,MAIL3pB,QAAQypB,MAAM,+BAAgCpb,GAExCvF,IAAAA,cAAA,WAAK,WACb,IACA,YAEAigB,GAAKuB,IAAMxhB,IAAAA,YAAiB,SAAAyhB,EAAqChN,GAAS,IAA1CwJ,EAAQwD,EAARxD,SAAUyD,EAASD,EAATC,UAAcltB,EAAK0pB,IAAAuD,EAAAE,IAC5D,OAAO3hB,IAAAA,cAACigB,GAAI5C,IAAA,GAAK7oB,EAAK,CAAEigB,IAAKA,IAC5BzU,IAAAA,cAAA,OAAK0hB,UAAWA,GAAYzD,GAE9B,uJC7IM2D,GAAY5hB,IAAAA,YAAiB,SAAAhC,EAaKyW,GAAS,IAZXwJ,EAAQjgB,EAARigB,SAAQ4D,EAAA7jB,EACR8jB,KAAAA,OAAI,IAAAD,EAAG,MAAKA,EACZrE,EAAOxf,EAAPwf,QAEAuE,GAFO/jB,EACPiD,MACKjD,EAAL+jB,OAAOC,EAAKhkB,EAALgkB,MAAOC,EAAOjkB,EAAPikB,QACdC,EAAOlkB,EAAPkkB,QACAC,GADankB,EAAJokB,KACJpkB,EAALmkB,OAAOE,EAAKrkB,EAALqkB,MACP/E,EAAOtf,EAAPsf,QAAOgF,EAAAtkB,EACPuM,UAAAA,OAAS,IAAA+X,GAAQA,EAAAC,EAAAvkB,EACjB2M,UAAAA,OAAS,IAAA4X,GAAOA,EAAAC,EAAAxkB,EAChBykB,OAAAA,OAAM,IAAAD,EAAG,EAACA,EACPhuB,EAAK0pB,IAAAlgB,EAAAmgB,IAEzCuE,EAAkB1iB,IAAAA,SAClB8e,EAAkB9e,IAAAA,OAAa,CAAE0iB,KAAAA,EAAM1V,EAAG,CAAC,IAAKuF,QAAOwM,EACrCC,IAAU,GAA3B9B,EAAgCxf,IAAAqhB,EAAA,GAAnB,GACd4D,EAAkB3iB,IAAAA,SACjB,iBAAO,CAON4iB,mBAAkB,SAAElY,GAInB,IAHA,IAAImY,EAAa,GAAIC,EAAShE,EAAE3B,eAGxB2F,GACPD,EAAWnnB,KAAKonB,GAChBA,EAASA,EAAO3F,eAGjB,OAAO0F,CACR,EAOAE,yBAAwB,WAAG,IAAAC,EAKtBC,EACAC,EAAOC,EACPC,EACAC,EAAIC,EAAcC,EAAUC,EAP5BC,EAAiB,QAATT,EAAGlE,EAAE4D,YAAI,IAAAM,OAAA,EAANA,EAAQzQ,QAAOmR,EAGf5E,EAAEtqB,MADZutB,EAAK2B,EAAL3B,MAAOC,EAAK0B,EAAL1B,MAAOG,EAAKuB,EAALvB,MAAOE,EAAKqB,EAALrB,MAAO9X,EAASmZ,EAATnZ,UAAWI,EAAS+Y,EAAT/Y,UAAW2S,EAAOoG,EAAPpG,QAAS4E,EAAOwB,EAAPxB,QAASD,EAAOyB,EAAPzB,QAASQ,EAAMiB,EAANjB,OAM9EzV,EAAWsQ,EAAQtQ,EAElByW,GACJE,GAAS3a,SACRya,EAAU3E,EAAE9R,EAAE4W,SAAW,CACxB,UAAa,SAAEjb,EAAGkb,EAAOC,GAAW,IAAAC,EAAAtC,EAC/B9D,EAEGrqB,EACP,KAAMqV,aAAcqb,YAAcrb,EAAE8Z,SAAWA,GAW/C,IAPAW,EAAeT,EAAIC,mBAAmBja,EAAElV,QACxCwvB,EAAe1U,KAAKC,MACpB2U,EAAe,EACfE,EAAe,EACfC,EAAe,GACfC,EAA4C,QAApCQ,GAAQ7B,aAAO,EAAPA,EAAS3P,UAAWkR,SAAQ,IAAAM,OAAA,EAA7BA,EAAgCnY,YAC/C4X,EAA4C,QAAnC/B,GAAOQ,aAAO,EAAPA,EAAS1P,UAAWkR,SAAQ,IAAAhC,OAAA,EAA7BA,EAAgC5V,aACzCvY,EAAI,EAAGA,EAAI8vB,EAAQ1vB,OAAQJ,IAAM,CAIV,IAAA2wB,EAAAC,GAH5BvG,EAAWyF,EAAQ9vB,IACVuhB,aAEJ8I,EAASzK,cACT6O,IAAsB,QAAjBkC,EAAItG,EAAS1F,YAAI,IAAAgM,GAAbA,EAAgBlC,IACzBC,IAAsB,QAAjBkC,EAAIvG,EAAS1F,YAAI,IAAAiM,GAAbA,EAAgBlC,IAC7BrE,EAAS5K,qBAGX,CAID,EACA,MAAa,SAAEpK,EAAGkb,EAAOC,GAElBnb,aAAcqb,YAAcrb,EAAE8Z,SAAWA,GAI1CQ,IAEFA,EAAc1U,KAAKC,MAAQxB,EAAEuG,QAAQC,YACtClY,KAAKsR,IAAIyW,GAAMrW,EAAEuG,QAAQE,gBACzBnY,KAAKsR,IAAIuW,GAAMnW,EAAEuG,QAAQE,kBAG1B9K,EAAEsB,iBACFtB,EAAEuB,kBAOJ,EACA,KAAa,SAAEvB,EAAGkb,EAAOC,GAKxB,IAAInG,EACA/lB,EAAGusB,EAAQC,EAAaC,EACxBxsB,EAAGysB,EAAQC,EAAaC,EAChBlxB,EAPZ,KAAMqV,aAAcqb,YAAcrb,EAAE8Z,SAAWA,IAS/CU,IAAOW,EAAMla,SAAShS,EAAIksB,EAAMva,UAAU3R,GAC1CyrB,IAAOS,EAAMla,SAAS/R,EAAIisB,EAAMva,UAAU1R,GAGrCorB,GAAiBA,EAAc1U,KAAKC,MAAQxB,EAAEuG,QAAQC,YAAelY,KAAKsR,IAAIyW,GAAMrW,EAAEuG,QAAQE,gBAAkBnY,KAAKsR,IAAIuW,GAAMnW,EAAEuG,QAAQE,iBAsB7I,IAdA2Q,GAAejB,EACfoB,GAAelB,EACVrW,EAAEuG,QAAQkR,oBACC,MAAVvB,IAAkBA,GAAS5nB,KAAKsR,IAAS,GAALyW,GAAW/nB,KAAKsR,IAAIuW,IAC5DD,EAAQ,IACRC,EAAQ,IAGW,MAAVD,IAAkBA,GAAS5nB,KAAKsR,IAAS,GAALuW,GAAW7nB,KAAKsR,IAAIyW,MACjEH,EAAQ,IACRG,EAAQ,IAIJ/vB,EAAI,EAAGA,EAAI8vB,EAAQ1vB,OAAQJ,IAGhC,IAFAqqB,EAAWyF,EAAQ9vB,IAEL4f,YAAc,KAAAwR,EAAAC,EAAAC,EAAAC,EASHC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAHxB,GAJAvtB,EAAImqB,IAAsB,QAAjB2C,EAAI/G,EAAS1F,YAAI,IAAAyM,OAAA,EAAbA,EAAgB3C,IAC7BlqB,EAAImqB,IAAsB,QAAjB2C,EAAIhH,EAAS1F,YAAI,IAAA0M,OAAA,EAAbA,EAAgB3C,KAGvBpqB,IAAMC,EACX,SAEKyrB,EAAahwB,KAClBgwB,EAAahwB,GAAK,CACjBsE,EAAI,QAAHktB,EAAEltB,SAAC,IAAAktB,OAAA,EAADA,EAAG5M,UACNrgB,EAAI,QAAHktB,EAAEltB,SAAC,IAAAktB,OAAA,EAADA,EAAG7M,WAEN,QAAD8M,EAAAptB,SAAC,IAAAotB,GAAS,QAATA,EAADA,EAAGjW,eAAO,IAAAiW,GAAVA,EAAYI,YACX,QAADH,EAAAptB,SAAC,IAAAotB,GAAS,QAATA,EAADA,EAAGlW,eAAO,IAAAkW,GAAVA,EAAYG,YACZrD,GAASnqB,IAAO,QAAFstB,EAACttB,SAAC,IAAAstB,IAADA,EAAG3J,eAAgBoC,EAASzN,aAAatY,EAAGmqB,GAC3DC,GAASnqB,IAAO,QAAFstB,EAACttB,SAAC,IAAAstB,IAADA,EAAG5J,eAAgBoC,EAASzN,aAAarY,EAAGmqB,IAIvDpqB,IACJysB,EAASnC,SAAAA,EAAS3P,QACPgR,EACA5F,EAAS3Q,EAAEtV,IAAIE,EAC1BusB,EAAShB,GAAOA,EAAKkB,GACpBzsB,EAAEigB,kBACFjgB,EAAE4f,iBAAmB,EACjB6K,IACJ8B,EAAS9B,EAAM8B,KAEZtsB,IACJ2sB,EAASvC,SAAAA,EAAS1P,QACPiR,EACA7F,EAAS3Q,EAAEtV,IAAIG,EAC1BysB,EAASjB,GAAOA,EAAKmB,GACpB3sB,EAAEggB,kBACFhgB,EAAE2f,iBAAmB,EACjB2K,IACJmC,EAASnC,EAAMmC,KAOZ1sB,IAAMwsB,GAAeD,GAAW,QAALS,EAAIhtB,SAAC,IAAAgtB,GAAS,QAATA,EAADA,EAAG7V,eAAO,IAAA6V,GAAVA,EAAYS,UAAU/B,EAAahwB,GAAGsE,EAAIusB,IACzExG,EAAS9C,sBAAsBkH,EAAOoC,KAC1CvsB,EAAEmX,QAAQuW,KAAKhC,EAAahwB,GAAGsE,EAAIusB,GAEnCC,GAAc,GAKVvsB,IAAM0sB,GAAeD,GAAW,QAALO,EAAIhtB,SAAC,IAAAgtB,GAAS,QAATA,EAADA,EAAG9V,eAAO,IAAA8V,GAAVA,EAAYQ,UAAU/B,EAAahwB,GAAGuE,EAAIysB,IACzE3G,EAAS9C,sBAAsBmH,EAAOsC,KAC1CzsB,EAAEkX,QAAQuW,KAAKhC,EAAahwB,GAAGuE,EAAIysB,GAInCC,GAAc,EAEhB,CAWH,EAGA,QAAW,SAAE5b,EAAGkb,EAAOC,GACtB,IAAInG,EAGQrqB,EAEZ,KAAMqV,aAAcqb,YAAcrb,EAAE8Z,SAAWA,GAA/C,CAQA,IAJAS,OAAQluB,EAIF1B,EAAI,EAAGA,EAAI8vB,EAAQ1vB,OAAQJ,IAAM,CAGS,IAAAiyB,EAAAC,GAF/C7H,EAAWyF,EAAQ9vB,IAEL4f,aAAeoQ,EAAahwB,KAG5B,QAAbiyB,EAAA5H,EAAS1F,YAAI,IAAAsN,GAAS,QAATA,EAAbA,EAAgBxD,UAAM,IAAAwD,GAAS,QAATA,EAAtBA,EAAwBxW,eAAO,IAAAwW,GAA/BA,EAAiC9uB,UACpB,QAAb+uB,EAAA7H,EAAS1F,YAAI,IAAAuN,GAAS,QAATA,EAAbA,EAAgBxD,UAAM,IAAAwD,GAAS,QAATA,EAAtBA,EAAwBzW,eAAO,IAAAyW,GAA/BA,EAAiC/uB,UAWnC,EACKwsB,GAAkBA,EAAc1U,KAAKC,MAAQxB,EAAEuG,QAAQC,YAAelY,KAAKsR,IAAIyW,GACjFrW,EAAEuG,QAAQE,gBAAkBnY,KAAKsR,IAAIuW,GAAMnW,EAAEuG,QAAQE,iBAKvD9K,EAAEuB,kBACFvB,EAAE8c,YAAc9c,EAAEsB,kBAQnBmZ,EAAUE,EAAe,IAxCzB,CAyCD,GAED,KACAtW,EAAEuG,QAAQmS,iBAAmBnb,EAC7BI,GAEDmU,EAAE9R,EAAE2Y,aAAelC,GAGnB3E,EAAE9R,EAAE2Y,YAAa,CAEnB,EAEA,GACD,IAgCL,OA9BA3lB,IAAAA,WACC,WAEC,OADA2iB,EAAII,2BACG,WAAM,IAAA6C,EACRlb,EAAa,QAATkb,EAAG9G,EAAE4D,YAAI,IAAAkD,OAAA,EAANA,EAAQrT,QACduM,EAAE9R,EAAE6Y,gBACR/G,EAAE9R,EAAE6Y,eAAgB,EAEpBnb,GAAQoU,EAAE9R,EAAE4W,UAAYD,GAASvZ,YAAYM,EAC1CoU,EAAE9R,EAAE4W,UAET,CACD,GACA,IAED5jB,IAAAA,WACC,WACMjH,IAAAA,SAAYykB,IAChBA,EAAQkF,EAAKnQ,SACTxZ,IAAAA,SAAY0b,GAChBA,EAAIiO,EAAKnQ,SACAkC,IACTA,EAAIlC,QAAUmQ,EAAKnQ,QACrB,GACA,CAACiL,EAAS/I,IAEXqK,EAAEtqB,MAAiB,CAClButB,MAAAA,EAAOC,MAAAA,EAAOG,MAAAA,EAAOE,MAAAA,EAAO9X,UAAAA,EAAWI,UAAAA,EAAW2S,QAASA,GAAWJ,EAAegF,QAAAA,EAASD,QAAAA,EAASQ,OAAAA,GAExG3D,EAAE3B,eAAiBD,EACZld,IAAAA,cAAC8hB,EAAIzE,IAAA,CAAC5I,IAAKiO,GAAUluB,GAAQypB,EACrC,IACA,YAEA2D,GAAUJ,IAAM,SAAEhtB,GACjB,OAAOwL,IAAAA,cAAC4hB,GAAcptB,EACvB,ECzUA,oBACC,OAAOwL,IAAAA,WAAiBgd,EACxB,iOCAD,IAAM8I,GAAsB,CAAC,EAAI5Y,YAOlB,SAAS6Y,KAAqB,QAAAtlB,EAAA1L,UAAArB,OAAPgN,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAA7L,UAAA6L,GAEtC,IAAIkc,IAAmBpc,EAAM,IAAOmf,GAAiBnf,EAAM,MAAUA,EAAKwB,QACtEqR,IAAmB7S,EAAM,IAAOA,EAAM,aAAeolB,KAAuBplB,EAAKwB,SAAW,CAAC,EACjG,IAAM4a,EACF,OAAO,SAAWA,GACd,OAAOiJ,GAAUjJ,EAAevJ,EACpC,EAGJA,qWAAO7Z,CAAA,CACHssB,WAAgB,EAChBxS,WAAgB,IAChBC,eAAgB,IACbF,GAIP,IAAI0S,EAAkBjmB,IAAAA,YAAiB,SAAExL,EAAOigB,GAC5C,OAAOzU,IAAAA,cAACkS,GAAO,CAAC6K,OAASvoB,EAAQ8e,aAAemB,EAChCqI,cAAgBA,EAChBpJ,eAAiBH,GACrC,IAEA,OADA0S,EAAQ1P,YAAc2P,OAAOC,aAAa,MAAQ,QAAYrJ,EAAcvG,aAAeuG,EAAce,MAClGoI,CACX,oJC7BA,OAAMH,GAAsB,CAAC,EAAI5Y,YAQlB,SAASkZ,KAAuB,QAAA3lB,EAAA1L,UAAArB,OAAPgN,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAA7L,UAAA6L,GAExC,IAAIkc,IAAmBpc,EAAM,IAAOmf,GAAiBnf,EAAM,MAAUA,EAAKwB,QACtEmkB,IAAmB3lB,EAAM,IAAOA,EAAM,aAAeolB,KAAuBplB,EAAKwB,SAAW,CAAC,EAEjG,IAAQ4a,KAAmBA,EAAcld,qBAAqBI,IAAAA,WAAmB8c,IAAkB9c,IAAAA,WAC/F,OAAO,SAAW8c,GACd,OAAOsJ,GAAYtJ,EAAeuJ,EACtC,EACH,IAEKC,EAAc,SAAAnU,GAAA,SAAAmU,IAAA,OAAAvgB,IAAA,KAAAugB,KAAA,OAAAA,IAAAvxB,mGAAA,QAAAwR,IAAA+f,EAAAnU,GAAA3L,IAAA8f,EAAA,EAAAtuB,IAAA,SAAA3E,MAGhB,WAAS,IAAAgT,EAAA,KACL,OAAOrG,IAAAA,cAACgd,EAAeC,SAAQ,MAEvB,SAAAK,GACI,OAAOtd,IAAAA,cAAC8c,EAAaO,IAAA,GAAMhX,EAAK7R,MAAK,CAAG8oB,QAAUA,EAC5B7I,IAAMpO,EAAK7R,MAAM8e,eAC3C,GAGZ,IAAC,CAZe,CAAStT,IAAAA,WAAesR,IAAtCgV,EAAc,cACOxJ,EAAcvG,aAAeuG,EAAce,MAetE,IAAIoI,EAAkBjmB,IAAAA,YAAiB,SAAExL,EAAOigB,GAC5C,OAAOzU,IAAAA,cAACsmB,EAAcjJ,IAAA,GAAM7oB,EAAK,CAAG8e,aAAemB,IACvD,IAEA,OADAwR,EAAQ1P,YAAc+P,EAAe/P,YAC9B0P,CACX,8PChCAM,KAAAA,gBAA4BC,EAAO,IAG7B5G,GADLtC,GAAOmJ,GAAA,SAAAtU,GAAA,SAAAyN,IAAA,OAAA7Z,IAAA,KAAA6Z,GAAAtZ,GAAA,KAAAsZ,EAAA7qB,UAAA,QAAAwR,IAAAqZ,EAAAzN,GAAA3L,IAAAoZ,EAAA,EAAA5nB,IAAA,SAAA3E,MAEP,WACC,OAAOoT,KAAKjS,MAAMypB,QACnB,IAAC,CAJM,CACgBje,IAAAA,aAAeymB,GAoBvC,UACCnJ,QAAAA,GACAoJ,MAAAA,GACAC,WAAAA,GACA3H,UAAAA,GACA4H,KAAM5H,GACN6H,MAAAA,EACAjF,UAAAA,GACAhC,UAAAA,GACAK,KAAAA,GACA6G,QAAAA,EACA3gB,KAAAA,GACA4gB,IAAAA","sources":["webpack://react-voodoo/./src/.___layerPackIndexUtils.js","webpack://react-voodoo/./src/MapOf.react_voodoo-S-utils-S-css-S-demux-S-typed-S-_-W-_-js.gen.js","webpack://react-voodoo/./src/utils/css/cssUtils.js","webpack://react-voodoo/./src/utils/css/demux/filter.js","webpack://react-voodoo/./src/utils/css/demux/transform.js","webpack://react-voodoo/./src/utils/css/demux/typed/any.js","webpack://react-voodoo/./src/utils/css/demux/typed/bool.js","webpack://react-voodoo/external commonjs-module \"color-rgba\"","webpack://react-voodoo/./src/utils/css/demux/typed/color.js","webpack://react-voodoo/./src/utils/css/demux/typed/length.js","webpack://react-voodoo/./src/utils/css/demux/typed/multi.js","webpack://react-voodoo/./src/utils/css/demux/typed/number.js","webpack://react-voodoo/./src/utils/css/demux/typed/ratio.js","webpack://react-voodoo/./src/utils/css/demux/typed/shadow.js","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/defineProperty\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/slicedToArray\"","webpack://react-voodoo/external commonjs-module \"d3-ease\"","webpack://react-voodoo/external commonjs-module \"is\"","webpack://react-voodoo/webpack/bootstrap","webpack://react-voodoo/webpack/runtime/compat get default export","webpack://react-voodoo/webpack/runtime/define property getters","webpack://react-voodoo/webpack/runtime/hasOwnProperty shorthand","webpack://react-voodoo/webpack/runtime/make namespace object","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/classCallCheck\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/createClass\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/getPrototypeOf\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/inherits\"","webpack://react-voodoo/external commonjs-module \"react\"","webpack://react-voodoo/external commonjs-module \"fast-deep-equal\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/extends\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://react-voodoo/./src/comps/TweenerContext.js","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/toConsumableArray\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/get\"","webpack://react-voodoo/external commonjs-module \"react-dom\"","webpack://react-voodoo/./src/utils/tweenTools.js","webpack://react-voodoo/./src/MapOf.react_voodoo-S-utils-S-css-S-demux-S-_-W-_-js.gen.js","webpack://react-voodoo/./src/utils/css/index.js","webpack://react-voodoo/external commonjs-module \"tween-axis\"","webpack://react-voodoo/./src/utils/CssTweenAxis.js","webpack://react-voodoo/./src/utils/dom.js","webpack://react-voodoo/./src/utils/inertia.js","webpack://react-voodoo/./src/comps/Tweener.js","webpack://react-voodoo/./src/hooks/useVoodoo.js","webpack://react-voodoo/./src/comps/Axis.js","webpack://react-voodoo/external commonjs-module \"shortid\"","webpack://react-voodoo/./src/utils/react.js","webpack://react-voodoo/./src/comps/Node.js","webpack://react-voodoo/./src/comps/Draggable.js","webpack://react-voodoo/./src/hooks/useTweener.js","webpack://react-voodoo/./src/spells/asTweener.js","webpack://react-voodoo/./src/spells/withTweener.js","webpack://react-voodoo/./src/index.js"],"sourcesContent":["/*\n * Copyright 2021 BRAUN Nathanael\n *\n * Use of this source code is governed by an MIT-style\n * license that can be found in the LICENSE file or at\n * https://opensource.org/licenses/MIT.\n */\nmodule.exports = {\n\t/**\n\t * Walk & set executables from globs requires\n\t * @param _target\n\t * @param path\n\t * @param value\n\t */\n\twalknSetExport( _target, path, value ) {\n\t\tlet fPath = path.split('/'),\n\t\t target = _target, i, module;\n\t\t\n\t\ti = 0;\n\t\twhile ( i < fPath.length - 1 ) target = target[fPath[i]] = target[fPath[i]] || {}, i++;\n\t\t\n\t\tmodule = Object.keys(value).length === 1 && value.default || value;\n\t\t\n\t\tif ( !target[fPath[i]] ) {\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse if ( !target[fPath[i]].__esModule ) {// if this is simple path obj write over\n\t\t\tObject.assign(module, target[fPath[i]]);\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse {// when we are in hot reload this may delete some sub modules... @todo\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t}\n};","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\n\n\nconst _react_voodoo_utils_css_demux_typed_any_js = require(\"react-voodoo/utils/css/demux/typed/any.js\");\n\nwalknSetExport(_exports, \"any\", _react_voodoo_utils_css_demux_typed_any_js);\nconst _react_voodoo_utils_css_demux_typed_bool_js = require(\"react-voodoo/utils/css/demux/typed/bool.js\");\n\nwalknSetExport(_exports, \"bool\", _react_voodoo_utils_css_demux_typed_bool_js);\nconst _react_voodoo_utils_css_demux_typed_color_js = require(\"react-voodoo/utils/css/demux/typed/color.js\");\n\nwalknSetExport(_exports, \"color\", _react_voodoo_utils_css_demux_typed_color_js);\nconst _react_voodoo_utils_css_demux_typed_multi_js = require(\"react-voodoo/utils/css/demux/typed/multi.js\");\n\nwalknSetExport(_exports, \"multi\", _react_voodoo_utils_css_demux_typed_multi_js);\nconst _react_voodoo_utils_css_demux_typed_ratio_js = require(\"react-voodoo/utils/css/demux/typed/ratio.js\");\n\nwalknSetExport(_exports, \"ratio\", _react_voodoo_utils_css_demux_typed_ratio_js);\nconst _react_voodoo_utils_css_demux_typed_length_js = require(\"react-voodoo/utils/css/demux/typed/length.js\");\n\nwalknSetExport(_exports, \"length\", _react_voodoo_utils_css_demux_typed_length_js);\nconst _react_voodoo_utils_css_demux_typed_number_js = require(\"react-voodoo/utils/css/demux/typed/number.js\");\n\nwalknSetExport(_exports, \"number\", _react_voodoo_utils_css_demux_typed_number_js);\nconst _react_voodoo_utils_css_demux_typed_shadow_js = require(\"react-voodoo/utils/css/demux/typed/shadow.js\");\n\nwalknSetExport(_exports, \"shadow\", _react_voodoo_utils_css_demux_typed_shadow_js);\n\nexport const any = _exports.any;\n\nexport const bool = _exports.bool;\n\nexport const color = _exports.color;\n\nexport const length = _exports.length;\n\nexport const multi = _exports.multi;\n\nexport const number = _exports.number;\n\nexport const ratio = _exports.ratio;\n\nexport const shadow = _exports.shadow;\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nexport const props = {\n\t\"margin\" : { \"properties\": [\"marginTop\", \"marginRight\", \"marginBottom\", \"marginLeft\"], \"multiple\": true },\n\t\"marginBottom\" : { \"types\": [\"length\"] },\n\t\"marginLeft\" : { \"types\": [\"length\"] },\n\t\"marginRight\" : { \"types\": [\"length\"] },\n\t\"marginTop\" : { \"types\": [\"length\"] },\n\t\"padding\" : { \"properties\": [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"], \"multiple\": true },\n\t\"paddingBottom\": { \"types\": [\"length\"] },\n\t\"paddingLeft\" : { \"types\": [\"length\"] },\n\t\"paddingRight\" : { \"types\": [\"length\"] },\n\t\"paddingTop\" : { \"types\": [\"length\"] },\n\t\"bottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"left\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"right\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"top\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"zIndex\" : { \"types\": [\"integer\"] },\n\t\"width\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"height\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"lineHeight\" : { \"types\": [\"length\"] },\n\t\"verticalAlign\": { \"types\": [\"length\"] },\n\t\"visibility\" : { \"types\": [\"visibility\"] },\n\t\"borderSpacing\": { \"types\": [\"length\"], \"multiple\": true },\n\t\"color\" : { \"types\": [\"color\"] },\n\t\"opacity\" : { \"types\": [\"number\"] },\n\t//\"background\" : { \"properties\": [\"backgroundColor\", \"backgroundPosition\", \"backgroundSize\"] },\n\t\"backgroundColor\" : { \"types\": [\"color\"] },\n\t\"backgroundPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"backgroundSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"border\" : { \"properties\": [\"borderStyle\", \"borderWidth\", \"borderColor\"] },\n\t\"borderBottom\" : { \"properties\": [\"borderBottomStyle\", \"borderBottomWidth\", \"borderBottomColor\"] },\n\t\"borderLeft\" : { \"properties\": [\"borderLeftStyle\", \"borderLeftWidth\", \"borderLeftColor\"] },\n\t\"borderRight\" : { \"properties\": [\"borderRightStyle\", \"borderRightWidth\", \"borderRightColor\"] },\n\t\"borderTop\" : { \"properties\": [\"borderTopStyle\", \"borderTopWidth\", \"borderTopColor\"] },\n\t\"borderColor\" : { \"properties\": [\"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\"] },\n\t\"borderWidth\" : { \"properties\": [\"borderTopWidth\", \"borderRightWidth\", \"borderBottomWidth\", \"borderLeftWidth\"] },\n\t\"borderBottomColor\" : { \"types\": [\"color\"] },\n\t\"borderLeftColor\" : { \"types\": [\"color\"] },\n\t\"borderRightColor\" : { \"types\": [\"color\"] },\n\t\"borderTopColor\" : { \"types\": [\"color\"] },\n\t\"borderBottomWidth\" : { \"types\": [\"length\"] },\n\t\"borderLeftWidth\" : { \"types\": [\"length\"] },\n\t\"borderRightWidth\" : { \"types\": [\"length\"] },\n\t\"borderTopWidth\" : { \"types\": [\"length\"] },\n\t\"borderRadius\" : { \"properties\": [\"borderTopLeftRadius\", \"borderTopRightRadius\", \"borderBottomRightRadius\", \"borderBottomLeftRadius\"] },\n\t\"borderTopLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderTopRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"boxShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"caretColor\" : { \"types\": [\"color\"] },\n\t\"outline\" : { \"properties\": [\"outlineColor\", \"outlineWidth\"] },\n\t\"outlineColor\" : { \"types\": [\"color\"] },\n\t\"outlineWidth\" : { \"types\": [\"length\"] },\n\t\"outlineOffset\" : { \"types\": [\"length\"] },\n\t\"flex\" : { \"properties\": [\"flexGrow\", \"flexShrink\", \"flexBasis\"] },\n\t\"flexGrow\" : { \"types\": [\"number\"] },\n\t\"flexShrink\" : { \"types\": [\"number\"] },\n\t\"flexBasis\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"order\" : { \"types\": [\"integer\"] },\n\t\"font\" : { \"properties\": [\"fontWeight\", \"fontStretch\", \"fontSize\", \"lineHeight\"] },\n\t\"fontWeight\" : { \"types\": [\"font-weight\"] },\n\t\"fontStretch\" : { \"types\": [\"font-stretch\"] },\n\t\"fontSize\" : { \"types\": [\"length\"] },\n\t\"fontSizeAdjust\" : { \"types\": [\"number\"] },\n\t\"gridTemplateColumns\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplateRows\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplate\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"grid\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"gridRowGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridColumnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridGap\" : { \"properties\": [\"gridRowGap\", \"gridColumnGap\"] },\n\t\"clip\" : { \"types\": [\"rectangle\"] },\n\t\"clipPath\" : { \"types\": [\"basic-shape\"] },\n\t\"mask\" : { \"properties\": [\"maskPosition\", \"maskSize\"] },\n\t\"maskPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"maskSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"shapeOutside\" : { \"types\": [\"basic-shape\"] },\n\t\"shapeMargin\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"shapeImageThreshold\" : { \"types\": [\"number\"] },\n\t\"scrollPadding\" : { \"properties\": [\"scrollPaddingTop\", \"scrollPaddingRight\", \"scrollPaddingBottom\", \"scrollPaddingLeft\"] },\n\t\"scrollPaddingTop\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingRight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingLeft\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlock\" : { \"properties\": [\"scrollPaddingBlockStart\", \"scrollPaddingBlockEnd\"] },\n\t\"scrollPaddingBlockStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlockEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInline\" : { \"properties\": [\"scrollPaddingInlineStart\", \"scrollPaddingInlineEnd\"] },\n\t\"scrollPaddingInlineStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInlineEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollSnapMargin\" : { \"properties\": [\"scrollSnapMarginTop\", \"scrollSnapMarginRight\", \"scrollSnapMarginBottom\", \"scrollSnapMarginLeft\"] },\n\t\"scrollSnapMarginTop\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginRight\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBottom\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginLeft\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlock\" : { \"properties\": [\"scrollSnapMarginBlockStart\", \"scrollSnapMarginBlockEnd\"] },\n\t\"scrollSnapMarginBlockStart\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlockEnd\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInline\" : { \"properties\": [\"scrollSnapMarginInlineStart\", \"scrollSnapMarginInlineEnd\"] },\n\t\"scrollSnapMarginInlineStart\": { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInlineEnd\" : { \"types\": [\"length\"] },\n\t\"textDecoration\" : { \"properties\": [\"textDecorationColor\"] },\n\t\"textDecorationColor\" : { \"types\": [\"color\"] },\n\t\"textEmphasis\" : { \"properties\": [\"textEmphasisColor\"] },\n\t\"textEmphasisColor\" : { \"types\": [\"color\"] },\n\t\"textShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"columns\" : { \"properties\": [\"columnWidth\", \"columnCount\"] },\n\t\"columnWidth\" : { \"types\": [\"length\"] },\n\t\"columnCount\" : { \"types\": [\"integer\"] },\n\t\"columnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"columnRule\" : { \"properties\": [\"columnRuleColor\", \"columnRuleWidth\"] },\n\t\"columnRuleColor\" : { \"types\": [\"color\"] },\n\t\"columnRuleWidth\" : { \"types\": [\"length\"] },\n\t\"letterSpacing\" : { \"types\": [\"length\"] },\n\t\"tabSize\" : { \"types\": [\"length\"] },\n\t\"textIndent\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"wordSpacing\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"transform\" : { \"types\": [\"transform\"] },\n\t\"transformOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"perspective\" : { \"types\": [\"length\"] },\n\t\"perspectiveOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t}\n}\n\nexport const units = ['', 'deg', 'box', 'bz', 'bh', 'bw', 'deg', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'];\nexport const unitsRe = new RegExp(\n\t\"^\\s*([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['\\\\w+', 'deg', 'bz', 'bh', 'bw', 'cap', 'ch', 'deg', 'em', 'ic', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\\s*$\"\n);\nexport const floatCut = ( v = 0 ) => Number(v.toFixed(3));\n\nexport function expandShorthandProperty( property, value, target = {} ) {\n\tlet type = props[property],\n\t childProps = type && type.properties,\n\t values = value.split(' ');\n\t\n\tif ( type.multiple )\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\ttarget[k] = values[i % values.length];\n\t\t\t}\n\t\t)\n\telse\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\tif ( values[i] )\n\t\t\t\t\ttarget[k] = values[i];\n\t\t\t}\n\t\t)\n\treturn target;\n};\n\nexport function isShorthandProperty( property ) {\n\tlet type = props[property],\n\t childProps = type && type.properties;\n\treturn childProps && !!childProps.length;\n};\n\n\n\nexport function isValidDeclaration( property, value ) {\n\treturn !!props[property];\n};\n\n/**\n * Check if a CSS property can be animated\n * @param {string} property CSS property name\n * @return {boolean} True if the property can be animated\n */\nexport function canAnimate( property ) {\n\treturn props.hasOwnProperty(property);\n};\n\n/**\n * Get a definition of how a CSS property can be animated\n * @param {string} property CSS property name\n * @param {boolean} expand Expand definitions for sub-properties, when available\n * @return {object} Property definition, or null if it can't be animated\n */\nexport function getProperty( property, expand ) {\n\tif ( !exports.canAnimate(property) ) {\n\t\treturn null;\n\t}\n\tvar prop = props[property];\n\tvar ret = { name: property };\n\tObject.keys(prop).forEach(function ( key ) {\n\t\tvar value = prop[key];\n\t\tif ( Array.isArray(value) ) {\n\t\t\tif ( key === 'properties' && expand ) {\n\t\t\t\tvalue = value.map(function ( subProp ) {\n\t\t\t\t\treturn exports.getProperty(subProp, expand);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalue = value.slice(); // clone\n\t\t\t}\n\t\t}\n\t\tret[key] = value;\n\t});\n\treturn ret;\n};\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\nconst\n\tdefaultUnits = {\n\t\tblur : 'px',\n\t\tbrightness: '%',\n\t\tcontrast : '%',\n\t\tdropShadow: true,\n\t\tgrayscale : '%',\n\t\thueRotate : 'deg',\n\t\tinvert : \"%\",\n\t\topacity : \"%\",\n\t\tsaturate : \"%\",\n\t\tsepia : \"%\"\n\t}, defaultValue = {};\n\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length === 4 ) {\n\t\t//console.warn(\"dec\", twKey, dataMap[path[0]][path[1]][path[2]])\n\t\t// dec count on filter\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free filter layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\t//if ( unit === 'box' ) {\n\t//\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t//\tunit = 'px';\n\t//}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet filters = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\tfilters += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.filter = filters;\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\nconst defaultUnits = {\n\t //matrix : true,\n\t //translate : 'px',\n\t translateX: 'px',\n\t translateY: 'px',\n\t translateZ: 'px',\n\t scale : '',\n\t scaleZ : '',\n\t scaleX : '',\n\t scaleY : '',\n\t rotate : 'deg',\n\t //skew : 'deg',\n\t skewX: 'deg',\n\t skewY: 'deg',\n\t //matrix3d : true,\n\t //translate3d: true,\n\t //scale3d : true,\n\t //rotate3d : true,\n\t rotateX : 'deg',\n\t rotateY : 'deg',\n\t rotateZ : 'deg',\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n\t translateY: 'y',\n\t translateZ: 'z',\n\t rotateX : 'x',\n\t rotateY : 'y',\n\t rotateZ : 'z',\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom : 'y',\n\t width : 'x',\n\t height : 'y',\n }, defaultValue = {\n\t //skew : 1,\n\t //skewX : 1,\n\t //skewY : 1,\n\t scale : 1,\n\t scaleX: 1,\n\t scaleY: 1,\n\t scaleZ: 1\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length === 4 ) {\n\t\t//console.warn(\"dec\", twKey, dataMap[path[0]][path[1]][path[2]])\n\t\t// dec count on transform\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet transforms = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\ttransforms += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.transform = transforms;\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) && !is.object(value) ) {\n\t\tconsole.warn(\"React-Voodoo: Ignore unexpected value \", key, \":\", value, \" on \", target);\n\t\treturn demux;\n\t}\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\n\nconst defaultUnits = {\n\t left : 'px',\n\t right : 'px',\n\t top : 'px',\n\t bottom : 'px',\n\t width : 'px',\n\t height : 'px',\n\t perspective: 'px',\n },\n defaultBox = {\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom: 'y',\n\t width : 'x',\n\t height: 'y',\n }, defaultValue = {\n\t opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\t\n\tif ( path.length === 2 ) {\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n\t\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//dataMap[path[0]][path[1]] = undefined;\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tif ( cssMap ) delete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\t\n\t\tif ( !--dataMap[twKey].count && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\tdelete dataMap[twKey];\n\t\t\tdelete muxerMap[twKey];\n\t\t\tdelete cssMap[twKey];\n\t\t}\n\t\t//console.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitKey] || defaultUnits[baseKey] || \"px\";\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t\t\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n\tlet value, i = 0, y, rKey;\n\t\n\tvalue = \"\";\n\t\n\t//if ( key==\"height\" )\n\t//\tdebugger;\n\t\n\tif ( data[key].isString ) {\n\t\treturn target[key] = data[key].value[Math.round(tweenable[key])];\n\t}\n\t\n\tfor ( y = 0; y < data[key].length; y++ )\n\t\tif ( data[key][y] ) {\n\t\t\trKey = key + \"_\" + y;\n\t\t\tif ( tweenable[rKey] < 0 )\n\t\t\t\tvalue += (i\n\t\t\t\t ? \" - \"\n\t\t\t\t : \"-\") + demuxOne(y, -tweenable[rKey], baseKey || key, data, box);\n\t\t\telse\n\t\t\t\tvalue += (i\n\t\t\t\t ? \" + \"\n\t\t\t\t : \"\") + demuxOne(y, tweenable[rKey], baseKey || key, data, box);\n\t\t\ti++;\n\t\t}\n\tif ( i > 1 )\n\t\tvalue = \"calc(\" + value + \")\";\n\t\n\t//console.log(key, ':', value)\n\treturn target ? target[key] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n\t\n\tdata[key] = data[key] || [];\n\tlet seenUnits = [];\n\tif ( is.array(value) ) {\n\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\tmuxOne(key, value[i] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t}\n\t}\n\telse {\n\t\tmuxOne(key, value || 0, target, data, initials, noPropLock)\n\t}\n\t\n\treturn demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[key] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\t//\n\tif ( !match && is.string(value) ) {\n\t\tinitials[key] = defaultValue[key] || 0;\n\t\tdata[key].count = data[key].count||0;\n\t\tdata[key].count++;\n\t\tdata[key].isString = true;\n\t\tdata[key].value = data[key].value || [];\n\t\t!data[key].value.includes(value) && data[key].value.push(value);\n\t\ttarget[key] = data[key].value.indexOf(value);\n\t\treturn demux;\n\t}\n\tinitials[realKey] = defaultValue[key] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n}\n\nexport const mux = muxer;\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\tlet value = !!(tweenable[key]);\n\treturn target ? target[key] = value : value;\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value === false ? 0 : 1;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"color-rgba\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport rgba from \"color-rgba\";\nimport is from \"is\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'),\n\t tmpKey = path.slice(0, path.length - 1).join('_');\n\t\n\t//console.log(\"dec\", tmpKey, path, dataMap[twKey])\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", twKey, path)\n\t}\n\tif ( tmpKey && !--dataMap[tmpKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", tmpKey)\n\t}\n\t//}\n}\n\nexport function demux( key, tweenable, target, data ) {\n\tlet value = \"rgba(\" +\n\t\tMath.min(255, tweenable[key + '_r']) + \", \" +\n\t\tMath.min(255, tweenable[key + '_g']) + \", \" +\n\t\tMath.min(255, tweenable[key + '_b']) + \", \" +\n\t\tMath.min(1, tweenable[key + '_a']) + \")\";\n\t//console.log('demux::demux:38: ', value);\n\treturn target ?\n\t target[key] = value : value;\n}\n\nexport function mux( key, value, target, data, initials, noPropLock ) {\n\tlet vect = is.string(value)\n\t ? rgba(value)\n\t : value && [value.r || 0, value.g || 0, value.b || 0, value.a || 0];\n\t//console.log('mux::mux:44: ', value, vect);\n\tdata[key] = data[key] || 0;\n\tdata[key + '_r'] = data[key + '_r'] || 0;\n\tdata[key + '_g'] = data[key + '_g'] || 0;\n\tdata[key + '_b'] = data[key + '_b'] || 0;\n\tdata[key + '_a'] = data[key + '_a'] || 0;\n\tif ( !noPropLock ) {\n\t\tdata[key] += 4;\n\t\tdata[key + '_r']++;\n\t\tdata[key + '_g']++;\n\t\tdata[key + '_b']++;\n\t\tdata[key + '_a']++;\n\t}\n\t\n\ttarget[key + '_r'] = vect[0];\n\ttarget[key + '_g'] = vect[1];\n\ttarget[key + '_b'] = vect[2];\n\ttarget[key + '_a'] = vect[3];\n\t\n\tinitials[key] = 0;\n\t\n\tinitials[key + '_r'] = 0;\n\tinitials[key + '_g'] = 0;\n\tinitials[key + '_b'] = 0;\n\tinitials[key + '_a'] = 1;\n\t\n\treturn demux;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\n\nconst defaultUnits = {\n\t left : 'px',\n\t right : 'px',\n\t top : 'px',\n\t bottom : 'px',\n\t width : 'px',\n\t height : 'px',\n\t perspective: 'px',\n },\n defaultBox = {\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom: 'y',\n\t width : 'x',\n\t height: 'y',\n }, defaultValue = {\n\t opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\t\n\tif ( path.length === 2 ) {\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n\t\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//dataMap[path[0]][path[1]] = undefined;\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tif ( cssMap ) delete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitKey] || defaultUnits[baseKey] || \"px\";\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t\t\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n\tlet value, i = 0, y, rKey;\n\t\n\tvalue = \"\";\n\t\n\t//if ( key==\"height\" )\n\t//\tdebugger;\n\t\n\tfor ( y = 0; y < data[key].length; y++ )\n\t\tif ( data[key][y] ) {\n\t\t\trKey = key + \"_\" + y;\n\t\t\tif ( tweenable[rKey] < 0 )\n\t\t\t\tvalue += (i ? \" - \" : \"-\") + demuxOne(y, -tweenable[rKey], baseKey || key, data, box);\n\t\t\telse\n\t\t\t\tvalue += (i ? \" + \" : \"\") + demuxOne(y, tweenable[rKey], baseKey || key, data, box);\n\t\t\ti++;\n\t\t}\n\tif ( i > 1 )\n\t\tvalue = \"calc(\" + value + \")\";\n\t\n\t//console.log(key, ':', value)\n\treturn target ? target[key] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n\t\n\tdata[key] = data[key] || [];\n\tlet seenUnits = [];\n\tif ( is.array(value) ) {\n\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\tmuxOne(key, value[i] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t}\n\t}\n\telse {\n\t\tmuxOne(key, value || 0, target, data, initials, noPropLock)\n\t}\n\t\n\treturn demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[key] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[key] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\n\nexport const mux = muxer;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport * as length from \"./number\";\n\nconst\n alias = {\n top : '0%',\n bottom: '100%',\n center: '50%',\n left : '0%',\n right : '100%'\n };\n\nfunction demux( key, tweenable, target, data, box, offset ) {\n \n let count = data[ \"_\" + key ], v = '', nowhere = {};\n \n for ( let i = 0; i < count; i++ ) {\n length.demux(key + '_' + i, tweenable, nowhere, data, box, offset);\n v += nowhere[ key + '_' + i ] + ' ';\n }\n \n target[ key ] = v;\n}\n\n\nfunction release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n let path = twKey.split('_'), tmpKey;// not optimal at all\n \n //if ( path.length === 2 ) {\n //\tconsole.log(\"dec\", twKey, dataMap[path[0]][path[1]])\n //\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n //\t\tdelete tweenableMap[twKey];\n //\t\tdelete dataMap[path[0]][path[1]];\n //\t}\n //\n //\tif ( !keepValues )\n //\t\twhile ( dataMap[path[0]].length &&\n // !dataMap[path[0]][dataMap[path[0]].length - 1] ) dataMap[path[0]].pop(); if (\n // dataMap[path[0]].length === 0 && !keepValues ) { delete dataMap[path[0]]; delete\n // muxerMap[path[0]]; delete cssMap[path[0]]; console.log(\"delete\", path[0]) } } else\n // { console.log(\"wtf\", path) }\n}\n\nexport default ( count ) => ( {\n mux: ( key, value, target, data, initials, noPropLock ) => {\n let values = value.split(' '), v;\n \n data[ key ] = data[ key ] || 0;\n noPropLock && data[ key ]++;\n data[ \"_\" + key ] = count;\n \n for ( let i = 0; i < count; i++ ) {\n v = values[ i % values.length ];\n v = is.string(v) && alias[ v ] || v;\n length.mux(key + '_' + i, v, target, data, initials, noPropLock)\n }\n \n return demux;\n }, demux, release\n} )\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = ~~(tweenable[key]);// + defaultUnits[key];\n\t\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = 0;\n\ttarget[key] = ~~value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\nimport {floatCut} from \"../../cssUtils\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = Math.min(1, Math.max(0, floatCut(tweenable[key])));\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\nimport {bool, color} from \"./(*).js\";\n\n\nconst cssShadowParser = (() => {\n\tconst VALUES_REG = /,(?![^\\(]*\\))/\n\tconst PARTS_REG = /\\s(?![^(]*\\))/\n\tconst LENGTH_REG = /^[0-9]+[a-zA-Z%]+?$/\n\t\n\tconst parseValue = str => {\n\t\tconst parts = str.split(PARTS_REG)\n\t\tconst inset = parts.includes('inset')\n\t\tconst last = parts.slice(-1)[0]\n\t\tconst color = !isLength(last) ? last : undefined\n\t\t\n\t\tconst nums = parts\n\t\t\t.filter(n => n !== 'inset')\n\t\t\t.filter(n => n !== color)\n\t\t\t.map(toNum)\n\t\tconst [offsetX, offsetY, blurRadius, spreadRadius] = nums\n\t\t\n\t\treturn {\n\t\t\tinset,\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t}\n\t}\n\t\n\tconst stringifyValue = obj => {\n\t\tconst {\n\t\t\t inset,\n\t\t\t offsetX = 0,\n\t\t\t offsetY = 0,\n\t\t\t blurRadius = 0,\n\t\t\t spreadRadius,\n\t\t\t color\n\t\t } = obj || {}\n\t\t\n\t\treturn [\n\t\t\t(inset ? 'inset' : null),\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t].filter(v => v !== null && v !== undefined)\n\t\t .map(toPx)\n\t\t .map(s => ('' + s).trim())\n\t\t .join(' ')\n\t}\n\t\n\tconst isLength = v => v === '0' || LENGTH_REG.test(v)\n\tconst toNum = v => {\n\t\tif ( !/px$/.test(v) && v !== '0' ) return v\n\t\tconst n = parseFloat(v)\n\t\treturn !isNaN(n) ? n : v\n\t}\n\tconst toPx = n => typeof n === 'number' && n !== 0 ? (n + 'px') : n\n\t\n\tconst parse = str => str.split(VALUES_REG).map(s => s.trim()).map(parseValue)\n\tconst stringify = arr => arr.map(stringifyValue).join(', ')\n\t\n\treturn {\n\t\tparse,\n\t\tstringify\n\t}\n})()\n\n\nconst defaultUnits = {\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n },\n defaultMuxers = {\n\t //blurRadius : number,\n\t inset: bool,\n\t //offsetX : number,\n\t //offsetY : number,\n\t //spreadRadius: number,\n\t color: color\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length > 2 ) {\n\t\t// dec count on transform\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\tif ( defaultMuxers[path[2]] ) {\n\t\t\tdefaultMuxers[path[2]].release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n\t\t\tif ( !dataMap[tmpKey] ) {\n\t\t\t\t//console.log(\"dec\", tmpKey, dataMap[path[0]][path[1]][path[2]])\n\t\t\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\t\tdelete dataMap[path[0]];\n\t\t\t\tdelete muxerMap[path[0]];\n\t\t\t\tdelete cssMap[path[0]];\n\t\t\t\t//console.log(\"delete color\", twKey)\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]])\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\t//tmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t// units\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", tmpKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !Object.keys(dataMap[path[0]][dataMap[path[0]].length - 1]).length )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet shadows = [],\n\t tmpValue = {};\n\tlet ti = 0, shadowMap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\tshadowMap = data[key][ti];\n\t\ttmpValue = {};\n\t\tfor ( fkey in shadowMap )\n\t\t\tif ( shadowMap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif ( defaultMuxers[fkey] ) {\n\t\t\t\t\tvalue = defaultMuxers[fkey].demux(dkey, tweenable, undefined, data, box);\n\t\t\t\t\t//continue;\n\t\t\t\t\t//console.log(dkey, tweenable[dkey])\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t\ty = 0;\n\t\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\t\ty++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ( y > 1 )\n\t\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\ttmpValue[fkey] = (value || 0);\n\t\t\t}\n\t\tshadows.push(tmpValue);\n\t}\n\t\n\ttarget[key] = cssShadowParser.stringify(shadows);\n\t//console.log(key, shadows, target[key]);\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, shadowMap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\tshadowMap = value[ti];\n\t\tif ( is.string(shadowMap) )\n\t\t\tshadowMap = cssShadowParser.parse(shadowMap)[0];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in shadowMap ) {\n\t\t\tif ( shadowMap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = shadowMap[tFnKey];\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\tif ( defaultMuxers[tFnKey] ) {\n\t\t\t\t\tdefaultMuxers[tFnKey].mux(dkey, fValue, target, data, initials, noPropLock, reOrder);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t\n\t\t\t\t\tseenUnits = {};\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"d3-ease\");","module.exports = require(\"is\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/classCallCheck\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/createClass\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/getPrototypeOf\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/inherits\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"fast-deep-equal\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/extends\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/objectWithoutProperties\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\n\nconst TweenerContext = React.createContext(null);\nexport default TweenerContext","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/toConsumableArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/get\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\n\nexport const re_cssValueWithUnit = new RegExp(\n\t\"([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['box', 'bz', 'bh', 'bw', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\"\n);\n\n/**\n * add any css val with it unit ( todo: optims&use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssAdd( val1, val2, ...argz ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\tif ( !is.array(val2) )\n\t\tval2 = [val2];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t units2 = val2.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 0;\n\t\tremap[units1[i][2]] += parseFloat(units1[i][1]);\n\t\ti++;\n\t}\n\ti = 0;\n\twhile ( i < units2.length ) {\n\t\tremap[units2[i][2]] = remap[units2[i][2]] || 0;\n\t\tremap[units2[i][2]] += parseFloat(units2[i][1]);\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn argz.length ? cssAdd(result, ...argz) : result;\n}\n\n/**\n * Multiply any css val with it unit ( todo: optims & use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssMult( val1, val ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 1;\n\t\tremap[units1[i][2]] = parseFloat(units1[i][1]) * val;\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn result;\n}\n\nexport function offset( items, start = 0 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom: item.from + start\n\t\t\t}\n\t\t)\n\t)\n}\n\nexport function scale( items, duration = 0, withOffset ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\t\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\titems = items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom : (item.from / iDuration) * duration,\n\t\t\t\tduration: (item.duration / iDuration) * duration\n\t\t\t}\n\t\t)\n\t)\n\treturn withOffset ? offset(items, withOffset) : items\n}\n\nfunction inverseValues( v ) {\n\tif ( is.number(v) )\n\t\treturn -v;\n\tif ( is.object(v) )\n\t\treturn Object.keys(v).reduce(( h, key ) => (h[key] = inverseValues(v[key]), h), {});\n\tif ( is.array(v) )\n\t\treturn v.map(( item ) => (inverseValues(item)));\n\t\n\tlet values = v.split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig);\n\t\n\treturn values.map(\n\t\t( val, i ) => (i % 2 ? -parseFloat(val) : val)\n\t).join(\"\");\n}\n\nexport function reverse( items ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\treturn items.map(\n\t\titem => {\n\t\t\titem =\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tfrom: iDuration - (item.from + item.duration),\n\t\t\t\t\t...(item.apply ? { apply: inverseValues(item.apply) } : undefined)\n\t\t\t\t};\n\t\t\treturn item;\n\t\t}\n\t)\n}\n\nconst MultiCssProps = { \"transform\": true, \"filter\": true, \"textShadow\": true, \"boxShadow\": true }\n\nexport function addCss( target, ...sources ) {\n\tlet source = sources.shift();\n\t\n\tfor ( const key in source ) {\n\t\tif ( !source.hasOwnProperty(key) )\n\t\t\tcontinue;\n\t\t\n\t\tif ( MultiCssProps[key] ) {\n\t\t\tif ( !target[key] ) {\n\t\t\t\ttarget[key] = [];\n\t\t\t}\n\t\t\tif ( !is.array(source[key]) ) {\n\t\t\t\taddCss(target[key], [source[key]]);\n\t\t\t}\n\t\t\telse addCss(target[key], source[key]);\n\t\t}\n\t\telse {\n\t\t\t// adding units\n\t\t\tif ( is.array(source[key]) ) {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\t\t\t\tif ( !is.array(target[key]) ) {\n\t\t\t\t\ttarget[key] = [...source[key], target[key]];\n\t\t\t\t}\n\t\t\t\telse target[key].push(...source[key]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\tif ( !is.object(source[key]) ) {\n\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttarget[key] = { ...source[key] };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( is.object(target[key]) && is.object(source[key]) ) {\n\t\t\t\t\taddCss(target[key], source[key]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t//else target[key].push(...source[key]);\n\t\t\t\t\ttarget[key] = addAllType(target[key], source[key])\n\t\t\t\t\t//console.log(key, target[key])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\treturn sources.length && addCss(target, ...sources) || target;\n}\n\nfunction addAllType( v1, v2 ) {\n\tif ( !v1 )\n\t\treturn v2;\n\tif ( !v2 )\n\t\treturn v1;\n\tlet values1 = ('' + v1).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t values2 = ('' + v2).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t r = values1.map(\n\t\t ( val, i ) => (i % 2 ? parseFloat(val) + parseFloat(values2[i] || 0) : val)\n\t ).filter(i => (i !== ''));\n\t\n\treturn r.length === 1 ? parseInt(r[0]) : r.join(\"\")\n}\n\nexport function extractCss( items, inverse ) {\n\tlet css = {};\n\titems = is.array(items) ? items : items && [items] || items;\n\titems.forEach(\n\t\titem => {\n\t\t\taddCss(css, item.apply)\n\t\t}\n\t);\n\tif ( inverse )\n\t\tcss = inverseValues(css);\n\t\n\t\n\t//if ( inverse && css.hasOwnProperty('opacity') )\n\t//\tcss.opacity -= 1;\n\treturn css;\n}\n\nexport function target( items, target ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\ttarget\n\t\t\t}\n\t\t)\n\t)\n}\n\nexport function shiftTransforms( items, shift = 1 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => {\n\t\t\tlet t = item.apply && item.apply.transform;\n\t\t\tif ( t ) {\n\t\t\t\tt = is.array(t) ? t : [t];\n\t\t\t\tfor ( let i = 0; i < shift; i++ )\n\t\t\t\t\tt.unshift({});\n\t\t\t\t\n\t\t\t\titem = { ...item, apply: { ...item.apply, transform: t } };\n\t\t\t}\n\t\t\treturn item;\n\t\t}\n\t)\n}","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\n\n\nconst _react_voodoo_utils_css_demux_filter_js = require(\"react-voodoo/utils/css/demux/filter.js\");\n\nwalknSetExport(_exports, \"filter\", _react_voodoo_utils_css_demux_filter_js);\nconst _react_voodoo_utils_css_demux_boxShadow_js = require(\"react-voodoo/utils/css/demux/boxShadow.js\");\n\nwalknSetExport(_exports, \"boxShadow\", _react_voodoo_utils_css_demux_boxShadow_js);\nconst _react_voodoo_utils_css_demux_transform_js = require(\"react-voodoo/utils/css/demux/transform.js\");\n\nwalknSetExport(_exports, \"transform\", _react_voodoo_utils_css_demux_transform_js);\nconst _react_voodoo_utils_css_demux_textShadow_js = require(\"react-voodoo/utils/css/demux/textShadow.js\");\n\nwalknSetExport(_exports, \"textShadow\", _react_voodoo_utils_css_demux_textShadow_js);\nconst _react_voodoo_utils_css_demux_backgroundColor_js = require(\"react-voodoo/utils/css/demux/backgroundColor.js\");\n\nwalknSetExport(_exports, \"backgroundColor\", _react_voodoo_utils_css_demux_backgroundColor_js);\n\nexport const backgroundColor = _exports.backgroundColor;\n\nexport const boxShadow = _exports.boxShadow;\n\nexport const filter = _exports.filter;\n\nexport const textShadow = _exports.textShadow;\n\nexport const transform = _exports.transform;\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\nimport {addCss} from \"../tweenTools\";\nimport {\n\texpandShorthandProperty, isShorthandProperty, isValidDeclaration, props\n} from \"./cssUtils\";\nimport cssDemuxers from \"./demux/(*).js\";\n\nimport primitiveTypes, {length, multi, number, ratio, color, any} from \"./demux/typed/(*).js\";\n\nconst cssDemux = {\n\t...cssDemuxers,\n\theight : length,\n\twidth : length,\n\ttop : length,\n\tleft : length,\n\tright : length,\n\tbottom : length,\n\tmarginTop : length,\n\tmarginLeft : length,\n\tmarginRight : length,\n\tmarginBottom : length,\n\tpaddingTop : length,\n\tpaddingLeft : length,\n\tpaddingRight : length,\n\tpaddingBottom : length,\n\tborderRadius : length,\n\tborderTopColor : color,\n\tborderLeftColor : color,\n\tborderRightColor : color,\n\tborderBottomColor: color,\n\tborderTopWidth : length,\n\tborderLeftWidth : length,\n\tborderRightWidth : length,\n\tborderBottomWidth: length,\n\ttransformOrigin : multi(2),\n\tzIndex : number,\n\topacity : ratio,\n};\n\n\nexport function getMuxerTypeOfProperty( property ) {\n\tlet type = props[property],\n\t types = type && type.types;\n\tif ( !types ) {\n\t\treturn any;\n\t}\n\tfor ( let i = 0; i < types.length; i++ ) {\n\t\tswitch ( types[i] ) {\n\t\t\tcase \"length\":\n\t\t\tcase \"length-percentage-calc\":\n\t\t\t\treturn length;\n\t\t\tcase \"number\":\n\t\t\tcase \"integer\":\n\t\t\t\treturn number;\n\t\t\tcase \"color\":\n\t\t\t\treturn color;\n\t\t}\n\t}\n\treturn any;\n};\n\nexport function clearTweenableValue( cssKey, twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tmuxerMap[path[0]]?.release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n}\n\n/**\n * Interpolate float/int values to css basing the css prop type\n * @param tweenable {Object} map of tweenable values\n * @param css {Object} map of css value to be push in DOM\n * @param demuxers {Object} map of numeric to css converter\n * @param data {Object} map of converters contexts\n * @param box {Object} xyz of the parent viewbox\n */\nexport function muxToCss( tweenable, css, demuxers, data, box ) {\n\tObject.keys(demuxers)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t demuxers[key].demux(key, tweenable, css, data, box)\n\t\t }\n\t )\n}\n\n/**\n * Instanciate interpolators & init css/tweenable values basing the tween\n * @param tween\n * @param deMuxedTween\n * @param initials\n * @param data\n * @param demuxers\n * @param noPropLock\n * @param reOrder\n * @returns {{}}\n */\nexport function deMuxTween( tween, deMuxedTween, initials, data, demuxers, noPropLock, reOrder ) {\n\tlet fTween = {}, excluded = {};\n\ttween && Object.keys(tween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] )\n\t\t\t\t fTween[key] = tween[key];\n\t\t\t else if ( isValidDeclaration(key, tween[key]) ) {\n\t\t\t\t\n\t\t\t\t if ( isShorthandProperty(key) ) {\n\t\t\t\t\t expandShorthandProperty(key, tween[key], fTween);\n\t\t\t\t }\n\t\t\t\t else fTween[key] = tween[key];\n\t\t\t }\n\t\t\t else {\n\t\t\t\t\t\t\t //excluded[key] = tween[key];\n\t\t\t\t\t\t\t fTween[key] = tween[key];\n\t\t\t }\n\t\t });\n\t\n\tfTween && Object.keys(fTween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] ) {//key, value, target, data, initials\n\t\t\t\t (demuxers[key] = cssDemux[key]).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t\t }\n\t\t\t else if ( isValidDeclaration(key, tween[key]) )\n\t\t\t\t (demuxers[key] = getMuxerTypeOfProperty(key)).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t\t else\n\t\t\t\t (demuxers[key] = any).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t }\n\t );\n\treturn excluded;\n}\n\n/**\n * Init/update muxers & initial css values of targets in a tween line / axis\n * @param tweenLine\n * @param initials\n * @param data\n * @param demuxers\n * @param noPropLock\n * @returns {*}\n */\nexport function deMuxLine( tweenLine, initials, data, demuxers, noPropLock ) {\n\tnoPropLock = noPropLock && {};\n\tlet allPropsById = {},\n\t twAxis = tweenLine.reduce(\n\t\t ( line, tween ) => {\n\t\t\t let demuxedTween = {};\n\t\t\t demuxers[tween.target] = demuxers[tween.target] || {};\n\t\t\t initials[tween.target] = initials[tween.target] || {};\n\t\t\t data[tween.target] = data[tween.target] || {};\n\t\t\t\n\t\t\t if ( !tween.type || tween.type === \"Tween\" ) {\n\t\t\t\t !noPropLock && addCss(allPropsById[tween.target] = allPropsById[tween.target] || {}, tween.apply);\n\t\t\t\t //console.log(\"merged\", tween.apply)\n\t\t\t\t deMuxTween(tween.apply, demuxedTween, initials[tween.target], data[tween.target], demuxers[tween.target], true);\n\t\t\t\t line.push(\n\t\t\t\t\t {\n\t\t\t\t\t\t ...tween,\n\t\t\t\t\t\t apply: demuxedTween\n\t\t\t\t\t });\n\t\t\t }\n\t\t\t else line.push({ ...tween });\n\t\t\t return line\n\t\t },\n\t\t []\n\t );\n\t!noPropLock && Object.keys(allPropsById)\n\t .forEach(\n\t\t id => deMuxTween(allPropsById[id], {}, {}, data[id], demuxers[id])\n\t )\n\t;\n\treturn twAxis;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"tween-axis\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport tweenAxis from \"tween-axis\";\n\n\nconst recyclableTweenAxis = [];\n\n/**\n * Override the TweenAxis Objects to automatically deal with recycling\n */\nexport default class CssTweenAxis extends tweenAxis {\n\t\n\tconstructor( cfg, scope ) {\n\t\tif ( recyclableTweenAxis.length ) {\n\t\t\tlet recyled = recyclableTweenAxis.pop();\n\t\t\trecyled.scope = scope;\n\t\t\tif ( is.array(cfg) ) {\n\t\t\t\trecyled.localLength = 1;\n\t\t\t\trecyled.mount(cfg, scope);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( cfg.Axis )\n\t\t\t\t\trecyled.mount(cfg.Axis, scope);\n\t\t\t}\n\t\t\treturn recyled;\n\t\t}\n\t\tsuper(...arguments)\n\t}\n\t\n\tdestroy() {\n\t\t\n\t\tthis.scope = undefined;\n\t\tthis.__marks.length = 0;\n\t\tthis.__marksLength.length = 0;\n\t\tthis.__marksKeys.length = 0;\n\t\tthis.__processors.length = 0;\n\t\tthis.__config.length = 0;\n\t\tthis.__activeProcess.length = 0;\n\t\t\n\t\tthis.__activeProcess.length = 0;\n\t\tthis.__outgoing.length = 0;\n\t\tthis.__incoming.length = 0;\n\t\tthis.__cPos = 0;\n\t\tthis.duration = 0;\n\t\tthis.__cIndex = 0;\n\t\tthis.__cMaxKey = 1;\n\t\trecyclableTweenAxis.push(this);\n\t}\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\n/**\n * Old school dom utils & events managers\n */\n\nlet\n is = require('is'),\n isBrowser = typeof window !== 'undefined',\n isTouch = isBrowser && ( function is_touch_device() {\n var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n var mq = function ( query ) {\n return window.matchMedia && window.matchMedia(query).matches;\n }\n \n if ( ( 'ontouchstart' in window ) || window.DocumentTouch && document instanceof DocumentTouch ) {\n return true;\n }\n \n // include the 'heartz' as a way to have a non matching MQ to help terminate the\n // join https://git.io/vznFH\n var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n }() ),\n _dom = isBrowser ? {\n prefix : ( /webkit/i ).test(navigator.appVersion) ? 'webkit' :\n ( /firefox/i ).test(navigator.userAgent) ? 'Moz' :\n ( /trident/i ).test(navigator.userAgent) ? 'ms' :\n 'opera' in window ? 'O' : '',\n dashedPrefix: ( /webkit/i ).test(navigator.appVersion) ? '-webkit-' :\n ( /firefox/i ).test(navigator.userAgent) ? '-moz-' :\n ( /trident/i ).test(navigator.userAgent) ? '-ms-' :\n 'opera' in window ? '-o-' : ''\n } : {\n prefix : '',\n dashedPrefix: ''\n },\n __ = {\n onPageHided : [],\n onPageShown : [],\n dragging : [],\n dragEnabled : [],\n dragEnabledDesc : [],\n fingers : {},\n nbFingers : 0,\n dragstartAnywhere: function ( e ) {\n let o,\n me = __,\n i = me.dragEnabled.indexOf(this),\n finger,\n desc, fingers = [];\n \n if ( i === -1 ) {\n return;\n }\n //e.preventDefault();\n //e.stopPropagation();\n \n if ( !me.nbFingers ) {\n Dom.addEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere,\n });\n Dom.addEvent(this,\n {\n 'click': me.dropWithoutClick\n }, null, null, null, true);\n }\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let t = 0, ln = fingers.length; t < ln; t++ ) {\n finger = fingers[ t ];\n \n \n desc = me.dragEnabledDesc[ i ];\n \n if ( desc.nbFingers ) continue;\n \n me.nbFingers++;\n \n me.fingers[ finger.identifier ] = me.fingers[ finger.identifier ] || [];\n me.fingers[ finger.identifier ].push(desc);\n \n \n desc.nbFingers++;\n \n desc._startPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._startPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n desc._startTs = e.timeStamp;\n \n \n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dragstart.length; o++ )\n desc.dragstart[ o ][ 0 ].call(desc.dragstart[ o ][ 1 ] ||\n this, e, finger, desc);\n }\n },\n dragAnywhere : function ( e ) {\n let o,\n me = __,\n finger, fingers = [], stopped,\n desc = __.dragging[ 0 ];\n \n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n desc = me.fingers[ finger.identifier ];\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n if ( stopped ) {\n desc._lastPos.x = desc._startPos.x = _dom.prefix == 'MS'\n ? finger.x\n : finger.pageX;\n desc._lastPos.y = desc._startPos.y = _dom.prefix == 'MS'\n ? finger.y\n : finger.pageY;\n return;\n }\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.drag.length; o++ )\n stopped = desc.drag[ o ][ 0 ].call(desc.drag[ o ][ 1 ] || this, e,\n finger,\n desc) === false;\n }\n )\n \n }\n },\n dropWithoutClick : function ( e ) {\n if ( __.preventNextClick ) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n __.preventNextClick = false;\n }\n Dom.removeEvent(this,\n {\n 'click': this.dropWithoutClick\n });\n },\n dropAnywhere : function ( e ) {\n let o,\n me = __, finger, fingers = [],\n prevent;\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n me.nbFingers--;\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n \n \n desc.nbFingers--;\n prevent = prevent || desc.mouseDrag && ( e.timeStamp - desc._startTs > 250 );\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dropped.length; o++ )\n desc.dropped[ o ][ 0 ].call(desc.dropped[ o ][ 1 ] ||\n this, e,\n finger, desc);\n \n \n }\n )\n me.fingers[ finger.identifier ] = null;\n }\n if ( prevent ) {\n me.preventNextClick = true;\n }\n if ( !me.nbFingers ) {\n Dom.removeEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere\n });\n }\n },\n getDraggable : function ( node, mouseDrag, touchDrag ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i === -1 ) {\n this.dragEnabled.push(node);\n this.dragEnabledDesc.push(\n desc = {\n mouseDrag,\n touchDrag,\n nbFingers: 0,\n locks : 0,\n _startPos: {\n x: 0,\n y: 0\n },\n _lastPos : {\n x: 0,\n y: 0\n },\n dragstart: [],\n drag : [],\n dragEnd : [],\n dropped : []\n }\n );\n //debugger;\n Dom.addEvent(node,\n {\n 'mousedown' : mouseDrag && this.dragstartAnywhere,\n 'touchstart': touchDrag && this.dragstartAnywhere\n }, null, null, null, true);\n }\n else desc = this.dragEnabledDesc[ i ];\n return desc;\n },\n freeDraggable : function ( node ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i !== -1 ) {\n this.dragEnabled.splice(i, 1);\n this.dragEnabledDesc.splice(i, 1);\n \n Dom.removeEvent(node,\n {\n 'mousedown' : this.dragstartAnywhere,\n 'touchstart': this.dragstartAnywhere\n });\n }\n },\n \n addEvent : function ( node, type, fn, bubble ) {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n },\n removeEvent: function ( node, type, fn, bubble ) {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n },\n rmDragFn : function ( arr, fn, scope ) {\n for ( let i = 0, ln = arr.length; i < ln; i++ ) {\n if ( arr[ i ][ 0 ] === fn )\n return arr.splice(i, 1);\n }\n \n console.warn(\"Rm event : Listener not found !!\");\n },\n },\n Dom = {\n addEvent : function ( node, type, fn, mouseDrag, touchDrag = true, bubble ) {\n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) && type[ o ] )\n this.addEvent(node, o, type[ o ], mouseDrag, touchDrag, bubble);\n return;\n }\n else if ( type === 'dragstart' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dragstart.push([fn]);\n }\n else if ( type === 'drag' ) {\n __.getDraggable(node, mouseDrag, touchDrag).drag.push([fn]);\n }\n else if ( type === 'dropped' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dropped.push([fn]);\n }\n else {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, { passive: false });\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n }\n \n },\n removeEvent: function ( node, type, fn, scope, bubble ) {\n let i, desc;\n \n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) )\n this.removeEvent(node, o, type[ o ], scope);\n \n }\n else if ( /^(drag|drop)/.test(type) ) {\n desc = __.getDraggable(node);\n __.rmDragFn(desc[ type ], fn, scope);\n if ( !desc.dragstart.length\n && !desc.drag.length\n && !desc.dragEnd.length\n && !desc.dropped.length )\n __.freeDraggable(node);\n }\n else {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n }\n \n },\n offset : function ( elem ) {// @todo\n let dims = {\n top : 0,\n left : 0,\n width : elem.offsetWidth,\n height: elem.offsetHeight\n };\n while ( elem ) {\n dims.top = dims.top + parseInt(elem.offsetTop);\n dims.left = dims.left + parseInt(elem.offsetLeft);\n elem = elem.offsetParent;\n }\n return dims;\n },\n \n \n /**\n * Find the react component that generate element dom node\n * @param element\n * @returns {[React.Component]}\n */\n findReactParents( element ) {\n let fiberNode, comps = [element];\n for ( const key in element ) {\n \n if ( key.startsWith('__reactInternalInstance$') || key.startsWith('__reactFiber$') ) {\n fiberNode = element[ key ];\n while ( fiberNode.return ) {\n if ( fiberNode.stateNode && !comps.includes(fiberNode.stateNode) )\n comps.push(fiberNode.stateNode)\n fiberNode = fiberNode.return;\n }\n return comps;\n }\n }\n return element.parentNode && this.findReactParents(element.parentNode);\n }\n \n };\nexport default Dom;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst\n\tis = require('is'),\n\teasingFn = require('d3-ease'),\n\tsignOf = function sign( x ) {\n\t\treturn typeof x === 'number' ? x ? x < 0 ? -1 : 1 : x === x ? x : NaN : NaN;\n\t},\n\tabs = Math.abs,\n\tfloor = Math.floor,\n\tround = Math.round,\n\tmin = Math.min,\n\tmax = Math.max,\n\tfloatCut = ( v = 0 ) => v.toFixed(3),\n\tconsts = {\n\t\tvelocityResetTm: .150,\n\t\tclickTm : 250\n\t};\n\n\n/**\n * Predict inertia dist & target basing velocity\n * @param _\n */\nexport function applyInertia( _ ) {\n\tlet velSign = signOf(_.lastVelocity);\n\t\n\tif ( _.disabled ) {\n\t\t_.loopsTarget = 0;\n\t\t_.loopsVelSum = 0;\n\t\t_.targetDist = 0;\n\t\t_.targetDuration = 0;\n\t}\n\telse {\n\t\t// calc momentum distance...\n\t\t// get nb loop needed to get vel < .05\n\t\t_.loopsTarget = floor(Math.log(.05 / abs(_.lastVelocity)) / Math.log(.9));\n\t\t\n\t\t// get velocity sum basing on nb loops needed\n\t\t_.loopsVelSum = (Math.pow(.9, _.loopsTarget) - abs(_.lastVelocity)) / (.9 - 1);\n\t\t\n\t\t// deduce real dist of momentum\n\t\t_.targetDist = (_.loopsVelSum * _.refFPS * velSign) / 1000 || 0;\n\t\t_.targetDuration = abs(_.loopsTarget * _.refFPS * velSign) || 0;\n\t\t//console.warn(\" _.targetDist\", _.targetDist, _.lastVelocity);\n\t}\n}\n\n/**\n * Main inertia class\n * @type {module.exports}\n */\nexport default class Inertia {\n\tstatic config = {\n\t\tbounds : true,\n\t\tsnapToBounds: true\n\t};\n\t\n\tconstructor( opt ) {\n\t\tlet _ = this._ = {};\n\t\t_.conf = {\n\t\t\t...this.constructor.config,\n\t\t\t...opt\n\t\t};\n\t\t\n\t\tthis.active = false;\n\t\t_.pos = opt.value || 0;\n\t\t_.refFPS = 16;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.currentStop = 0;\n\t\t_.lastInertiaPos = 0;\n\t\t_.stops = _.conf.stops;\n\t\t_.disabled = _.conf.disabled;\n\t\t_.wayPoints = _.conf.wayPoints;\n\t\t_.inertiaFn = easingFn.easePolyOut;\n\t\t_.targetWayPointIndex = 0;\n\t\t\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tupdateConf( opt ) {\n\t\tlet _ = this._;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.stops = opt.stops;\n\t\t_.disabled = opt.disabled;\n\t\t_.wayPoints = opt.wayPoints;\n\t\t_.conf.willStop = opt.willStop;\n\t\t_.conf.willSnap = opt.willSnap;\n\t\t_.conf.onStop = opt.onStop;\n\t\t_.conf.onSnap = opt.onSnap;\n\t\t_.conf.shouldLoop = opt.shouldLoop;\n\t}\n\t\n\tstartMove() {\n\t\tlet _ = this._;\n\t\t_.baseTS = _.startTS = Date.now() / 1000;\n\t\t_.lastVelocity = _.lastIVelocity = 0;\n\t\t_.lastAccel = 0;\n\t\t_.posDiff = 0;\n\t\t_.loopsDiff = 0;\n\t\tthis.active = true;\n\t\tthis.holding = true;\n\t\t_.inertia = false;\n\t}\n\t\n\thold( nextPos ) {\n\t\tlet _ = this._,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t loop,\n\t\t now = Date.now() / 1000,//e.timeStamp,\n\t\t sinceLastPos = (now - _.baseTS),\n\t\t pos = nextPos,//_.lastHoldPos + delta,\n\t\t iVel = delta / sinceLastPos;\n\t\t\n\t\t_.lastHoldPos = nextPos;\n\t\t//if (is.nan(pos))\n\t\t//\tdebugger\n\t\t\n\t\tif ( !_.lastBaseTs ) {// create base pts\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = _.baseTS;\n\t\t}\n\t\t\n\t\tif ( sinceLastPos < .003 ) {\n\t\t\t//console.log(\"hold fast\", delta, _.baseTS, sinceLastPos);\n\t\t\t// skip/ignore\n\t\t}\n\t\telse if (// direction changed for velocityResetTm\n\t\t\t(\n\t\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t\t||\n\t\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t\t||\n\t\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t\t) &&\n\t\t\t(now - _.lastBaseTs) > consts.velocityResetTm\n\t\t) {\n\t\t\t//console.log(\"reset\", _.lastBaseTs, _.lastVelocity);\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = now;\n\t\t\t_.lastVelocity = 0;\n\t\t\t_.lastIVelocity = 0;\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t}\n\t\telse if (// dir changed fast\n\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t||\n\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t||\n\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t) {\n\t\t\t//ignore\n\t\t}\n\t\telse {\n\t\t\t_.lastIVelocity = iVel;\n\t\t\t_.lastVelocity = ((pos) - (_.lastBasePos)) / (now - _.lastBaseTs);\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t// clear snap\n\t\t\t_.targetWayPoint = undefined;\n\t\t\t_.targetWayPointIndex = undefined;\n\t\t}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( pos > _.max ) {\n\t\t\t\tpos = _.max// + min((pos - _.max) / 10, 10);\n\t\t\t}\n\t\t\telse if ( pos < _.min ) {\n\t\t\t\tpos = _.min// - min((_.min - pos) / 10, 10);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\twhile ( (loop = _.conf.shouldLoop(pos, delta)) ) {\n\t\t\t\tpos += loop;\n\t\t\t}\n\t\t}\n\t\t_.pos = pos;\n\t\t\n\t}\n\t\n\trelease() {\n\t\tlet _ = this._,\n\t\t velSign = signOf(_.lastVelocity);\n\t\t\n\t\tthis.holding = false;\n\t\t\n\t\t// calc momentum distance...\n\t\tapplyInertia(_);\n\t\t\n\t\t_.lastHoldPos = undefined;\n\t\t\n\t\t_.lastBasePos = undefined;\n\t\t_.lastBaseTs = undefined;\n\t\t_.holding = false;\n\t\t\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\tlet loop, nPos=_.pos + _.targetDist;\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nPos, 0)) ) {\n\t\t//\t\tnPos += loop;\n\t\t//\t\tif ( _.inertia ) {\n\t\t//\t\t\t//_.targetDist+=loop;\n\t\t//\t\t\t//_.lastInertiaPos+=loop;\n\t\t//\t\t}\n\t\t//\t\t//this.teleport(loop);\n\t\t//\t}\n\t\t//\tif (nPos!==_.pos + _.targetDist)\n\t\t//}\n\t\tif ( _.conf.bounds && _.conf.snapToBounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\t//else {\n\t\tif ( !_.targetDuration )\n\t\t\t_.targetDuration = 50;\n\t\t\n\t\t//console.log(_);\n\t\tthis.active = true;\n\t\t_.inertia = true;\n\t\t_.lastInertiaPos = 0;\n\t\t_.inertiaStartTm =\n\t\t\t_.inertiaLastTm = Date.now();\n\t\t\n\t\t\n\t\t//}\n\t\tthis._doSnap(null, 500)\n\t\t_.conf.willEnd?.(_.targetDist + _.pos, _.targetDist, _.targetDuration);\n\t}\n\t\n\tupdate( at = Date.now() ) {\n\t\tlet _ = this._, nextValue, loop;\n\t\tlet\n\t\t\tpos = _.inertiaFn((at - _.inertiaStartTm) / _.targetDuration) * _.targetDist;\n\t\t\n\t\tif ( !_.inertia ) {\n\t\t\t//if ( _.conf.shouldLoop ) {\n\t\t\t//\twhile ( (loop = _.conf.shouldLoop(_.pos, 0)) ) {\n\t\t\t//\t\tthis.teleport(loop);\n\t\t\t//\t}\n\t\t\t//}\n\t\t\treturn _.pos;\n\t\t}\n\t\tlet\n\t\t\tdelta = pos - _.lastInertiaPos;\n\t\t_.lastInertiaPos = pos;\n\t\t\n\t\tif ( (at - _.inertiaStartTm) >= _.targetDuration ) {\n\t\t\t_.inertia = this.active = false;\n\t\t\t_.lastInertiaPos = delta = 0;\n\t\t\t_.targetDist = 0;\n\t\t\tif ( _.targetWayPoint ) {\n\t\t\t\tdelta = _.targetWayPoint.at - _.pos;\n\t\t\t\t//console.log(\"snap done \", _.targetWayPoint, _.pos + delta);\n\t\t\t\t_.currentWayPoint = _.targetWayPoint;\n\t\t\t\t_.currentWayPointIndex = _.targetWayPointIndex;\n\t\t\t\t_.targetWayPoint = null;\n\t\t\t\t_.targetWayPointIndex = null;\n\t\t\t\t//_.lastSnapTm = Date.now();\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.onStop ) {\n\t\t\t\t_.conf.onStop(_.pos, _.currentWayPoint)\n\t\t\t}\n\t\t\tif ( _.conf.onSnap ) {\n\t\t\t\t_.conf.onSnap(_.currentWayPointIndex, _.currentWayPoint)\n\t\t\t}\n\t\t}\n\t\t\n\t\tdelta = delta || 0;\n\t\t//console.log(_.pos + delta);\n\t\tnextValue = _.pos + delta;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet t = nextValue;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, delta)) ) {\n\t\t\t\t//console.warn(\"loop update\", loop, nextValue);\n\t\t\t\tnextValue += loop;\n\t\t\t\tif ( _.inertia ) {\n\t\t\t\t\t//_.targetDist+=loop;\n\t\t\t\t\t//_.lastInertiaPos+=loop;\n\t\t\t\t}\n\t\t\t\t//this.teleport(loop);\n\t\t\t}\n\t\t}\n\t\t\n\t\t_.pos = nextValue;\n\t\t\n\t\treturn nextValue;\n\t}\n\t\n\tsetPos( pos ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.inertia = false;\n\t\tthis.active = false;\n\t\t_.lastInertiaPos = 0;\n\t\t_.targetDist = 0;\n\t\t_.inertiaStartTm = 0;\n\t\t_.inertiaLastTm = 0;\n\t\t_.targetDuration = 0;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet loop, nextValue = pos;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, _.pos - pos)) ) {\n\t\t\t\tnextValue += loop;\n\t\t\t\t//this.teleport(loop);\n\t\t\t\t//console.warn(\"loop update\", nextValue, pos);\n\t\t\t}\n\t\t\tpos = nextValue;\n\t\t}\n\t\t_.pos = pos;\n\t\tif ( _.conf.bounds ) {\n\t\t\t_.pos = max(_.pos, _.min);\n\t\t\t_.pos = min(_.pos, _.max);\n\t\t}\n\t}\n\t\n\tsetWayPoints( wayPoints ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.wayPoints = wayPoints;\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tteleport( loopDist ) {\n\t\tlet _ = this._, nextValue;\n\t\tif ( !_.inertia )\n\t\t\treturn _.pos += loopDist;\n\t\t\n\t\t//_.lastInertiaPos += loopDist;\n\t\t_.pos += loopDist\n\t\t//console.log(\"setPos\", _.lastInertiaPos);\n\t}\n\t\n\tdispatch( delta, tm = 500 ) {\n\t\tlet _ = this._,\n\t\t now = Date.now(),\n\t\t pos;\n\t\t\n\t\tthis.active = true;\n\t\t\n\t\t// if no inertia has started || if direction has change\n\t\tif ( !_.inertia || signOf(delta) !== signOf(_.targetDist) ) {\n\t\t\t_.inertia = true;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t_.inertiaStartTm =\n\t\t\t\t_.inertiaLastTm = now;\n\t\t\t\n\t\t\t_.targetDist = delta;\n\t\t\t_.targetDuration = tm;\n\t\t}\n\t\telse {\n\t\t\t//_.inertiaStartTm =\n\t\t\t//_.inertiaLastTm = now;\n\t\t\t//_.lastInertiaPos = 0;\n\t\t\t_.targetDist += delta;\n\t\t\t_.targetDuration += tm / 2;\n\t\t}\n\t\t//\n\t\t//if ( _.conf.maxJump ) {\n\t\t//\n\t\t//}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\tthis._doSnap(signOf(delta), 750)\n\t}\n\t\n\t\n\t_detectCurrentSnap() {\n\t\tlet _ = this._,\n\t\t pos = _.pos,\n\t\t i;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( floatCut(_.wayPoints[i].at) === floatCut(pos) ) {\n\t\t\t\t\t_.currentWayPoint = _.wayPoints[i];\n\t\t\t\t\t_.currentWayPointIndex = i;\n\t\t\t\t\t//console.warn(\"snap set\", i);\n\t\t\t\t\t\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t}\n\t}\n\t\n\t_doSnap( forceSnap, maxDuration = 2000 ) {\n\t\tlet _ = this._,\n\t\t pos = _.targetDist + (_.pos - (_.lastInertiaPos || 0)),\n\t\t lPos = pos,\n\t\t loopDec = 0,\n\t\t target,\n\t\t mid,\n\t\t i,\n\t\t loop;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\t\n\t\t\t// apply loops to do to find the final wayPoint\n\t\t\tif ( _.conf.shouldLoop ) {\n\t\t\t\twhile ( (loop = _.conf.shouldLoop(lPos, 0)) ) {\n\t\t\t\t\tlPos += loop;\n\t\t\t\t\tloopDec += loop;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( _.wayPoints[i].at > lPos )\n\t\t\t\t\tbreak;\n\t\t\t\n\t\t\tif ( i === _.wayPoints.length ) {\n\t\t\t\ti--\n\t\t\t}\n\t\t\telse if ( i === 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmid = (_.wayPoints[i].at - _.wayPoints[i - 1].at) / 2;\n\t\t\t\tmid = _.wayPoints[i - 1].at + (mid * ((_.wayPoints[i].gravity || 1) / (_.wayPoints[i - 1].gravity || 1)));\n\t\t\t\t\n\t\t\t\tif ( forceSnap ) forceSnap < 0 && i--;\n\t\t\t\telse if ( lPos < mid ) i--;\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.maxJump && is.number(_.currentWayPointIndex) ) {\n\t\t\t\tlet d = (i - _.currentWayPointIndex);\n\t\t\t\t//console.log('Inertia::_doSnap:154: ', i, d);\n\t\t\t\tif ( abs(d) > _.conf.maxJump ) {\n\t\t\t\t\t//console.log('max: ', i, d);\n\t\t\t\t\ti = _.currentWayPointIndex + signOf(d) * _.conf.maxJump;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttarget = _.wayPoints[i].at;\n\t\t\t\n\t\t\tif ( _.conf.willSnap ) {\n\t\t\t\t_.conf.willSnap(i, _.wayPoints[i]);\n\t\t\t}\n\t\t\t\n\t\t\t_.lastInertiaPos = _.lastInertiaPos || 0;\n\t\t\ttarget = target - (_.pos - _.lastInertiaPos) - loopDec;\n\t\t\t_.targetDuration = max(50, min(maxDuration, abs((_.targetDuration / _.targetDist) * target))) || 0;\n\t\t\t//console.log(\"do snap\", i, target, loopDec);\n\t\t\t_.targetDist = target;\n\t\t\t_.targetWayPoint = _.wayPoints[i];\n\t\t\t_.targetWayPointIndex = i;\n\t\t}\n\t\telse {\n\t\t\ttarget = ~~(_.pos - _.lastInertiaPos);\n\t\t\t\n\t\t\tif ( !_.conf.infinite ) {\n\t\t\t\tif ( target > _.max ) {\n\t\t\t\t\ttarget = _.max - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t\telse if ( target < _.min ) {\n\t\t\t\t\ttarget = _.min - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\t\n\tsetBounds( min, max ) {\n\t\tlet _ = this._;\n\t\t//console.log('Inertia::setBounds:245: ', min, max);\n\t\t_.min = min;\n\t\t_.max = max;\n\t}\n\t\n\tisInbound( nextPos ) {\n\t\tlet _ = this._, loop,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t pos = (_.targetDist || 0) + (_.pos - (_.lastInertiaPos || 0)) + delta;\n\t\t//if ( _.conf.infinite ) return false;\n\t\t//\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nextValue)) ) {\n\t\t//!(pos >= _.min && pos <= _.max) && console.warn(\"out\", _.pos, pos, delta);\n\t\t//\t\tpos += loop;\n\t\t//\t}\n\t\t//}\n\t\treturn pos >= _.min && pos <= _.max;\n\t}\n\t\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport * as easingFn from \"d3-ease\";\nimport deepEqual from \"fast-deep-equal\";\nimport is from \"is\";\nimport React from \"react\";\nimport ReactDom from \"react-dom\";\nimport TweenerContext\n from \"../comps/TweenerContext\";\nimport {clearTweenableValue, deMuxLine, deMuxTween, muxToCss} from \"../utils/css\";\nimport tweenAxis\n from \"../utils/CssTweenAxis\";\nimport domUtils from \"../utils/dom\";\nimport Inertia from '../utils/inertia';\n\n\nlet isBrowserSide = (new Function(\"try {return this===window;}catch(e){ return false;}\"))(),\n isArray = is.array,\n _live, lastTm, _running = [];\n\n// Axis Interpolation timer ( not the rendering loop ! )\nconst Runner = {\n\trun : function ( tl, ctx, duration, cb ) {\n\t\tlet apply = ( pos, size ) => tl.go(pos / size, ctx);\n\t\t_running.push({ apply, duration, cpos: 0, cb });\n\t\ttl.go(0, ctx, true);//reset tl\n\t\t\n\t\tif ( !_live ) {\n\t\t\t_live = true;\n\t\t\tlastTm = Date.now();\n\t\t\t// console.log(\"TL runner On\");\n\t\t\tsetTimeout(this._tick, 16);\n\t\t}\n\t},\n\t_tick: function _tick() {\n\t\tlet i = 0, o, tm = Date.now(), delta = tm - lastTm;\n\t\tlastTm = tm;\n\t\tfor ( ; i < _running.length; i++ ) {\n\t\t\t_running[i].cpos = Math.min(delta + _running[i].cpos, _running[i].duration);//cpos\n\t\t\t_running[i].apply(\n\t\t\t\t_running[i].cpos, _running[i].duration\n\t\t\t);\n\t\t\t// console.log(\"TL runner \",_running[i][3]);\n\t\t\tif ( _running[i].cpos == _running[i].duration ) {\n\t\t\t\t\n\t\t\t\t_running[i].cb && setTimeout(_running[i].cb);\n\t\t\t\t_running.splice(i, 1), i--;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif ( _running.length )\n\t\t\tsetTimeout(_tick, 16);\n\t\telse {\n\t\t\t// console.log(\"TL runner Off\");\n\t\t\t_live = false;\n\t\t}\n\t},\n};\n/**\n * The main tweener component\n */\nexport default class Tweener extends React.Component {\n\t\n\taxes = {};\n\t_scrollWatcherByAxis = {};\n\t\n\t// ------------------------------------------------------------\n\t// -------------------- TweenRefs utils -----------------------\n\t// ------------------------------------------------------------\n\t_swap = {};\n\t\n\tconstructor( props ) {\n\t\tsuper(...arguments);\n\t\tlet _ = this._ = {\n\t\t\trefs : {},\n\t\t\tmuxByTarget: {},\n\t\t};\n\t\t_.box = {\n\t\t\tx: 100,\n\t\t\ty: 100,\n\t\t\tz: 800\n\t\t};\n\t\tthis.__isTweener = true;\n\t\t_._rafLoop = this._rafLoop.bind(this);\n\t\t_.rootRef = this.props.forwardedRef || React.createRef();\n\t\t_.options = {\n\t\t\tmaxClickTm : 200,\n\t\t\tmaxClickOffset: 5,\n\t\t\t...(props.tweenerOptions || {})\n\t\t};\n\t\t_.tweenRefCSS = {};\n\t\t_.tweenRefs = {};\n\t\t_.tweenRefMaps = {};\n\t\t_.iMapOrigin = {};\n\t\t_.tweenRefInitialData = {};\n\t\t_.tweenEnabled = true;\n\t\t_.tweenRefOrigin = {};\n\t\t_.tweenRefOriginCss = {};\n\t\t_.muxDataByTarget = _.muxDataByTarget || {};\n\t\t_.tweenRefDemuxed = _.tweenRefDemuxed || {};\n\t\t_.tweenRefTargets = _.tweenRefTargets || [];\n\t\t_.runningAnims = _.runningAnims || [];\n\t\t\n\t\t_.scrollHook = [];\n\t\t_.activeInertia = [];\n\t\t_.defaultAxesPosition = props.tweenerOptions?.defaultAxesPosition;\n\t\tprops.tweenerOptions?.ref?.(this);\n\t\t\n\t\tisBrowserSide && window.addEventListener(\n\t\t\t\"resize\",\n\t\t\tthis._.onResize = ( e ) => {//@todo\n\t\t\t\tthis._updateBox();\n\t\t\t\tthis._updateTweenRefs();\n\t\t\t\t_.rootRef?.current?.windowDidResize?.(e);\n\t\t\t});\n\t}\n\t\n\t/**\n\t * Register tweenable element\n\t * return its current style\n\t * @param id\n\t * @param iStyle\n\t * @param iMap\n\t * @param pos\n\t * @param noref\n\t * @param mapReset\n\t * @returns {style,ref}\n\t */\n\ttweenRef( id, iStyle = {}, iMap = {}, pos, ref, noref, mapReset ) {// ref initial style\n\t\t\n\t\t\n\t\tlet _ = this._,\n\t\t tweenableMap = {};\n\t\t\n\t\tlet initials = {};\n\t\tif ( !_.tweenRefs[id] )\n\t\t\t_.tweenRefTargets.push(id);\n\t\t\n\t\tif ( _.tweenRefs[id] && (// if node exist hot switch initial values\n\t\t\tmapReset\n\t\t\t|| (_.iMapOrigin[id] !== iMap || !deepEqual(iMap, _.iMapOrigin[id]))\n\t\t\t|| (_.tweenRefOriginCss[id] !== iStyle || !deepEqual(iStyle, _.tweenRefOriginCss[id]))\n\t\t) ) {\n\t\t\t\n\t\t\t//console.warn('ref exist & style is !==', id, iStyle,\n\t\t\t// _.tweenRefOriginCss[id], mapReset)\n\t\t\t_.iMapOrigin[id] = iMap;\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\n\t\t\tiStyle = iStyle || {};\n\t\t\tiMap = iMap || {};\n\t\t\t\n\t\t\t\n\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\n\t\t\t\n\t\t\t//console.log(\"update ref\", id)\n\t\t\t\n\t\t\t// minus initial values\n\t\t\tObject.keys(_.tweenRefOrigin[id])\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] -= _.tweenRefOrigin[id][key])\n\t\t\t );\n\t\t\t// set defaults values in case of\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\n\t\t\t\t ? _.tweenRefMaps[id][key]\n\t\t\t\t : initials[key])\n\t\t\t );\n\t\t\t// add new initial values\n\t\t\tObject.keys(tweenableMap)\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\n\t\t\t );\n\t\t\t\n\t\t\tObject.keys(_.tweenRefOrigin[id])// unset\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t clearTweenableValue(key, key, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\n\t\t\t\t }\n\t\t\t );\n\t\t\tObject.keys(_.tweenRefCSS[id])// unset not tweened\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] && !_.muxByTarget[id][key] && !iStyle[key] )\n\t\t\t\t\t\t delete _.tweenRefCSS[id][key];\n\t\t\t\t }\n\t\t\t );\n\t\t\tObject.keys(iStyle)// reset not tweened\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] !== iStyle[key] && !_.muxByTarget[id][key] )\n\t\t\t\t\t\t _.tweenRefCSS[id][key] = iStyle[key];\n\t\t\t\t }\n\t\t\t );\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\n\t\t\t\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t\tthis._updateTweenRef(id, true);\n\t\t}\n\t\telse if ( !_.tweenRefs[id] ) {\n\t\t\t//console.log(\"init ref\", id)\n\t\t\t\n\t\t\t_.iMapOrigin[id] = iMap;\n\t\t\tiStyle = iStyle || {};\n\t\t\tiMap = iMap || {};\n\t\t\t\n\t\t\t_.tweenRefs[id] = true;\n\t\t\t_.muxByTarget[id] = _.muxByTarget[id] || {};\n\t\t\t_.muxDataByTarget[id] = _.muxDataByTarget[id] || {};\n\t\t\t\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\n\t\t\t\n\t\t\t_.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\n\t\t\tif ( _.tweenRefOrigin[id] ) {\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\n\t\t\t\t\n\t\t\t\t//// set defaults values in case of\n\t\t\t\tObject.keys(initials)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\n\t\t\t\t\t ? _.tweenRefMaps[id][key] - initials[key]\n\t\t\t\t\t : 0)\n\t\t\t\t );\n\t\t\t\t//// add new initial values\n\t\t\t\tObject.keys(tweenableMap)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\n\t\t\t\t );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id]) };\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t// init / reset or get the tweenable view\n\t\t\t\ttweenableMap = Object.assign({}, initials, tweenableMap || {});\n\t\t\t\t\n\t\t\t\t// set defaults values in case of\n\t\t\t\t// add new initial values\n\t\t\t\tObject.keys(tweenableMap)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = (_.tweenRefMaps[id][key] || 0) + tweenableMap[key])\n\t\t\t\t );\n\t\t\t}\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\n\t\t\t_.tweenRefCSS[id] = iStyle;\n\t\t\ttweenableMap = _.tweenRefMaps[id];\n\t\t\tmuxToCss(tweenableMap, iStyle, _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t\t\n\t\t}\n\t\telse {\n\t\t\t\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t}\n\t\t//console.log('tweenRef::tweenRef:519: ', id, { ..._.muxDataByTarget[id] }, {\n\t\t// ..._.tweenRefCSS[id] });\n\t\tif ( noref )\n\t\t\treturn {\n\t\t\t\tstyle: { ..._.tweenRefCSS[id] }\n\t\t\t};\n\t\telse\n\t\t\treturn {\n\t\t\t\tstyle: { ..._.tweenRefCSS[id] },\n\t\t\t\tref : is.function(ref)\n\t\t\t\t ? node => (_.refs[id] = ref(node))\n\t\t\t\t : ref\n\t\t\t\t ? node => (_.refs[id] = ref.current = node)\n\t\t\t\t : node => (_.refs[id] = node)\n\t\t\t};\n\t}\n\t\n\t/**\n\t * Delete tweenable element\n\t * @param id\n\t */\n\trmTweenRef( id ) {\n\t\tif ( this._.tweenRefs[id] ) {\n\t\t\tthis._.tweenRefTargets.splice(this._.tweenRefTargets.indexOf(id), 1);\n\t\t\tdelete this._.tweenRefs[id];\n\t\t\tdelete this._.muxByTarget[id];\n\t\t\tdelete this._.muxDataByTarget[id];\n\t\t\tdelete this._.iMapOrigin[id];\n\t\t\tdelete this._.tweenRefOrigin[id];\n\t\t\tdelete this._.tweenRefCSS[id];\n\t\t\tdelete this._.tweenRefMaps[id];\n\t\t\tdelete this._.refs[id];\n\t\t}\n\t}\n\t\n\t/**\n\t * Reset tweenRefs\n\t * @param targets\n\t */\n\tresetTweenable( ...targets ) {\n\t\tlet _ = this._;\n\t\ttargets.forEach(\n\t\t\t( t ) => {\n\t\t\t\tthis.tweenRef(t, _.tweenRefOriginCss[t], _.iMapOrigin[t], null, null, null, true)\n\t\t\t}\n\t\t);\n\t\tthis._updateTweenRefs();\n\t}\n\t\n\t/**\n\t * Update tweenRefs style ( anims & axis will still update the ref )\n\t * @param target\n\t * @param style\n\t * @param postPone\n\t * @returns {*}\n\t */\n\tupdateRefStyle( target, style, postPone ) {\n\t\tlet _ = this._, initials = {}, pureCss;\n\t\t\n\t\t// allow batched stykes updates\n\t\tif ( isArray(target) && isArray(style) )\n\t\t\treturn target.map(( m, i ) => this.updateRefStyle(m, style[i], postPone));\n\t\tif ( isArray(target) )\n\t\t\treturn target.map(( m ) => this.updateRefStyle(m, style, postPone));\n\t\t\n\t\tif ( !_.tweenRefMaps[target] )\n\t\t\treturn console.warn(\"React-Voodoo : Can't update styles of an unknown Node id '\", target, \"'\");\n\t\t\n\t\tpureCss = deMuxTween(style, _.tweenRefMaps[target], initials, _.muxDataByTarget[target], _.muxByTarget[target]);\n\t\tObject.assign(_.tweenRefCSS[target], pureCss);\n\t\tObject.assign(_.tweenRefOriginCss[target], pureCss);\n\t\tmuxToCss(_.tweenRefMaps[target], _.tweenRefCSS[target], _.muxByTarget[target], _.muxDataByTarget[target], _.box);\n\t\tthis._updateTweenRef(target, true);\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// -------------------- Pushable anims ------------------------\n\t// ------------------------------------------------------------\n\t\n\t/**\n\t * Retrieve the tween ref dom node\n\t * @param id\n\t * @returns {*}\n\t */\n\tgetTweenableRef( id ) {\n\t\tif ( is.element(this._.refs[id]) )\n\t\t\treturn this._.refs[id];\n\t\telse if ( this._.refs[id]?._?.rootRef?.current && is.element(this._.refs[id]._.rootRef.current) )\n\t\t\treturn this._.refs[id]._.rootRef.current\n\t\telse if ( !this._.tweenRefs[id] )\n\t\t\tconsole.warn(\"react-voodoo: Can't find voodooNode \", id)\n\t}\n\t\n\t/**\n\t * Get the root dom node of the tweener element\n\t * @returns {*}\n\t */\n\tgetRootNode() {\n\t\ttry {\n\t\t\treturn this._.rootRef && this._.rootRef.current;\n\t\t} catch ( e ) {\n\t\t\treturn this._.rootRef && this._.rootRef.current;\n\t\t}\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// ------------------ Scrollable axes -------------------------\n\t// ------------------------------------------------------------\n\t\n\t/**\n\t * Push anims\n\t * @param anim\n\t * @param then\n\t * @param skipInit\n\t * @returns {tweenAxis}\n\t */\n\tpushAnim( anim, then, keepResults = true ) {\n\t\tlet sl,\n\t\t initial,\n\t\t _ = this._,\n\t\t initials = {},\n\t\t fail;\n\t\t\n\t\tif ( isArray(anim) ) {\n\t\t\tsl = anim;\n\t\t}\n\t\telse {\n\t\t\tsl = anim.anims;\n\t\t\tinitial = anim.initial;\n\t\t}\n\t\t\n\t\tif ( !(sl instanceof tweenAxis) ) {\n\t\t\t// tweenLine, initials, data, demuxers\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\n\t\t\tsl = new tweenAxis(sl, this._.tweenRefMaps);\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t id => (\n\t\t\t\t\t this._.tweenRefMaps[id] &&\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\n\t\t\t\t\t\t ...initials[id],\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\n\t\t\t\t\t }) || (fail = console.warn(\"react-voodoo : Can't find tween target \", id, \" in \", Tweener.displayName) || true)\n\t\t\t\t )\n\t\t\t )\n\t\t}\n\t\tif ( fail )\n\t\t\treturn;\n\t\t\n\t\t\n\t\treturn new Promise(\n\t\t\tresolve => {\n\t\t\t\t\n\t\t\t\t// start timer launch @todo\n\t\t\t\tsl.run(this._.tweenRefMaps, () => {\n\t\t\t\t\tlet i = this._.runningAnims.indexOf(sl);\n\t\t\t\t\tif ( i != -1 )\n\t\t\t\t\t\tthis._.runningAnims.splice(i, 1);\n\t\t\t\t\t//console.log( _.muxDataByTarget)\n\t\t\t\t\tObject.keys(initials)// unset\n\t\t\t\t\t .forEach(\n\t\t\t\t\t\t id => {\n\t\t\t\t\t\t\t Object.keys(initials[id])// unset\n\t\t\t\t\t\t\t .forEach(\n\t\t\t\t\t\t\t\t rkey => {\n\t\t\t\t\t\t\t\t\t // todo\n\t\t\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id], keepResults)\n\t\t\t\t\t\t\t\t })\n\t\t\t\t\t\t });\n\t\t\t\t\tsl.destroy();\n\t\t\t\t\tresolve(sl);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tthis._.runningAnims.push(sl);\n\t\t\t\t\n\t\t\t\tif ( !this._.live ) {\n\t\t\t\t\tthis._.live = true;\n\t\t\t\t\trequestAnimationFrame(this._._rafLoop = this._._rafLoop || this._rafLoop.bind(this));\n\t\t\t\t}\n\t\t\t}\n\t\t).then(sl => (then && then(sl)));\n\t\t\n\t}\n\t\n\t/**\n\t * Update tweenRef raw tweened values\n\t * @param id\n\t * @param map\n\t * @param reset\n\t */\n\tapplyTweenState( id, map, reset ) {\n\t\tlet tmap = {}, initials = {};\n\t\tdeMuxTween(map, tmap, initials, this._.muxDataByTarget[id], this._.muxByTarget[id], true)\n\t\tObject.keys(tmap).map(\n\t\t\t( p ) => this._.tweenRefMaps[id][p] = (!reset && this._.tweenRefMaps[id][p] || initials[p]) + tmap[p]\n\t\t);\n\t}\n\t\n\t/**\n\t * Will init / update a scrollable axis\n\t * @param axe\n\t * @param _inertia\n\t * @param _scrollableArea\n\t * @param _scrollableBounds\n\t * @param _scrollableWindow\n\t * @param defaultPosition\n\t * @param scrollFirst\n\t * @param reset\n\t */\n\tinitAxis( axe, {\n\t\tinertia : _inertia,\n\t\tscrollableArea : _scrollableArea = 0,\n\t\tscrollableBounds: _scrollableBounds,\n\t\tscrollableWindow: _scrollableWindow,\n\t\tdefaultPosition,\n\t\tscrollFirst\n\t}, reset ) {\n\t\t\n\t\t\n\t\tlet _ = this._,\n\t\t dim = this.axes[axe],\n\t\t scrollableBounds = _scrollableBounds,\n\t\t scrollPos = !reset && dim\n\t\t ? dim.scrollPos\n\t\t : _.defaultAxesPosition?.[axe] || defaultPosition || scrollableBounds && scrollableBounds.min || 0,\n\t\t scrollableArea = Math.max(dim && dim.scrollableArea || 0, _scrollableArea),\n\t\t scrollableWindow = Math.max(dim && dim.scrollableWindow || 0, _scrollableWindow),\n\t\t targetPos = dim ? dim.targetPos : scrollPos,\n\t\t inertia = (\n\t\t\t dim ? dim.inertia : new Inertia({// todo mk pure\n\t\t\t\t disabled: !_inertia,\n\t\t\t\t ...(_inertia || {}),\n\t\t\t\t value: scrollPos\n\t\t\t })),\n\t\t nextDescr = {\n\t\t\t //...(_inertia || {}),\n\t\t\t scrollFirst,\n\t\t\t tweenAxis: dim && dim.tweenAxis || [],\n\t\t\t scrollPos,\n\t\t\t targetPos,\n\t\t\t inertia,\n\t\t\t scrollableWindow,\n\t\t\t scrollableBounds,\n\t\t\t scrollableArea,\n\t\t\t scrollTo : ( pos, tm, ease, noEvents ) => {\n\t\t\t\t return this.scrollTo(pos, tm, axe, ease, noEvents)\n\t\t\t }\n\t\t };\n\t\t\n\t\tthis.axes[axe] = nextDescr;\n\t\t!_inertia && (inertia._.disabled = true);\n\t\t(_inertia) && inertia && !inertia.active && (inertia._.pos = scrollPos);\n\t\t(_inertia) && inertia && (inertia.updateConf(_inertia));\n\t\tif ( inertia && scrollableBounds )\n\t\t\tinertia.setBounds?.(scrollableBounds.min, scrollableBounds.max);\n\t\telse\n\t\t\tinertia && inertia.setBounds?.(0, scrollableArea)\n\t}\n\t\n\t_getAxis( axe = \"scrollY\" ) {\n\t\tlet _ = this._;\n\t\t\n\t\tthis.axes[axe] = this.axes[axe] || {\n\t\t\ttweenAxis : [],\n\t\t\tscrollPos : _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\n\t\t\ttargetPos : 0,\n\t\t\tscrollableWindow: 0,\n\t\t\tscrollableArea : 0,\n\t\t\tinertia : new Inertia({\n\t\t\t\t value: _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\n\t\t\t\t ...(_.options.axes && _.options.axes[axe] && _.options.axes[axe].inertia || {})\n\t\t\t }),\n\t\t\tscrollTo : ( pos, tm, ease, noEvents ) => {\n\t\t\t\treturn this.scrollTo(pos, tm, axe, ease, noEvents)\n\t\t\t}\n\t\t};\n\t\t\n\t\treturn this.axes[axe];\n\t}\n\t\n\t/**\n\t * Return axis infos\n\t */\n\tgetAxisState( axe ) {\n\t\tlet _ = this._, state = {};\n\t\tthis.axes && Object.keys(this.axes)\n\t\t .forEach(\n\t\t\t axe => (state[axe] = this.axes[axe].targetPos || this.axes[axe].scrollPos)\n\t\t );\n\t\treturn state;\n\t}\n\t\n\tgetScrollPos( axis = \"scrollY\" ) {\n\t\tlet _ = this._, state = {};\n\t\treturn this.axes[axis]\n\t\t ? this.axes[axis].targetPos || this.axes[axis].scrollPos\n\t\t : 0\n\t}\n\t\n\t/**\n\t * Do scroll an axis\n\t * @param newPos\n\t * @param ms\n\t * @param axe\n\t * @param ease\n\t * @returns {Promise<any | never>}\n\t */\n\tscrollTo( newPos, ms = 0, axe = \"scrollY\", ease, noEvents ) {\n\t\tlet _ = this._;\n\t\tif ( !isBrowserSide ) {\n\t\t\tconsole.warn(\"React-voodoo : scrollTo can't be used serverside, use Axis defaultPosition prop to set initial axes position\");\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn new Promise(\n\t\t\t(( resolve, reject ) => {\n\t\t\t\tif ( this.axes && this.axes[axe] ) {\n\t\t\t\t\tlet oldPos = this.axes[axe].targetPos,\n\t\t\t\t\t setPos = pos => {\n\t\t\t\t\t\t //console.log('TweenableComp::setPos:514: ', newPos,pos, ms,\n\t\t\t\t\t\t // axe);\n\t\t\t\t\t\t pos = (~~(pos * 10000)) / 10000;\n\t\t\t\t\t\t this.axes[axe].targetPos = this.axes[axe].scrollPos = pos;\n\t\t\t\t\t\t \n\t\t\t\t\t\t //this.axes[axe].inertia._doSnap()\n\t\t\t\t\t\t if ( ~~pos !== oldPos ) {\n\t\t\t\t\t\t\t this.axisDidScroll(~~pos, axe);\n\t\t\t\t\t\t\t _.rootRef?.current?.componentDidScroll?.(~~pos, axe);\n\t\t\t\t\t\t }\n\t\t\t\t\t\t this._updateTweenRefs()\n\t\t\t\t\t };\n\t\t\t\t\t\n\t\t\t\t\tnewPos = Math.max(0, newPos);\n\t\t\t\t\tnewPos = Math.min(newPos, this.axes[axe].scrollableArea || 0);\n\t\t\t\t\t\n\t\t\t\t\tthis.axes[axe].targetPos = newPos;\n\t\t\t\t\t\n\t\t\t\t\tif ( !ms ) {\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(newPos);\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\n\t\t\t\t\t\t\tnewPos = this.axes?.[axe]?.inertia?._.pos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\t\t\t\t\tsl => sl.goTo(newPos, _.tweenRefMaps, false, noEvents)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetPos(newPos);\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis._runScrollGoTo(axe, newPos, ms, easingFn[ease], noEvents, setPos, resolve)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ( !_.live ) {\n\t\t\t\t\t\t_.live = true;\n\t\t\t\t\t\trequestAnimationFrame(_._rafLoop);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})).then(\n\t\t\tp => {\n\t\t\t\tthis.axes?.[axe]?.inertia?._detectCurrentSnap();\n\t\t\t}\n\t\t)\n\t}\n\t\n\t/**\n\t * Add scrollable tween axis (scrollable anims) to a global axis\n\t * @param anim\n\t * @param axe\n\t * @param size\n\t * @returns {tweenAxis}\n\t */\n\taddScrollableAnim( anim, axe = \"scrollY\", size ) {\n\t\tlet sl,\n\t\t _ = this._,\n\t\t initials = {},\n\t\t dim = this._getAxis(axe);\n\t\t\n\t\tif ( isArray(anim) ) {\n\t\t\tsl = anim;\n\t\t}\n\t\telse {\n\t\t\tsl = anim.anims;\n\t\t\tsize = anim.length;\n\t\t}\n\t\t\n\t\t//console.warn(\"add scrollable\")\n\t\tif ( !(sl instanceof tweenAxis) ) {\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\n\t\t\t\n\t\t\tsl = new tweenAxis(sl, _.tweenRefMaps);\n\t\t\tsl.initials = initials;\n\t\t\t\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t id => {\n\t\t\t\t\t _.tweenRefOrigin[id] = _.tweenRefOrigin[id] || {};\n\t\t\t\t\t \n\t\t\t\t\t _.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\n\t\t\t\t\t\t ...initials[id],\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\n\t\t\t\t\t })\n\t\t\t\t }\n\t\t\t );\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t// init scroll\n\t\tdim.tweenAxis.push(sl);\n\t\tdim.scrollPos = dim.scrollPos || 0;\n\t\tdim.scrollableArea = dim.scrollableArea || 0;\n\t\tdim.scrollableArea = Math.max(dim.scrollableArea, sl.duration);\n\t\t\n\t\tif ( !dim.scrollableBounds )\n\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea);\n\t\t\n\t\tsl.goTo(dim.scrollPos, this._.tweenRefMaps, false, true);\n\t\tthis._updateTweenRefs();\n\t\treturn sl;\n\t}\n\t\n\t/**\n\t * Remove a tweenAxis object from a component scrollable axis\n\t * @param sl\n\t * @param axe\n\t */\n\trmScrollableAnim( sl, axe = \"scrollY\" ) {\n\t\tlet _ = this._, found,\n\t\t dim = this._getAxis(axe), twAxis;\n\t\tlet i = dim.tweenAxis.indexOf(sl);\n\t\tif ( i !== -1 ) {\n\t\t\t\n\t\t\t//dim.tweenAxis[i].destroy();\n\t\t\tdim.tweenAxis.splice(i, 1);\n\t\t\tdim.scrollableArea = Math.max(...dim.tweenAxis.map(tl => tl.duration), 0);\n\t\t\tif ( !dim.scrollableBounds )\n\t\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea || 0);\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps })\n\t\t\tsl.goTo(0, this._.tweenRefMaps, false, true);\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps[\"card\"] })\n\t\t\t\n\t\t\tObject.keys(sl.initials)// unset\n\t\t\t .forEach(\n\t\t\t\t id => {\n\t\t\t\t\t Object.keys(sl.initials[id])// unset\n\t\t\t\t\t .forEach(\n\t\t\t\t\t\t rkey => {\n\t\t\t\t\t\t\t //debugger\n\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\n\t\t\t\t\t\t\t //!_.tweenRefCSS[id] &&\n\t\t\t\t\t\t\t //_.refs[id] && _.refs[id].style &&\n\t\t\t\t\t\t\t // _.refs[id].style[rkey] &&\n\t\t\t\t\t\t\t // (_.refs[id].style[rkey] = null);\n\t\t\t\t\t\t })\n\t\t\t\t });\n\t\t\tdelete sl.initials;\n\t\t\tsl.destroy();\n\t\t\tfound = true;\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\t!found && console.warn(\"react-voodoo: Axis not found : \", axe)\n\t}\n\t\n\t/**\n\t * @private fn to push scrollTo\n\t * @param axe\n\t * @param to\n\t * @param tm\n\t * @param easing\n\t * @param tick\n\t * @param cb\n\t * @private\n\t */\n\t_runScrollGoTo( axe, to, tm, easing = x => x, noEvents, tick, cb ) {\n\t\tlet from = this.axes[axe].scrollPos,\n\t\t length = to - from;\n\t\t\n\t\t_running.push(\n\t\t\t{\n\t\t\t\tapply : ( pos, max ) => {\n\t\t\t\t\tlet x = (from + (easing(pos / max)) * length);\n\t\t\t\t\tif ( this._.tweenEnabled ) {\n\t\t\t\t\t\t// allow shouldLoop on scrollTo\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(x);\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\n\t\t\t\t\t\t\tx = this.axes?.[axe]?.inertia?._.pos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\t\t\t\t\tsl => sl.goTo(x, this._.tweenRefMaps, false, noEvents)\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttick && tick(x);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tduration: tm,\n\t\t\t\tcpos : 0,\n\t\t\t\tcb\n\t\t\t})\n\t\t;\n\t\t\n\t\tif ( !_live ) {\n\t\t\t_live = true;\n\t\t\tlastTm = Date.now();\n\t\t\t// console.log(\"TL runner On\");\n\t\t\tsetTimeout(Runner._tick, 16);\n\t\t}\n\t}\n\t\n\t/**\n\t * Hook to know if the composed element allow scrolling\n\t * @returns {boolean}\n\t */\n\tcomponentShouldScroll() {\n\t\tlet _ = this._;\n\t\treturn _.rootRef &&\n\t\t _.rootRef.current &&\n\t\t _.rootRef.current.componentShouldScroll ?\n\t\t _.rootRef.current.componentShouldScroll(...arguments) : true\n\t}\n\t\n\t/**\n\t * Add scroll listener to {axisId} axis, return unwatch\n\t * @param axisId\n\t * @param listener\n\t * @returns {function(...[*]=)}\n\t */\n\twatchAxis( axisId, listener ) {\n\t\tlet byId = this._scrollWatcherByAxis;\n\t\tbyId[axisId] = byId[axisId] || [];\n\t\tbyId[axisId].push(listener);\n\t\treturn () => {\n\t\t\tlet index = byId[axisId].indexOf(listener);\n\t\t\tbyId[axisId].splice(index, 1);\n\t\t}\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// --------------- Inertia & scroll modifiers -----------------\n\t// ------------------------------------------------------------\n\t\n\taxisDidScroll( pos, axisId ) {\n\t\tlet watchers = this._scrollWatcherByAxis[axisId],\n\t\t i = watchers?.length;\n\t\tif ( watchers )\n\t\t\twhile ( i ) watchers[--i](pos);\n\t}\n\t\n\t/**\n\t * Retrieve updates from an axis inertia & apply them\n\t * @param dim\n\t * @param axe\n\t */\n\tapplyInertia( dim, axe ) {\n\t\tlet x = dim.inertia.update(), _ = this._;\n\t\t\n\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\tsl => {\n\t\t\t\tthis.axes[axe].targetPos = this.axes[axe].scrollPos = x;\n\t\t\t\tsl.goTo(x, this._.tweenRefMaps)\n\t\t\t}\n\t\t);\n\t\t//console.log(\"scroll at \" + x, axe, dim.inertia.active || dim.inertia.holding);\n\t\t//this.scrollTo(x, 0, axe);\n\t\t_.rootRef?.current?.componentDidScroll?.(x, axe);\n\t\tthis.axisDidScroll(x, axe);\n\t\tthis._updateTweenRefs()\n\t\tif ( dim.inertia.active || dim.inertia.holding ) {\n\t\t\tdim.inertiaFrame = setTimeout(this.applyInertia.bind(this, dim, axe), 16);\n\t\t}\n\t\telse {\n\t\t\tdim.inertiaFrame = null;\n\t\t\t//console.log(\"complete\");\n\t\t}\n\t}\n\t\n\t/**\n\t * Return true if at least 1 of this tweener axis have it's inertia active\n\t * @returns {boolean}\n\t */\n\tisInertiaActive() {//todo\n\t\tlet _ = this._, active = false;\n\t\tthis.axes &&\n\t\tObject.keys(this.axes)\n\t\t .forEach(\n\t\t\t axe => (active = active || this.axes[axe] && this.axes[axe].inertia.active)\n\t\t );\n\t\treturn active;\n\t}\n\t\n\tisAxisOut( axis, v, abs ) {\n\t\tlet _ = this._,\n\t\t dim = this.axes && this.axes[axis],\n\t\t pos = abs ? v : dim && (dim.scrollPos + v);\n\t\t\n\t\tpos = pos && Math.round(pos);\n\t\t\n\t\treturn !dim\n\t\t\t|| (\n\t\t\t\tdim.scrollableBounds\n\t\t\t\t?\n\t\t\t\t(pos <= dim.scrollableBounds.min || pos >= dim.scrollableBounds.max)\n\t\t\t\t:\n\t\t\t\t(pos <= 0 || pos >= dim.scrollableArea)\n\t\t\t);\n\t}\n\t\n\t_activateNodeInertia( node ) {\n\t\tlet _ = this._,\n\t\t i = _.activeInertia.findIndex(item => (item.target === node));\n\t\tif ( i === -1 ) {\n\t\t\t_.activeInertia.push(\n\t\t\t\t{\n\t\t\t\t\tinertia: {\n\t\t\t\t\t\tx: new Inertia({\n\t\t\t\t\t\t\t max : node.scrollWidth - node.offsetLeft,\n\t\t\t\t\t\t\t value: node.scrollLeft\n\t\t\t\t\t\t }),\n\t\t\t\t\t\ty: new Inertia({\n\t\t\t\t\t\t\t max : node.scrollHeight - node.offsetHeight,\n\t\t\t\t\t\t\t value: node.scrollTop\n\t\t\t\t\t\t })\n\t\t\t\t\t},\n\t\t\t\t\ttarget : node\n\t\t\t\t});\n\t\t\ti = _.activeInertia.length - 1;\n\t\t}\n\t\treturn _.activeInertia[i].inertia;\n\t\t\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// --------------- Initialization & drawers -------------------\n\t// ------------------------------------------------------------\n\t\n\t_updateNodeInertia = () => {\n\t\tlet _ = this._, current, ln = _.activeInertia.length;\n\t\t\n\t\tif ( this._inertiaRaf )\n\t\t\tcancelAnimationFrame(this._inertiaRaf);\n\t\t\n\t\tfor ( let i = 0; ln > i; i++ ) {\n\t\t\tcurrent = _.activeInertia[i];\n\t\t\tif ( current.inertia.x.active || current.inertia.x.holding ) {\n\t\t\t\tcurrent.target.scrollLeft = ~~current.inertia.x.update()\n\t\t\t}\n\t\t\tif ( current.inertia.y.active || current.inertia.y.holding ) {\n\t\t\t\tcurrent.target.scrollTop = ~~current.inertia.y.update()\n\t\t\t}\n\t\t\t\n\t\t\tif ( !current.inertia.x.active && !current.inertia.y.active && !current.inertia.x.holding && !current.inertia.y.holding ) {\n\t\t\t\t_.activeInertia.slice(i, 1);\n\t\t\t\ti--;\n\t\t\t\tln--;\n\t\t\t}\n\t\t}\n\t\tif ( ln !== 0 )\n\t\t\tthis._inertiaRaf = requestAnimationFrame(this._updateNodeInertia)\n\t\telse this._inertiaRaf = null;\n\t}\n\t\n\tsetRootRef( id ) {\n\t\tthis._.rootRef = id;\n\t}\n\t\n\t_updateBox() {\n\t\tlet node = this.getRootNode();\n\t\tif ( node ) {\n\t\t\tthis._.box.inited = true;\n\t\t\tthis._.box.x = node.offsetWidth;\n\t\t\tthis._.box.y = node.offsetHeight;\n\t\t}\n\t}\n\t\n\t_rafLoop() {\n\t\tthis._updateTweenRefs();\n\t\tif ( this._.runningAnims.length ) {\n\t\t\trequestAnimationFrame(this._._rafLoop);\n\t\t}\n\t\telse {\n\t\t\t//this._.live && console.log(\"RAF off\", this.constructor.displayName);\n\t\t\tthis._.live = false;\n\t\t}\n\t}\n\t\n\t_updateTweenRefs() {\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tfor ( let i = 0, target, node, style; i < this._.tweenRefTargets.length; i++ ) {\n\t\t\t\ttarget = this._.tweenRefTargets[i];\n\t\t\t\tstyle = this._updateTweenRef(target);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t_updateTweenRef( target, force ) {\n\t\tlet node, swap = this._swap, changes;\n\t\tthis._.tweenRefCSS[target] &&\n\t\tmuxToCss(this._.tweenRefMaps[target], swap, this._.muxByTarget[target], this._.muxDataByTarget[target], this._.box);\n\t\tnode = this.getTweenableRef(target);\n\t\tif ( node ) {\n\t\t\tfor ( let o in this._.tweenRefCSS[target] )\n\t\t\t\tif ( swap[o] === undefined ) {\n\t\t\t\t\tnode.style[o] = this._.tweenRefCSS[target][o];\n\t\t\t\t\t//\t\tnode.style[o] = null;\n\t\t\t\t\t//\t\tdelete this._.tweenRefCSS[target][o];\n\t\t\t\t}\n\t\t\tfor ( let o in swap )\n\t\t\t\tif ( this._.tweenRefCSS[target].hasOwnProperty(o) ) {\n\t\t\t\t\tif ( force || swap[o] !== this._.tweenRefCSS[target][o] ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tnode.style[o] = this._.tweenRefCSS[target][o] = swap[o];\n\t\t\t\t\t\t//if ( target == \"card\" ) console.log(target, o, node.style[o],\n\t\t\t\t\t\t// swap[o]);\n\t\t\t\t\t\tchanges = true;\n\t\t\t\t\t}\n\t\t\t\t\tdelete swap[o];\n\t\t\t\t}\n\t\t}\n\t\t//if ( !changes )\n\t\t//console.log('no changes', target, this._.tweenRefCSS[target], !!node, force)\n\t\treturn this._.tweenRefCSS[target];\n\t}\n\t\n\t\n\t// ------------------------------------------------------------\n\t// --------------- React Hooks --------------------------------\n\t// ------------------------------------------------------------\n\t\n\tcomponentWillUnmount() {\n\t\tlet node = this.getRootNode();\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tthis._.tweenEnabled = false;\n\t\t\twindow.removeEventListener(\"resize\", this._.onResize);\n\t\t\t\n\t\t\tObject.keys(this.axes).forEach(\n\t\t\t\taxe => {\n\t\t\t\t\tthis.axes[axe].inertiaFrame &&\n\t\t\t\t\tclearTimeout(this.axes[axe].inertiaFrame);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tsuper.componentWillUnmount && super.componentWillUnmount(...arguments);\n\t}\n\t\n\tcomponentDidMount() {\n\t\tlet _static = this.constructor;\n\t\t\n\t\tthis._.rendered = true;\n\t\tif ( this._.tweenEnabled ) {\n\t\t\t// debugger;\n\t\t\tthis._updateBox();\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\tif ( _static.scrollableAnim ) {\n\t\t\tif ( is.array(_static.scrollableAnim) )\n\t\t\t\tthis.addScrollableAnim(_static.scrollableAnim);\n\t\t\telse\n\t\t\t\tObject.keys(_static.scrollableAnim)\n\t\t\t\t .forEach(\n\t\t\t\t\t axe => this.addScrollableAnim(_static.scrollableAnim[axe], axe)\n\t\t\t\t )\n\t\t}\n\t\t//if ( this._.doRegister || this.__isFirst ) {\n\t\t//\n\t\t//\tthis._.doRegister = false;\n\t\t//}\n\t\tsuper.componentDidMount && super.componentDidMount(...arguments);\n\t}\n\t\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\t\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tthis._updateBox();\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\tsuper.componentDidUpdate && super.componentDidUpdate(...arguments);\n\t}\n\t\n\trender() {\n\t\tconst { BaseComponent, oProps } = this.props;\n\t\treturn <TweenerContext.Consumer>\n\t\t\t{\n\t\t\t\tparentTweener => {\n\t\t\t\t\tthis._parentTweener = parentTweener;\n\t\t\t\t\treturn <TweenerContext.Provider value={this}>\n\t\t\t\t\t\t<BaseComponent {...oProps} ref={this._.rootRef}\n\t\t\t\t\t\t tweener={this}/>\n\t\t\t\t\t</TweenerContext.Provider>;\n\t\t\t\t}\n\t\t\t}\n\t\t</TweenerContext.Consumer>;\n\t}\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport is from \"is\";\nimport TweenerContext from \"../comps/TweenerContext\";\nimport Tweener from \"../comps/Tweener\";\n\n/**\n * Wrap & instanciate the Tweener Comp \"virtual\"\n * @param tweenerOptions\n * @param RootNodeComp\n */\nexport default ( tweenerOptions, RootNodeComp = 'div' ) => {\n\tconst parentTweener = React.useContext(TweenerContext),\n\t nodeRef = React.useRef(),\n\t lastTweener = React.useRef(),\n\t doUseParentTweener = React.useMemo(\n\t\t () => (tweenerOptions === true || is.string(tweenerOptions)),\n\t\t []\n\t ),\n\t tweener = React.useMemo(\n\t\t () => {\n\t\t\t if ( tweenerOptions === true )// keep tweener from context ( parent )\n\t\t\t\t return parentTweener;\n\t\t\t\n\t\t\t if ( is.string(tweenerOptions) ) {// return named tweener or most root tweener\n\t\t\t\t let pTweener = parentTweener;\n\t\t\t\t\n\t\t\t\t while ( pTweener?._ && pTweener._.options.name !== tweenerOptions )\n\t\t\t\t\t if ( pTweener._parentTweener )\n\t\t\t\t\t\t pTweener = pTweener._parentTweener;\n\t\t\t\t\t else {\n\t\t\t\t\t\t console.warn('react-voodoo: No parent tweener found with option.key === \"' + tweenerOptions + '\"');\n\t\t\t\t\t\t break;\n\t\t\t\t\t }\n\t\t\t\t\n\t\t\t\t return pTweener;\n\t\t\t }\n\t\t\t\n\t\t\t let tw = new Tweener({\n\t\t\t\t forwardedRef: nodeRef,\n\t\t\t\t tweenerOptions\n\t\t\t });\n\t\t\t tw.isMountedFromHook = true;\n\t\t\t tw._parentTweener = parentTweener;\n\t\t\t return tw;\n\t\t },\n\t\t []\n\t ),\n\t ViewBox = React.useMemo(\n\t\t () => (\n\t\t\t React.forwardRef(\n\t\t\t\t ( { children, ...props }, ref ) => {\n\t\t\t\t\t return <TweenerContext.Provider value={tweener}>\n\t\t\t\t\t\t <RootNodeComp\n\t\t\t\t\t\t\t ref={!ref\n\t\t\t\t\t\t\t ? nodeRef\n\t\t\t\t\t\t\t : ( node ) => (ref.current = nodeRef.current = node)} {...props}>\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t children\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t </RootNodeComp>\n\t\t\t\t\t </TweenerContext.Provider>\n\t\t\t\t }\n\t\t\t )\n\t\t ),\n\t\t []\n\t )\n\t\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\t//console.warn(\"didmount\", nodeRef.current, lastTweener.current === TweenerEl)\n\t\t\ttweener.componentDidMount();\n\t\t\tlastTweener.current = tweener;\n\t\t\treturn () => {\n\t\t\t\tif ( !lastTweener.current?._ )\n\t\t\t\t\treturn;\n\t\t\t\t//console.warn(\"unmount\")\n\t\t\t\tlastTweener.current.componentWillUnmount();\n\t\t\t\tlastTweener.current = null;\n\t\t\t}\n\t\t}, []\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\t//console.warn(\"didupdate\", nodeRef.current)\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t\t\n\t\t}\n\t\t,\n\t\t[nodeRef.current]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._parentTweener = parentTweener;\n\t\t},\n\t\t[parentTweener]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._.options = tweenerOptions;\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t},\n\t\t[tweenerOptions]\n\t)\n\treturn React.useMemo(\n\t\t() => ([tweener, ViewBox]),\n\t\t[ViewBox, tweener]\n\t);\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport React from 'react';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\n\nexport default ( {\n\t children,\n\t id,\n\t axe = id,\n\t scrollFirst, bounds,\n\t scrollableWindow, inertia, size, defaultPosition,\n\t items = [],\n } ) => {\n\tconst µ = React.useRef({}).current,\n\t [tweener] = useVoodoo(true);\n\t\n\tif ( !µ.previousAxis || µ.previousAxis !== axe ) {//....\n\t\tµ.previousAxis = axe;\n\t\tµ.previousInertia = inertia;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tsize,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t}, true);\n\t}\n\telse if ( !µ.previousInertia || µ.previousInertia !== inertia || µ.previousBounds !== bounds || µ.previousScrollableWindow !== scrollableWindow ) {//....\n\t\tµ.previousInertia = inertia;\n\t\tµ.previousAxis = axe;\n\t\tµ.previousBounds = bounds;\n\t\tµ.previousScrollableWindow = scrollableWindow;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tsize,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t});\n\t}\n\tif ( !µ.previousTweener || µ.previousTweener !== tweener ) {// mk axe not modifiable\n\t\tµ.previousTweener && µ.lastTL && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweener = tweener;\n\t\tµ.previousTweens = items;\n\t}\n\telse if ( µ.previousTweens !== items && !(µ.previousTweens && deepEqual(items, µ.previousTweens)) ) {// is deepEq really required ?\n\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tµ.lastTL = null;\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweens = items;\n\t}\n\t\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\treturn () => {\n\t\t\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\t\t\t\n\t\t\t\tdelete µ.previousTweener;\n\t\t\t\tdelete µ.previousScrollable;\n\t\t\t}\n\t\t}, [])\n\treturn <React.Fragment/>;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"shortid\");","/*\r\n * Copyright (c) 2022-2023 Braun Nathanael\r\n *\r\n * This project is dual licensed under one of the following licenses:\r\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\r\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\r\n *\r\n * You should have received a copy of theses licenses along with this work.\r\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\r\n */\r\n\r\n\r\nexport function isClassComponent(component) {\r\n return (\r\n typeof component === 'function' &&\r\n !!component.prototype.isReactComponent\r\n )\r\n}\r\nexport function isFunctionalComponent(Component) {\r\n return (\r\n typeof Component === 'function' // can be various things\r\n && !(\r\n Component.prototype // native arrows don't have prototypes\r\n && Component.prototype.isReactComponent // special property\r\n )\r\n );\r\n}\r\n\r\nexport function isReactComponent(component) {\r\n return (\r\n isClassComponent(component) ||\r\n isFunctionalComponent(component)\r\n )\r\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport is from \"is\";\nimport React from 'react';\nimport shortid from 'shortid';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\nimport {isFunctionalComponent} from '../utils/react';\n\nfunction setTarget( anims, target ) {\n\treturn anims.map(\n\t\ttween => ({\n\t\t\t...tween,\n\t\t\ttarget\n\t\t})\n\t)\n}\n\nconst Node = React.forwardRef(( {\n\t children,\n\t id = React.useMemo(() => shortid.generate(), []),\n\t style, initial, pos, noRef, reset, tweener,\n\t isRoot,\n\t axes,\n\t refProp = \"nodeRef\",\n\t tweenLines = axes,\n\t tweenAxis = tweenLines,\n\t ...props\n }, ref ) => {\n\tlet µ = React.useRef({}).current,\n\t [parentTweener] = useVoodoo(true);\n\tparentTweener = tweener || parentTweener;\n\t\n\tif ( !parentTweener ) {\n\t\tconsole.error(\"No Voodoo tweener found in the context, is there any parent ViewBox ?\")\n\t\treturn <React.Fragment/>;\n\t}\n\t//console.warn(\"render : \", this.__tweenableId, this._currentTweener,\n\t// parentTweener, this._currentTweener !== parentTweener)\n\tlet twRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t pos, ref, noRef),\n\t axisItemsChange;\n\t\n\t\n\t// remove refs when unmount\n\tReact.useEffect(\n\t\t() => () => {\n\t\t\tif ( µ._tweenAxisObj ) {\n\t\t\t\tObject.keys(µ._tweenAxisObj)\n\t\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t}\n\t\t\tif ( µ._currentTweener ) {\n\t\t\t\tµ._currentTweener.rmTweenRef(µ.__tweenableId)\n\t\t\t\tµ._currentTweener.setRootRef(undefined);\n\t\t\t}\n\t\t\tdelete µ._currentTweener;\n\t\t\tdelete µ._tweenAxisObj;\n\t\t\tdelete µ._previousScrollable;\n\t\t},\n\t\t[]\n\t)\n\t// register axes if tweener or node axis items change\n\taxisItemsChange = µ._tweenAxis !== tweenAxis && !(µ._tweenAxis && deepEqual(tweenAxis, µ._tweenAxis))\n\t\t|| (tweenAxis && !µ._tweenAxis);\n\tif ( axisItemsChange || µ._currentTweener !== parentTweener || µ._previousScrollable !== tweenAxis ) {\n\t\t\n\t\t// if items changes rm the old items\n\t\tif ( µ._currentTweener && axisItemsChange ) {\n\t\t\tµ._tweenAxisObj && Object.keys(µ._tweenAxisObj)\n\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t\n\t\t}\n\t\t//console.log(twRef, axisItemsChange, µ._tweenAxis, tweenAxis)\n\t\t\n\t\t// if tweener changes rm the node ref\n\t\tif ( µ._currentTweener && µ._currentTweener !== parentTweener ) {\n\t\t\tµ._currentTweener.rmTweenRef(id);\n\t\t}\n\t\t\n\t\t// if items changes reg the items on the tweener\n\t\tif ( axisItemsChange ) {\n\t\t\tµ._tweenAxis = tweenAxis;\n\t\t\tif ( tweenAxis && is.array(tweenAxis) )\n\t\t\t\tµ._tweenAxisObj = { scrollY: parentTweener.addScrollableAnim(setTarget(tweenAxis, id)) };\n\t\t\telse\n\t\t\t\tµ._tweenAxisObj = tweenAxis &&\n\t\t\t\t\tObject.keys(tweenAxis)\n\t\t\t\t\t .reduce(\n\t\t\t\t\t\t ( h, axe ) =>\n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t h[axe] = parentTweener.addScrollableAnim(setTarget(tweenAxis[axe], id), axe),\n\t\t\t\t\t\t\t\t\t h\n\t\t\t\t\t\t\t ), {});\n\t\t\ttwRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t\t\t pos, ref, noRef)\n\t\t}\n\t\t\n\t\t// anyway, if there change set the last css values\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };\n\t\t\n\t\tif ( props.hasOwnProperty(\"isRoot\") ) {\n\t\t\tµ._currentTweener && µ._currentTweener.setRootRef(undefined);\n\t\t\ttweener.setRootRef(id);\n\t\t}\n\t\t\n\t\tµ._currentTweener = parentTweener;\n\t\tµ._previousScrollable = tweenAxis;\n\t\t\n\t}\n\telse if ( twRef ) {\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };// should renew only if changed\n\t}\n\t\n\tlet RefChild = React.Children.only(children);\n\t\n\tif ( RefChild && React.isValidElement(RefChild) ) {//todo\n\t\tµ._lastRef = twRef;\n\t\t\n\t\tif ( isFunctionalComponent(RefChild.type) )\n\t\t\treturn <RefChild.type\n\t\t\t\t{...props}\n\t\t\t\t{...RefChild.props}\n\t\t\t\t{...twRef}\n\t\t\t\tref={undefined}\n\t\t\t\t{\n\t\t\t\t\t...{\n\t\t\t\t\t\t[refProp]: twRef.ref\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t/>;\n\t\t\n\t\treturn <RefChild.type\n\t\t\t{...props}\n\t\t\t{...RefChild.props}\n\t\t\t{...twRef}/>;\n\t\t\n\t}\n\telse {\n\t\tconsole.error(\"Invalid voodoo Node child : \", id)\n\t}\n\treturn <div>Invalid</div>;\n})\nexport default Node;\n\nNode.div = React.forwardRef(( { children, className, ...props }, ref ) => {\n\treturn <Node {...props} ref={ref}>\n\t\t<div className={className}>{children}</div>\n\t</Node>;\n})\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport React from 'react';\nimport ReactDom from \"react-dom\";\nimport useVoodoo from \"../hooks/useVoodoo\";\nimport domUtils from \"../utils/dom\";\n\nconst Draggable = React.forwardRef(( {\n\t children,\n\t Comp = 'div',\n\t nodeRef,\n\t items = [],\n\t xAxis, yAxis, yBoxRef,\n\t xBoxRef, yRef,\n\t yHook, xHook,\n\t tweener,\n\t mouseDrag = false,\n\t touchDrag = true,\n\t button = 0,\n\t ...props\n }, ref ) => {\n\tlet root = React.useRef(),\n\t µ = React.useRef({ root, _: {} }).current,\n\t [parentTweener] = useVoodoo(true),\n\t api = React.useMemo(\n\t\t () => ({\n\t\t\t \n\t\t\t /**\n\t\t\t * Return scrollable parent node list basing a dom node\n\t\t\t * @param node\n\t\t\t * @returns {T[]}\n\t\t\t */\n\t\t\t getScrollableNodes( node ) {\n\t\t\t\t let scrollable = [], parent = µ._parentTweener;//domUtils.findReactParents(node),\n\t\t\t\t // _ = µ._;\n\t\t\t\t \n\t\t\t\t while ( parent ) {\n\t\t\t\t\t scrollable.push(parent);\n\t\t\t\t\t parent = parent._parentTweener;\n\t\t\t\t }\n\t\t\t\t \n\t\t\t\t return scrollable\n\t\t\t },\n\t\t\t \n\t\t\t /**\n\t\t\t * Init touch & scroll listeners\n\t\t\t * Drive scroll & drag values updates\n\t\t\t * @private\n\t\t\t */\n\t\t\t _registerScrollListeners() {\n\t\t\t\t let rootNode = µ.root?.current,\n\t\t\t\t {\n\t\t\t\t\t xAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener, xBoxRef, yBoxRef, button\n\t\t\t\t } = µ.props,\n\t\t\t\t lastStartTm,\n\t\t\t\t cLock, dX,\n\t\t\t\t parents,\n\t\t\t\t dY, parentsState, refWidth, refHeight,\n\t\t\t\t _ = tweener._;\n\t\t\t\t \n\t\t\t\t if ( rootNode ) {\n\t\t\t\t\t domUtils.addEvent(\n\t\t\t\t\t\t rootNode, µ._.dragList = {\n\t\t\t\t\t\t\t 'dragstart': ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x,\n\t\t\t\t\t\t\t\t y, i, style;\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t parents = api.getScrollableNodes(e.target);\n\t\t\t\t\t\t\t\t lastStartTm = Date.now();\n\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t parentsState = [];\n\t\t\t\t\t\t\t\t refWidth = (xBoxRef?.current || rootNode)?.offsetWidth;\n\t\t\t\t\t\t\t\t refHeight = (yBoxRef?.current || rootNode)?.offsetHeight;\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t pTweener._updateBox();\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //tweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t //e.preventDefault();\n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t 'click' : ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm &&\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t (lastStartTm - Date.now() > _.options.maxClickTm) ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dY) > _.options.maxClickOffset ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dX) > _.options.maxClickOffset\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t ) {\n\t\t\t\t\t\t\t\t\t e.preventDefault();\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t\t //console.log(\"prevented click\", lastStartTm, Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t\t //console.log(':o ' + (lastStartTm - Date.now()) + ' ' + dX +\n\t\t\t\t\t\t\t\t\t //\t ' ' + dY, _.options.maxClickTm)\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //else console.log(\"click\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t 'drag' : ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, xBox,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, yBox,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t dX = -(descr._lastPos.x - descr._startPos.x);\n\t\t\t\t\t\t\t\t dY = -(descr._lastPos.y - descr._startPos.y);\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm && ((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY) < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip tap & click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t //console.log(':u ' + (lastStartTm - Date.now()) + ' ' + dX +\n\t\t\t\t\t\t\t\t\t // ' ' + dY)\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t else {\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t xDispatched = !dX;\n\t\t\t\t\t\t\t\t\t yDispatched = !dY;\n\t\t\t\t\t\t\t\t\t if ( _.options.dragDirectionLock ) {\n\t\t\t\t\t\t\t\t\t\t if ( cLock === \"Y\" || !cLock && Math.abs(dY * .5) > Math.abs(dX) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"Y\";\n\t\t\t\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t\t\t\t //xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t else if ( cLock === \"X\" || !cLock && Math.abs(dX * .5) > Math.abs(dY) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"X\";\n\t\t\t\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t\t\t\t //yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t\t //console.log(\"drag\", dX, dY, xAxis, yAxis,\n\t\t\t\t\t\t\t\t\t\t\t // pTweener.axes);\n\t\t\t\t\t\t\t\t\t\t\t if ( !x && !y )\n\t\t\t\t\t\t\t\t\t\t\t\t continue;\n\t\t\t\t\t\t\t\t\t\t\t //console.log('Draggable:::306: ', parents);\n\t\t\t\t\t\t\t\t\t\t\t if ( !parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t parentsState[i] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t x: x?.scrollPos,\n\t\t\t\t\t\t\t\t\t\t\t\t\t y: y?.scrollPos\n\t\t\t\t\t\t\t\t\t\t\t\t };\n\t\t\t\t\t\t\t\t\t\t\t\t x?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t y?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t xAxis && x && !x?.inertiaFrame && pTweener.applyInertia(x, xAxis);\n\t\t\t\t\t\t\t\t\t\t\t\t yAxis && y && !y?.inertiaFrame && pTweener.applyInertia(y, yAxis);\n\t\t\t\t\t\t\t\t\t\t\t\t //console.warn('Draggable::drag:190: ');\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t if ( x ) {\n\t\t\t\t\t\t\t\t\t\t\t\t xBox = xBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refWidth\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.x\n\t\t\t\t\t\t\t\t\t\t\t\t deltaX = dX && (dX / xBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( xHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaX = xHook(deltaX);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t if ( y ) {\n\t\t\t\t\t\t\t\t\t\t\t\t yBox = yBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refHeight\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.y\n\t\t\t\t\t\t\t\t\t\t\t\t deltaY = dY && (dY / yBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( yHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaY = yHook(deltaY);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t //console.log('scrollX ',\n\t\t\t\t\t\t\t\t\t\t\t // xDispatched,\n\t\t\t\t\t\t\t\t\t\t\t // x?.inertia?.isInbound(parentsState[ i\n\t\t\t\t\t\t\t\t\t\t\t // ].x + deltaX), parentsState[ i ].x + deltaX );\n\t\t\t\t\t\t\t\t\t\t\t if ( x && !xDispatched && deltaX && x?.inertia?.isInbound(parentsState[i].x + deltaX)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(xAxis, deltaX)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t x.inertia.hold(parentsState[i].x + deltaX);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].x = x.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t //console.log(\"scrollY\", yDispatched,\n\t\t\t\t\t\t\t\t\t\t\t // y?.inertia?.isInbound(parentsState[ i\n\t\t\t\t\t\t\t\t\t\t\t // ].y + deltaY), parentsState[ i ].y + deltaY);\n\t\t\t\t\t\t\t\t\t\t\t if ( y && !yDispatched && deltaY && y?.inertia?.isInbound(parentsState[i].y + deltaY)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(yAxis, deltaY)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t y.inertia.hold(parentsState[i].y + deltaY);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].y = y.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t //console.log('Draggable::drag:190: ',\n\t\t\t\t\t\t\t\t\t\t\t\t // parentsState[i].y,deltaY);\n\t\t\t\t\t\t\t\t\t\t\t\t yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t if ( yDispatched && xDispatched ) {\n\t\t\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t //e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //dX = 0;\n\t\t\t\t\t\t\t\t\t //dY = 0;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t ,\n\t\t\t\t\t\t\t 'dropped': ( e, touch, descr ) => {\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, vX,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, vY,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t cLock = undefined;\n\t\t\t\t\t\t\t\t //lastStartTm = undefined;\n\t\t\t\t\t\t\t\t //document.body.style.userSelect = '';\n\t\t\t\t\t\t\t\t //document.body.style.touchAction = '';\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener && parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t //console.log('Draggable::dropped:228: ',\n\t\t\t\t\t\t\t\t\t\t // pTweener._getAxis(xAxis)?.inertia);\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[xAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[yAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t //pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //else if ( is.element(tweener) ) {\n\t\t\t\t\t\t\t\t\t //\tcState = parentsState[i];\n\t\t\t\t\t\t\t\t\t //\tif ( cState ) {\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.x.release();\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.y.release();\n\t\t\t\t\t\t\t\t\t //\t}\n\t\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t if ( lastStartTm && !((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY)\n\t\t\t\t\t\t\t\t\t < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip\n\t\t\t\t\t\t\t\t // tap\n\t\t\t\t\t\t\t\t\t // &\n\t\t\t\t\t\t\t\t\t // click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t\t e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t //console.log(\"prevented\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //else {\n\t\t\t\t\t\t\t\t //console.log(\"not prevented\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t //lastStartTm = 0;\n\t\t\t\t\t\t\t\t parents = parentsState = null;\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t },\n\t\t\t\t\t\t null,\n\t\t\t\t\t\t _.options.enableMouseDrag || mouseDrag,\n\t\t\t\t\t\t touchDrag\n\t\t\t\t\t )\n\t\t\t\t\t µ._.doRegister = !!rootNode;\n\t\t\t\t }\n\t\t\t\t else {\n\t\t\t\t\t µ._.doRegister = true;\n\t\t\t\t }\n\t\t\t }\n\t\t\t \n\t\t }),\n\t\t []\n\t );\n\tReact.useEffect(\n\t\t() => {\n\t\t\tapi._registerScrollListeners();\n\t\t\treturn () => {\n\t\t\t\tlet node = µ.root?.current;\n\t\t\t\tif ( µ._.scrollEnabled ) {\n\t\t\t\t\tµ._.scrollEnabled = false;\n\t\t\t\t\t\n\t\t\t\t\tnode && µ._.dragList && domUtils.removeEvent(node\n\t\t\t\t\t\t, µ._.dragList)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( is.function(nodeRef) )\n\t\t\t\tnodeRef(root.current)\n\t\t\tif ( is.function(ref) )\n\t\t\t\tref(root.current)\n\t\t\telse if ( ref )\n\t\t\t\tref.current = root.current;\n\t\t},\n\t\t[nodeRef, ref]\n\t)\n\tµ.props = {\n\t\txAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener: tweener || parentTweener, xBoxRef, yBoxRef, button\n\t}\n\tµ._parentTweener = parentTweener;\n\treturn <Comp ref={root} {...props}>{children}</Comp>;\n})\nexport default Draggable;\n\nDraggable.div = ( props ) => {\n\treturn <Draggable {...props}/>;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport TweenerContext from \"../comps/TweenerContext\";\n\nexport default ()=>{\n\treturn React.useContext(TweenerContext)\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport Tweener from '../comps/Tweener';\nimport { isReactComponent } from '../utils/react';\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function asTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n options = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n if ( !BaseComponent ) {\n return function ( BaseComponent ) {\n return asTweener(BaseComponent, options)\n }\n }\n \n options = {\n wheelRatio : 5,\n maxClickTm : 200,\n maxClickOffset: 20,\n ...options,\n };\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <Tweener oProps={ props } forwardedRef={ ref }\n BaseComponent={ BaseComponent }\n tweenerOptions={ options }/>;\n });\n withRef.displayName = String.fromCharCode(0xD83E, 0xDDD9) + ( BaseComponent.displayName || BaseComponent.name );\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport is from \"is\";\n\nimport { isReactComponent } from '../utils/react';\nimport TweenerContext from \"../comps/TweenerContext\";\n\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function withTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n opts = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n \n if ( !( BaseComponent && ( BaseComponent.prototype instanceof React.Component || BaseComponent === React.Component ) ) ) {\n return function ( BaseComponent ) {\n return withTweener(BaseComponent, opts)\n }\n }\n \n class TweenerToProps extends React.Component {\n static displayName = ( BaseComponent.displayName || BaseComponent.name );\n \n render() {\n return <TweenerContext.Consumer>\n {\n tweener => {\n return <BaseComponent { ...this.props } tweener={ tweener }\n ref={ this.props.forwardedRef }/>;\n }\n }\n </TweenerContext.Consumer>;\n }\n }\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <TweenerToProps { ...props } forwardedRef={ ref }/>;\n });\n withRef.displayName = TweenerToProps.displayName;\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\nimport Axis from './comps/Axis';\nimport Context from './comps/TweenerContext';\nimport Node from './comps/Node';\nimport Draggable from './comps/Draggable';\nimport useVoodoo from './hooks/useVoodoo';\nimport useTweener from './hooks/useTweener';\nimport tweener from './spells/asTweener';\nimport child from './spells/withTweener';\nimport dom from './utils/dom.js';\nimport * as tools from './utils/tweenTools.js';\n\nimport TweenAxis from \"tween-axis\";\nimport * as D3Ease from \"d3-ease\";\n\nTweenAxis.EasingFunctions = D3Ease;\n\n@tweener\nclass Component extends React.Component {\n\trender() {\n\t\treturn this.props.children;\n\t}\n}\n\nexport {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\tuseVoodoo as hook,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom\n};\nexport default {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\thook: useVoodoo,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom\n};\n"],"names":["module","exports","walknSetExport","_target","path","value","i","fPath","split","target","length","Object","keys","default","__esModule","assign","_exports","require","any","bool","color","multi","number","ratio","props","units","unitsRe","RegExp","join","floatCut","Number","arguments","undefined","toFixed","expandShorthandProperty","property","type","childProps","properties","values","multiple","forEach","k","isShorthandProperty","isValidDeclaration","defaultUnits","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","opacity","saturate","sepia","defaultValue","release","twKey","tweenableMap","cssMap","dataMap","muxerMap","keepValues","tmpKey","pop","console","log","demuxOne","unitIndex","dkey","twVal","baseKey","data","box","unit","x","y","z","demux","key","tweenable","tmap","fkey","iValue","filters","ti","hasOwnProperty","substr","filter","muxOne","initials","noPropLock","seenUnits","match","is","unitKey","indexOf","realKey","parseFloat","mux","reOrder","tFnKey","baseData","fValue","u","_objectSpread","translateX","translateY","translateZ","scale","scaleZ","scaleX","scaleY","rotate","skewX","skewY","rotateX","rotateY","rotateZ","perspective","defaultBox","left","right","top","bottom","width","height","transforms","transform","warn","count","rKey","isString","Math","round","muxer","includes","push","slice","min","vect","rgba","r","g","b","a","alias","center","offset","v","nowhere","max","VALUES_REG","PARTS_REG","LENGTH_REG","parseValue","stringifyValue","isLength","toNum","toPx","cssShadowParser","str","parts","inset","last","nums","n","map","_nums","_slicedToArray","offsetX","offsetY","blurRadius","spreadRadius","obj","_ref","_ref$offsetX","_ref$offsetY","_ref$blurRadius","s","trim","test","isNaN","parse","stringify","arr","defaultMuxers","shadowMap","shadows","tmpValue","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","d","definition","o","defineProperty","enumerable","get","prop","prototype","call","Symbol","toStringTag","React","re_cssValueWithUnit","cssAdd","val1","val2","units1","units2","remap","result","_len","argz","Array","_key","apply","concat","cssMult","val","items","start","item","from","duration","withOffset","iDuration","inverseValues","reduce","h","reverse","MultiCssProps","addCss","_len2","sources","_key2","source","shift","_target$key","_toConsumableArray","addAllType","v1","v2","values1","values2","parseInt","extractCss","inverse","css","shiftTransforms","t","unshift","cssDemux","cssDemuxers","marginTop","marginLeft","marginRight","marginBottom","paddingTop","paddingLeft","paddingRight","paddingBottom","borderRadius","borderTopColor","borderLeftColor","borderRightColor","borderBottomColor","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","transformOrigin","zIndex","clearTweenableValue","cssKey","_muxerMap$path$","muxToCss","demuxers","deMuxTween","tween","deMuxedTween","fTween","types","getMuxerTypeOfProperty","deMuxLine","tweenLine","allPropsById","twAxis","line","demuxedTween","id","query","prefixes","recyclableTweenAxis","CssTweenAxis","_tweenAxis","cfg","scope","_classCallCheck","recyled","localLength","mount","Axis","_possibleConstructorReturn","_this","_callSuper","_inherits","_createClass","this","__marks","__marksLength","__marksKeys","__processors","__config","__activeProcess","__outgoing","__incoming","__cPos","__cIndex","__cMaxKey","tweenAxis","isBrowser","window","_dom","DocumentTouch","document","matchMedia","matches","prefix","navigator","appVersion","userAgent","dashedPrefix","__","onPageHided","onPageShown","dragging","dragEnabled","dragEnabledDesc","fingers","nbFingers","dragstartAnywhere","e","finger","desc","me","Dom","addEvent","dragAnywhere","dropAnywhere","dropWithoutClick","changedTouches","ln","identifier","_startPos","pageX","pageY","_startTs","timeStamp","_lastPos","dragstart","stopped","drag","preventNextClick","preventDefault","stopPropagation","stopImmediatePropagation","removeEvent","prevent","_this2","mouseDrag","dropped","getDraggable","node","touchDrag","locks","dragEnd","freeDraggable","splice","fn","bubble","addEventListener","attachEvent","related","removeEventListener","detachEvent","rmDragFn","object","passive","elem","dims","offsetWidth","offsetHeight","offsetTop","offsetLeft","offsetParent","findReactParents","element","fiberNode","comps","startsWith","return","stateNode","parentNode","easingFn","signOf","NaN","abs","floor","Inertia","opt","_","conf","constructor","config","active","pos","refFPS","currentStop","lastInertiaPos","stops","disabled","wayPoints","inertiaFn","easePolyOut","targetWayPointIndex","_detectCurrentSnap","willStop","willSnap","onStop","onSnap","shouldLoop","baseTS","startTS","Date","now","lastVelocity","lastIVelocity","lastAccel","posDiff","loopsDiff","holding","inertia","nextPos","loop","delta","lastHoldPos","sinceLastPos","iVel","lastBaseTs","lastBasePos","targetDist","targetWayPoint","bounds","_$conf$willEnd","_$conf","velSign","loopsTarget","loopsVelSum","targetDuration","pow","applyInertia","snapToBounds","inertiaStartTm","inertiaLastTm","_doSnap","willEnd","nextValue","at","currentWayPoint","currentWayPointIndex","loopDist","tm","forceSnap","mid","maxDuration","lPos","loopDec","gravity","maxJump","infinite","_defineProperty","_live","lastTm","isBrowserSide","Function","isArray","_running","Runner","_tick","cpos","cb","setTimeout","Tweener","_React$Component","_props$tweenerOptions","_props$tweenerOptions2","_props$tweenerOptions3","current","activeInertia","_inertiaRaf","cancelAnimationFrame","scrollLeft","update","scrollTop","requestAnimationFrame","_updateNodeInertia","refs","muxByTarget","__isTweener","_rafLoop","bind","rootRef","forwardedRef","options","maxClickTm","maxClickOffset","tweenerOptions","tweenRefCSS","tweenRefs","tweenRefMaps","iMapOrigin","tweenRefInitialData","tweenEnabled","tweenRefOrigin","tweenRefOriginCss","muxDataByTarget","tweenRefDemuxed","tweenRefTargets","runningAnims","scrollHook","defaultAxesPosition","ref","onResize","_$rootRef","_$rootRef$windowDidRe","_updateBox","_updateTweenRefs","windowDidResize","iStyle","iMap","noref","mapReset","deepEqual","_updateTweenRef","style","targets","tweenRef","postPone","pureCss","_this3","m","updateRefStyle","_this$_$refs$id","anim","then","sl","fail","_this4","keepResults","anims","initial","displayName","Promise","resolve","run","rkey","destroy","live","reset","_this5","p","axe","_$defaultAxesPosition","_inertia$setBounds","_inertia$setBounds2","_this6","_inertia","_ref$scrollableArea","scrollableArea","_scrollableArea","_scrollableBounds","scrollableBounds","_scrollableWindow","scrollableWindow","defaultPosition","scrollFirst","dim","axes","scrollPos","targetPos","nextDescr","scrollTo","ease","noEvents","updateConf","setBounds","_this7","initialScrollPos","_this8","state","axis","newPos","_this9","ms","reject","_this9$axes","_this9$axes2","_this9$axes3","oldPos","setPos","_$rootRef2","_$rootRef2$componentD","axisDidScroll","componentDidScroll","_runScrollGoTo","goTo","_this9$axes4","_dim$inertia","_this10","_getAxis","found","_dim$inertia2","tl","to","_this11","easing","tick","_this11$axes","_this11$axes2","_this11$axes3","_$rootRef$current","componentShouldScroll","axisId","listener","byId","_scrollWatcherByAxis","index","watchers","_$rootRef3","_$rootRef3$componentD","_this12","inertiaFrame","_this13","findIndex","scrollWidth","scrollHeight","getRootNode","inited","force","swap","_swap","getTweenableRef","_this14","clearTimeout","_superPropGet","_this15","_static","rendered","scrollableAnim","addScrollableAnim","prevProps","prevState","_this16","_this$props","BaseComponent","oProps","TweenerContext","Consumer","parentTweener","_parentTweener","Provider","_extends","tweener","RootNodeComp","nodeRef","lastTweener","doUseParentTweener","pTweener","_pTweener","name","tw","isMountedFromHook","ViewBox","children","_objectWithoutProperties","_excluded","_lastTweener$current","componentDidMount","_lastTweener$current2","componentWillUnmount","_lastTweener$current3","_lastTweener$current4","_lastTweener$current5","_ref$axe","size","_ref$items","µ","_useVoodoo","useVoodoo","previousAxis","previousInertia","previousBounds","previousScrollableWindow","initAxis","previousTweener","previousTweens","lastTL","rmScrollableAnim","previousScrollable","isFunctionalComponent","Component","isReactComponent","component","isClassComponent","setTarget","Node","_ref$id","shortid","noRef","isRoot","_ref$refProp","refProp","_ref$tweenLines","tweenLines","_ref$tweenAxis","error","axisItemsChange","twRef","_tweenAxisObj","_currentTweener","rmTweenRef","__tweenableId","setRootRef","_previousScrollable","scrollY","RefChild","only","_lastRef","div","_ref3","className","_excluded2","Draggable","_ref$Comp","Comp","xAxis","yAxis","yBoxRef","xBoxRef","yHook","yRef","xHook","_ref$mouseDrag","_ref$touchDrag","_ref$button","button","root","api","getScrollableNodes","scrollable","parent","_registerScrollListeners","_µ$root","lastStartTm","cLock","dX","parents","dY","parentsState","refWidth","refHeight","rootNode","_µ$props","domUtils","dragList","touch","descr","_ref2","MouseEvent","_pTweener$axes","_pTweener$axes2","deltaX","xDispatched","xBox","deltaY","yDispatched","yBox","dragDirectionLock","_pTweener$axes3","_pTweener$axes4","_x4","_y4","_x","_y","_x2","_y2","_x3","_y3","startMove","isInbound","hold","_pTweener$axes5","_pTweener$axes6","cancelable","enableMouseDrag","doRegister","_µ$root2","scrollEnabled","SimpleObjectProto","asTweener","wheelRatio","withRef","String","fromCharCode","withTweener","opts","TweenerToProps","TweenAxis","D3Ease","_class","child","useTweener","hook","tools","Context","dom"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"react-voodoo.js","mappings":"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","sources":["webpack://react-voodoo/./src/.___layerPackIndexUtils.js","webpack://react-voodoo/./src/MapOf.react_voodoo-S-utils-S-css-S-demux-S-typed-S-_-W-_-js.gen.js","webpack://react-voodoo/./src/utils/css/cssUtils.js","webpack://react-voodoo/./src/utils/css/demux/filter.js","webpack://react-voodoo/./src/utils/css/demux/transform.js","webpack://react-voodoo/./src/utils/css/demux/typed/any.js","webpack://react-voodoo/./src/utils/css/demux/typed/bool.js","webpack://react-voodoo/external commonjs-module \"color-rgba\"","webpack://react-voodoo/./src/utils/css/demux/typed/color.js","webpack://react-voodoo/./src/utils/css/demux/typed/length.js","webpack://react-voodoo/./src/utils/css/demux/typed/multi.js","webpack://react-voodoo/./src/utils/css/demux/typed/number.js","webpack://react-voodoo/./src/utils/css/demux/typed/ratio.js","webpack://react-voodoo/./src/utils/css/demux/typed/shadow.js","webpack://react-voodoo/./src/utils/css/demux/typed/svgAttr.js","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/defineProperty\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/slicedToArray\"","webpack://react-voodoo/external commonjs-module \"d3-ease\"","webpack://react-voodoo/external commonjs-module \"is\"","webpack://react-voodoo/webpack/bootstrap","webpack://react-voodoo/webpack/runtime/compat get default export","webpack://react-voodoo/webpack/runtime/define property getters","webpack://react-voodoo/webpack/runtime/hasOwnProperty shorthand","webpack://react-voodoo/webpack/runtime/make namespace object","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/classCallCheck\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/createClass\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/getPrototypeOf\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/inherits\"","webpack://react-voodoo/external commonjs-module \"react\"","webpack://react-voodoo/external commonjs-module \"fast-deep-equal\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/extends\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://react-voodoo/./src/comps/TweenerContext.js","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/toConsumableArray\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/get\"","webpack://react-voodoo/external commonjs-module \"react-dom\"","webpack://react-voodoo/./src/utils/tweenTools.js","webpack://react-voodoo/./src/MapOf.react_voodoo-S-utils-S-css-S-demux-S-_-W-_-js.gen.js","webpack://react-voodoo/./src/MapOf.react_voodoo-S-utils-S-css-S-demux-S-_-W-W-S-W-_-js.gen.js","webpack://react-voodoo/./src/utils/css/index.js","webpack://react-voodoo/external commonjs-module \"tween-axis/dist/TweenAxisWasm\"","webpack://react-voodoo/./src/utils/CssTweenAxis.js","webpack://react-voodoo/./src/utils/dom.js","webpack://react-voodoo/./src/utils/inertia.js","webpack://react-voodoo/./src/comps/Tweener.js","webpack://react-voodoo/./src/hooks/useVoodoo.js","webpack://react-voodoo/./src/comps/Axis.js","webpack://react-voodoo/external commonjs-module \"shortid\"","webpack://react-voodoo/./src/utils/react.js","webpack://react-voodoo/./src/comps/Node.js","webpack://react-voodoo/./src/comps/Draggable.js","webpack://react-voodoo/./src/hooks/useTweener.js","webpack://react-voodoo/./src/spells/asTweener.js","webpack://react-voodoo/./src/spells/withTweener.js","webpack://react-voodoo/./src/index.js"],"sourcesContent":["/*\n * Copyright 2021 BRAUN Nathanael\n *\n * Use of this source code is governed by an MIT-style\n * license that can be found in the LICENSE file or at\n * https://opensource.org/licenses/MIT.\n */\nmodule.exports = {\n\t/**\n\t * Walk & set executables from globs requires\n\t * @param _target\n\t * @param path\n\t * @param value\n\t */\n\twalknSetExport( _target, path, value ) {\n\t\tlet fPath = path.split('/'),\n\t\t target = _target, i, module;\n\t\t\n\t\ti = 0;\n\t\twhile ( i < fPath.length - 1 ) target = target[fPath[i]] = target[fPath[i]] || {}, i++;\n\t\t\n\t\tmodule = Object.keys(value).length === 1 && value.default || value;\n\t\t\n\t\tif ( !target[fPath[i]] ) {\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse if ( !target[fPath[i]].__esModule ) {// if this is simple path obj write over\n\t\t\tObject.assign(module, target[fPath[i]]);\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse {// when we are in hot reload this may delete some sub modules... @todo\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t}\n};","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\n\n\nconst _react_voodoo_utils_css_demux_typed_any_js = require(\"react-voodoo/utils/css/demux/typed/any.js\");\n\nwalknSetExport(_exports, \"any\", _react_voodoo_utils_css_demux_typed_any_js);\nconst _react_voodoo_utils_css_demux_typed_bool_js = require(\"react-voodoo/utils/css/demux/typed/bool.js\");\n\nwalknSetExport(_exports, \"bool\", _react_voodoo_utils_css_demux_typed_bool_js);\nconst _react_voodoo_utils_css_demux_typed_color_js = require(\"react-voodoo/utils/css/demux/typed/color.js\");\n\nwalknSetExport(_exports, \"color\", _react_voodoo_utils_css_demux_typed_color_js);\nconst _react_voodoo_utils_css_demux_typed_multi_js = require(\"react-voodoo/utils/css/demux/typed/multi.js\");\n\nwalknSetExport(_exports, \"multi\", _react_voodoo_utils_css_demux_typed_multi_js);\nconst _react_voodoo_utils_css_demux_typed_ratio_js = require(\"react-voodoo/utils/css/demux/typed/ratio.js\");\n\nwalknSetExport(_exports, \"ratio\", _react_voodoo_utils_css_demux_typed_ratio_js);\nconst _react_voodoo_utils_css_demux_typed_length_js = require(\"react-voodoo/utils/css/demux/typed/length.js\");\n\nwalknSetExport(_exports, \"length\", _react_voodoo_utils_css_demux_typed_length_js);\nconst _react_voodoo_utils_css_demux_typed_number_js = require(\"react-voodoo/utils/css/demux/typed/number.js\");\n\nwalknSetExport(_exports, \"number\", _react_voodoo_utils_css_demux_typed_number_js);\nconst _react_voodoo_utils_css_demux_typed_shadow_js = require(\"react-voodoo/utils/css/demux/typed/shadow.js\");\n\nwalknSetExport(_exports, \"shadow\", _react_voodoo_utils_css_demux_typed_shadow_js);\nconst _react_voodoo_utils_css_demux_typed_svgAttr_js = require(\"react-voodoo/utils/css/demux/typed/svgAttr.js\");\n\nwalknSetExport(_exports, \"svgAttr\", _react_voodoo_utils_css_demux_typed_svgAttr_js);\n\nexport const any = _exports.any;\n\nexport const bool = _exports.bool;\n\nexport const color = _exports.color;\n\nexport const length = _exports.length;\n\nexport const multi = _exports.multi;\n\nexport const number = _exports.number;\n\nexport const ratio = _exports.ratio;\n\nexport const shadow = _exports.shadow;\n\nexport const svgAttr = _exports.svgAttr;\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nexport const props = {\n\t\"margin\" : { \"properties\": [\"marginTop\", \"marginRight\", \"marginBottom\", \"marginLeft\"], \"multiple\": true },\n\t\"marginBottom\" : { \"types\": [\"length\"] },\n\t\"marginLeft\" : { \"types\": [\"length\"] },\n\t\"marginRight\" : { \"types\": [\"length\"] },\n\t\"marginTop\" : { \"types\": [\"length\"] },\n\t\"padding\" : { \"properties\": [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"], \"multiple\": true },\n\t\"paddingBottom\": { \"types\": [\"length\"] },\n\t\"paddingLeft\" : { \"types\": [\"length\"] },\n\t\"paddingRight\" : { \"types\": [\"length\"] },\n\t\"paddingTop\" : { \"types\": [\"length\"] },\n\t\"bottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"left\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"right\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"top\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"zIndex\" : { \"types\": [\"integer\"] },\n\t\"width\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"height\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"lineHeight\" : { \"types\": [\"length\"] },\n\t\"verticalAlign\": { \"types\": [\"length\"] },\n\t\"visibility\" : { \"types\": [\"visibility\"] },\n\t\"borderSpacing\": { \"types\": [\"length\"], \"multiple\": true },\n\t\"color\" : { \"types\": [\"color\"] },\n\t\"opacity\" : { \"types\": [\"number\"] },\n\t//\"background\" : { \"properties\": [\"backgroundColor\", \"backgroundPosition\", \"backgroundSize\"] },\n\t\"backgroundColor\" : { \"types\": [\"color\"] },\n\t\"backgroundPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"backgroundSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"border\" : { \"properties\": [\"borderStyle\", \"borderWidth\", \"borderColor\"] },\n\t\"borderBottom\" : { \"properties\": [\"borderBottomStyle\", \"borderBottomWidth\", \"borderBottomColor\"] },\n\t\"borderLeft\" : { \"properties\": [\"borderLeftStyle\", \"borderLeftWidth\", \"borderLeftColor\"] },\n\t\"borderRight\" : { \"properties\": [\"borderRightStyle\", \"borderRightWidth\", \"borderRightColor\"] },\n\t\"borderTop\" : { \"properties\": [\"borderTopStyle\", \"borderTopWidth\", \"borderTopColor\"] },\n\t\"borderColor\" : { \"properties\": [\"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\"] },\n\t\"borderWidth\" : { \"properties\": [\"borderTopWidth\", \"borderRightWidth\", \"borderBottomWidth\", \"borderLeftWidth\"] },\n\t\"borderBottomColor\" : { \"types\": [\"color\"] },\n\t\"borderLeftColor\" : { \"types\": [\"color\"] },\n\t\"borderRightColor\" : { \"types\": [\"color\"] },\n\t\"borderTopColor\" : { \"types\": [\"color\"] },\n\t\"borderBottomWidth\" : { \"types\": [\"length\"] },\n\t\"borderLeftWidth\" : { \"types\": [\"length\"] },\n\t\"borderRightWidth\" : { \"types\": [\"length\"] },\n\t\"borderTopWidth\" : { \"types\": [\"length\"] },\n\t\"borderRadius\" : { \"properties\": [\"borderTopLeftRadius\", \"borderTopRightRadius\", \"borderBottomRightRadius\", \"borderBottomLeftRadius\"] },\n\t\"borderTopLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderTopRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"boxShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"caretColor\" : { \"types\": [\"color\"] },\n\t\"outline\" : { \"properties\": [\"outlineColor\", \"outlineWidth\"] },\n\t\"outlineColor\" : { \"types\": [\"color\"] },\n\t\"outlineWidth\" : { \"types\": [\"length\"] },\n\t\"outlineOffset\" : { \"types\": [\"length\"] },\n\t\"flex\" : { \"properties\": [\"flexGrow\", \"flexShrink\", \"flexBasis\"] },\n\t\"flexGrow\" : { \"types\": [\"number\"] },\n\t\"flexShrink\" : { \"types\": [\"number\"] },\n\t\"flexBasis\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"order\" : { \"types\": [\"integer\"] },\n\t\"font\" : { \"properties\": [\"fontWeight\", \"fontStretch\", \"fontSize\", \"lineHeight\"] },\n\t\"fontWeight\" : { \"types\": [\"font-weight\"] },\n\t\"fontStretch\" : { \"types\": [\"font-stretch\"] },\n\t\"fontSize\" : { \"types\": [\"length\"] },\n\t\"fontSizeAdjust\" : { \"types\": [\"number\"] },\n\t\"gridTemplateColumns\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplateRows\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplate\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"grid\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"gridRowGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridColumnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridGap\" : { \"properties\": [\"gridRowGap\", \"gridColumnGap\"] },\n\t\"clip\" : { \"types\": [\"rectangle\"] },\n\t\"clipPath\" : { \"types\": [\"basic-shape\"] },\n\t\"mask\" : { \"properties\": [\"maskPosition\", \"maskSize\"] },\n\t\"maskPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"maskSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"shapeOutside\" : { \"types\": [\"basic-shape\"] },\n\t\"shapeMargin\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"shapeImageThreshold\" : { \"types\": [\"number\"] },\n\t\"scrollPadding\" : { \"properties\": [\"scrollPaddingTop\", \"scrollPaddingRight\", \"scrollPaddingBottom\", \"scrollPaddingLeft\"] },\n\t\"scrollPaddingTop\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingRight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingLeft\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlock\" : { \"properties\": [\"scrollPaddingBlockStart\", \"scrollPaddingBlockEnd\"] },\n\t\"scrollPaddingBlockStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlockEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInline\" : { \"properties\": [\"scrollPaddingInlineStart\", \"scrollPaddingInlineEnd\"] },\n\t\"scrollPaddingInlineStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInlineEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollSnapMargin\" : { \"properties\": [\"scrollSnapMarginTop\", \"scrollSnapMarginRight\", \"scrollSnapMarginBottom\", \"scrollSnapMarginLeft\"] },\n\t\"scrollSnapMarginTop\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginRight\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBottom\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginLeft\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlock\" : { \"properties\": [\"scrollSnapMarginBlockStart\", \"scrollSnapMarginBlockEnd\"] },\n\t\"scrollSnapMarginBlockStart\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlockEnd\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInline\" : { \"properties\": [\"scrollSnapMarginInlineStart\", \"scrollSnapMarginInlineEnd\"] },\n\t\"scrollSnapMarginInlineStart\": { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInlineEnd\" : { \"types\": [\"length\"] },\n\t\"textDecoration\" : { \"properties\": [\"textDecorationColor\"] },\n\t\"textDecorationColor\" : { \"types\": [\"color\"] },\n\t\"textEmphasis\" : { \"properties\": [\"textEmphasisColor\"] },\n\t\"textEmphasisColor\" : { \"types\": [\"color\"] },\n\t\"textShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"columns\" : { \"properties\": [\"columnWidth\", \"columnCount\"] },\n\t\"columnWidth\" : { \"types\": [\"length\"] },\n\t\"columnCount\" : { \"types\": [\"integer\"] },\n\t\"columnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"columnRule\" : { \"properties\": [\"columnRuleColor\", \"columnRuleWidth\"] },\n\t\"columnRuleColor\" : { \"types\": [\"color\"] },\n\t\"columnRuleWidth\" : { \"types\": [\"length\"] },\n\t\"letterSpacing\" : { \"types\": [\"length\"] },\n\t\"tabSize\" : { \"types\": [\"length\"] },\n\t\"textIndent\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"wordSpacing\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"transform\" : { \"types\": [\"transform\"] },\n\t\"transformOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"perspective\" : { \"types\": [\"length\"] },\n\t\"perspectiveOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\n\t// SVG presentation attributes — applied via element.style on SVG elements\n\t\"fill\" : { \"types\": [\"color\"] },\n\t\"stroke\" : { \"types\": [\"color\"] },\n\t\"strokeWidth\" : { \"types\": [\"length\"] },\n\t\"strokeOpacity\" : { \"types\": [\"number\"] },\n\t\"fillOpacity\" : { \"types\": [\"number\"] },\n\t\"strokeDashoffset\" : { \"types\": [\"length\"] },\n\n\t// SVG geometry attributes — applied via element.setAttribute (see svgAttr handler)\n\t\"cx\" : { \"types\": [\"svg-attr\"] },\n\t\"cy\" : { \"types\": [\"svg-attr\"] },\n\t\"r\" : { \"types\": [\"svg-attr\"] },\n\t\"rx\" : { \"types\": [\"svg-attr\"] },\n\t\"ry\" : { \"types\": [\"svg-attr\"] },\n\t\"x\" : { \"types\": [\"svg-attr\"] },\n\t\"y\" : { \"types\": [\"svg-attr\"] },\n\t\"x1\" : { \"types\": [\"svg-attr\"] },\n\t\"y1\" : { \"types\": [\"svg-attr\"] },\n\t\"x2\" : { \"types\": [\"svg-attr\"] },\n\t\"y2\" : { \"types\": [\"svg-attr\"] }\n}\n\nexport const units = ['', 'deg', 'box', 'bz', 'bh', 'bw', 'deg', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'];\nexport const unitsRe = new RegExp(\n\t\"^\\s*([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['\\\\w+', 'deg', 'bz', 'bh', 'bw', 'cap', 'ch', 'deg', 'em', 'ic', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\\s*$\"\n);\nexport const floatCut = ( v = 0 ) => Number(v.toFixed(3));\n\nexport function expandShorthandProperty( property, value, target = {} ) {\n\tlet type = props[property],\n\t childProps = type && type.properties,\n\t values = value.split(' ');\n\t\n\tif ( type.multiple )\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\ttarget[k] = values[i % values.length];\n\t\t\t}\n\t\t)\n\telse\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\tif ( values[i] )\n\t\t\t\t\ttarget[k] = values[i];\n\t\t\t}\n\t\t)\n\treturn target;\n};\n\nexport function isShorthandProperty( property ) {\n\tlet type = props[property],\n\t childProps = type && type.properties;\n\treturn childProps && !!childProps.length;\n};\n\n\n\nexport function isValidDeclaration( property, value ) {\n\treturn !!props[property];\n};\n\n/**\n * Check if a CSS property can be animated\n * @param {string} property CSS property name\n * @return {boolean} True if the property can be animated\n */\nexport function canAnimate( property ) {\n\treturn props.hasOwnProperty(property);\n};\n\n/**\n * Get a definition of how a CSS property can be animated\n * @param {string} property CSS property name\n * @param {boolean} expand Expand definitions for sub-properties, when available\n * @return {object} Property definition, or null if it can't be animated\n */\nexport function getProperty( property, expand ) {\n\tif ( !exports.canAnimate(property) ) {\n\t\treturn null;\n\t}\n\tvar prop = props[property];\n\tvar ret = { name: property };\n\tObject.keys(prop).forEach(function ( key ) {\n\t\tvar value = prop[key];\n\t\tif ( Array.isArray(value) ) {\n\t\t\tif ( key === 'properties' && expand ) {\n\t\t\t\tvalue = value.map(function ( subProp ) {\n\t\t\t\t\treturn exports.getProperty(subProp, expand);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalue = value.slice(); // clone\n\t\t\t}\n\t\t}\n\t\tret[key] = value;\n\t});\n\treturn ret;\n};\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\nconst\n\tdefaultUnits = {\n\t\tblur : 'px',\n\t\tbrightness: '%',\n\t\tcontrast : '%',\n\t\tdropShadow: true,\n\t\tgrayscale : '%',\n\t\thueRotate : 'deg',\n\t\tinvert : \"%\",\n\t\topacity : \"%\",\n\t\tsaturate : \"%\",\n\t\tsepia : \"%\"\n\t}, defaultValue = {};\n\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length === 4 ) {\n\t\t//console.warn(\"dec\", twKey, dataMap[path[0]][path[1]][path[2]])\n\t\t// dec count on filter\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free filter layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\t//if ( unit === 'box' ) {\n\t//\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t//\tunit = 'px';\n\t//}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet filters = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\tfilters += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.filter = filters;\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\n/**\n * Transform demuxer — the most complex CSS property handler in the library.\n *\n * CSS `transform` is represented as an *array of layer objects*, enabling additive\n * multi-layer composition. Each layer is an object whose keys are transform\n * functions (translateX, rotate, etc.) and whose values are either a single CSS\n * value or a multi-unit array. The key hierarchy encoded in tweenRefMaps is:\n * `transform_<layerIdx>_<fnKey>_<unitIdx>`\n *\n * Example: `transform_0_translateX_9` = layer 0, translateX function, index 9 ('px').\n *\n * Reference counting (stored in `data[key]` and `data[dkey]`) prevents premature\n * deletion of shared slots when multiple tween descriptors animate the same property.\n * When all consumers have released a slot the numeric entry is removed from\n * tweenRefMaps and the layer may be trimmed from the data array.\n *\n * The mux pass reconstructs CSS `transform` strings by iterating layers → functions\n * → units, joining multi-unit values with CSS `calc()` expressions.\n */\n\nconst defaultUnits = {\n\t //matrix : true,\n\t //translate : 'px',\n\t translateX: 'px',\n\t translateY: 'px',\n\t translateZ: 'px',\n\t scale : '',\n\t scaleZ : '',\n\t scaleX : '',\n\t scaleY : '',\n\t rotate : 'deg',\n\t //skew : 'deg',\n\t skewX: 'deg',\n\t skewY: 'deg',\n\t //matrix3d : true,\n\t //translate3d: true,\n\t //scale3d : true,\n\t //rotate3d : true,\n\t rotateX : 'deg',\n\t rotateY : 'deg',\n\t rotateZ : 'deg',\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n\t translateY: 'y',\n\t translateZ: 'z',\n\t rotateX : 'x',\n\t rotateY : 'y',\n\t rotateZ : 'z',\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom : 'y',\n\t width : 'x',\n\t height : 'y',\n }, defaultValue = {\n\t //skew : 1,\n\t //skewX : 1,\n\t //skewY : 1,\n\t scale : 1,\n\t scaleX: 1,\n\t scaleY: 1,\n\t scaleZ: 1\n };\n\n/**\n * Release a single numeric slot referenced by the 4-part key `twKey`.\n *\n * The 4 segments of `twKey` are: [property, layerIdx, fnKey, unitIdx].\n * Two separate ref-count decrements are performed:\n * 1. `dataMap[path[0]][layerIdx][fnKey]` — the per-function ref count within the layer\n * 2. `dataMap[dkey][unitIdx]` — the per-unit ref count within the function\n *\n * When both reach zero (and keepValues is false) the corresponding entries are\n * deleted from dataMap, tweenableMap, and — if the entire property has no more\n * active slots — from muxerMap and cssMap as well. Empty trailing layer entries are\n * trimmed from the data arrays to keep memory usage proportional to active content.\n */\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;\n\tif ( path.length === 4 ) {\n\t\t// Decrement the per-function ref count at the layer level.\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.warn(\"[react-voodoo] transform.release: unexpected key format (expected 4 segments):\", path)\n\t}\n}\n\n/**\n * Convert a single numeric slot value to a CSS unit string.\n *\n * Box-relative units (bw, bh, bz) are resolved here against the current viewport\n * box dimensions (`box.x`, `box.y`, `box.z`) and converted to `px`. This means\n * animations that use `bw` units automatically adapt to viewport resize events\n * because `demuxOne` is called fresh on every mux pass.\n */\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\n/**\n * Mux pass for transform — iterates all active layers and their functions, assembles\n * each function's value (calling demuxOne per unit and joining with CSS calc() for\n * multi-unit values), and concatenates the complete transform string.\n * Empty layers (no active functions) are skipped silently.\n */\nexport function demux( key, tweenable, target, data, box ) {\n\tlet transforms = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\ttransforms += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.transform = transforms;\n\t\n}\n\n/**\n * Register one unit value for a specific transform function key. Increments the\n * per-unit ref count in `data[key]` (unless `noPropLock` is set, which is used\n * during the prop-lock initialisation pass where counts are managed by the outer\n * `mux()` loop instead). Handles the `seenUnits` guard to accumulate values when\n * the same unit appears multiple times in a multi-value array.\n */\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\n/**\n * Demux pass (parse time) for transform — iterates the array of layer objects,\n * registers each transform function's values via `muxOne`, and maintains the\n * per-layer ref-count structure in `data[key]`. The `reOrder` flag is used when\n * re-registering an existing timeline to merge new layer data without discarding\n * previously registered function entries.\n */\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\n\tdata[key] = data[key] || [];\n\n\tif ( !is.array(value) && !is.object(value) ) {\n\t\tconsole.warn(\"[react-voodoo] transform.mux: unexpected value for '\", key, \"':\", value);\n\t\treturn demux;\n\t}\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\n\nconst defaultUnits = {\n\t left : 'px',\n\t right : 'px',\n\t top : 'px',\n\t bottom : 'px',\n\t width : 'px',\n\t height : 'px',\n\t perspective: 'px',\n },\n defaultBox = {\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom: 'y',\n\t width : 'x',\n\t height: 'y',\n }, defaultValue = {\n\t opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\t\n\tif ( path.length === 2 ) {\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n\t\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//dataMap[path[0]][path[1]] = undefined;\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tif ( cssMap ) delete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\t\n\t\tif ( !--dataMap[twKey].count && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\tdelete dataMap[twKey];\n\t\t\tdelete muxerMap[twKey];\n\t\t\tdelete cssMap[twKey];\n\t\t}\n\t\t//console.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitKey] || defaultUnits[baseKey] || \"px\";\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t\t\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n\tlet value, i = 0, y, rKey;\n\t\n\tvalue = \"\";\n\t\n\t//if ( key==\"height\" )\n\t//\tdebugger;\n\t\n\tif ( data[key].isString ) {\n\t\treturn target[key] = data[key].value[Math.round(tweenable[key])];\n\t}\n\t\n\tfor ( y = 0; y < data[key].length; y++ )\n\t\tif ( data[key][y] ) {\n\t\t\trKey = key + \"_\" + y;\n\t\t\tif ( tweenable[rKey] < 0 )\n\t\t\t\tvalue += (i\n\t\t\t\t ? \" - \"\n\t\t\t\t : \"-\") + demuxOne(y, -tweenable[rKey], baseKey || key, data, box);\n\t\t\telse\n\t\t\t\tvalue += (i\n\t\t\t\t ? \" + \"\n\t\t\t\t : \"\") + demuxOne(y, tweenable[rKey], baseKey || key, data, box);\n\t\t\ti++;\n\t\t}\n\tif ( i > 1 )\n\t\tvalue = \"calc(\" + value + \")\";\n\t\n\t//console.log(key, ':', value)\n\treturn target ? target[key] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n\t\n\tdata[key] = data[key] || [];\n\tlet seenUnits = [];\n\tif ( is.array(value) ) {\n\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\tmuxOne(key, value[i] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t}\n\t}\n\telse {\n\t\tmuxOne(key, value || 0, target, data, initials, noPropLock)\n\t}\n\t\n\treturn demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[key] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\t//\n\tif ( !match && is.string(value) ) {\n\t\tinitials[key] = defaultValue[key] || 0;\n\t\tdata[key].count = data[key].count||0;\n\t\tdata[key].count++;\n\t\tdata[key].isString = true;\n\t\tdata[key].value = data[key].value || [];\n\t\t!data[key].value.includes(value) && data[key].value.push(value);\n\t\ttarget[key] = data[key].value.indexOf(value);\n\t\treturn demux;\n\t}\n\tinitials[realKey] = defaultValue[key] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n}\n\nexport const mux = muxer;\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\tlet value = !!(tweenable[key]);\n\treturn target ? target[key] = value : value;\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value === false ? 0 : 1;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"color-rgba\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport rgba from \"color-rgba\";\nimport is from \"is\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'),\n\t tmpKey = path.slice(0, path.length - 1).join('_');\n\t\n\t//console.log(\"dec\", tmpKey, path, dataMap[twKey])\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", twKey, path)\n\t}\n\tif ( tmpKey && !--dataMap[tmpKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", tmpKey)\n\t}\n\t//}\n}\n\nexport function demux( key, tweenable, target, data ) {\n\tlet value = \"rgba(\" +\n\t\tMath.min(255, tweenable[key + '_r']) + \", \" +\n\t\tMath.min(255, tweenable[key + '_g']) + \", \" +\n\t\tMath.min(255, tweenable[key + '_b']) + \", \" +\n\t\tMath.min(1, tweenable[key + '_a']) + \")\";\n\t//console.log('demux::demux:38: ', value);\n\treturn target ?\n\t target[key] = value : value;\n}\n\nexport function mux( key, value, target, data, initials, noPropLock ) {\n\tlet vect = is.string(value)\n\t ? rgba(value)\n\t : value && [value.r || 0, value.g || 0, value.b || 0, value.a || 0];\n\t//console.log('mux::mux:44: ', value, vect);\n\tdata[key] = data[key] || 0;\n\tdata[key + '_r'] = data[key + '_r'] || 0;\n\tdata[key + '_g'] = data[key + '_g'] || 0;\n\tdata[key + '_b'] = data[key + '_b'] || 0;\n\tdata[key + '_a'] = data[key + '_a'] || 0;\n\tif ( !noPropLock ) {\n\t\tdata[key] += 4;\n\t\tdata[key + '_r']++;\n\t\tdata[key + '_g']++;\n\t\tdata[key + '_b']++;\n\t\tdata[key + '_a']++;\n\t}\n\t\n\ttarget[key + '_r'] = vect[0];\n\ttarget[key + '_g'] = vect[1];\n\ttarget[key + '_b'] = vect[2];\n\ttarget[key + '_a'] = vect[3];\n\t\n\tinitials[key] = 0;\n\t\n\tinitials[key + '_r'] = 0;\n\tinitials[key + '_g'] = 0;\n\tinitials[key + '_b'] = 0;\n\tinitials[key + '_a'] = 1;\n\t\n\treturn demux;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\n\nconst defaultUnits = {\n\t left : 'px',\n\t right : 'px',\n\t top : 'px',\n\t bottom : 'px',\n\t width : 'px',\n\t height : 'px',\n\t perspective: 'px',\n },\n defaultBox = {\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom: 'y',\n\t width : 'x',\n\t height: 'y',\n }, defaultValue = {\n\t opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\t\n\tif ( path.length === 2 ) {\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n\t\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//dataMap[path[0]][path[1]] = undefined;\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tif ( cssMap ) delete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitKey] || defaultUnits[baseKey] || \"px\";\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t\t\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n\tlet value, i = 0, y, rKey;\n\t\n\tvalue = \"\";\n\t\n\t//if ( key==\"height\" )\n\t//\tdebugger;\n\t\n\tfor ( y = 0; y < data[key].length; y++ )\n\t\tif ( data[key][y] ) {\n\t\t\trKey = key + \"_\" + y;\n\t\t\tif ( tweenable[rKey] < 0 )\n\t\t\t\tvalue += (i ? \" - \" : \"-\") + demuxOne(y, -tweenable[rKey], baseKey || key, data, box);\n\t\t\telse\n\t\t\t\tvalue += (i ? \" + \" : \"\") + demuxOne(y, tweenable[rKey], baseKey || key, data, box);\n\t\t\ti++;\n\t\t}\n\tif ( i > 1 )\n\t\tvalue = \"calc(\" + value + \")\";\n\t\n\t//console.log(key, ':', value)\n\treturn target ? target[key] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n\t\n\tdata[key] = data[key] || [];\n\tlet seenUnits = [];\n\tif ( is.array(value) ) {\n\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\tmuxOne(key, value[i] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t}\n\t}\n\telse {\n\t\tmuxOne(key, value || 0, target, data, initials, noPropLock)\n\t}\n\t\n\treturn demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[key] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[key] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\n\nexport const mux = muxer;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport * as length from \"./number\";\n\nconst\n alias = {\n top : '0%',\n bottom: '100%',\n center: '50%',\n left : '0%',\n right : '100%'\n };\n\nfunction demux( key, tweenable, target, data, box, offset ) {\n \n let count = data[ \"_\" + key ], v = '', nowhere = {};\n \n for ( let i = 0; i < count; i++ ) {\n length.demux(key + '_' + i, tweenable, nowhere, data, box, offset);\n v += nowhere[ key + '_' + i ] + ' ';\n }\n \n target[ key ] = v;\n}\n\n\nfunction release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n let path = twKey.split('_'), tmpKey;// not optimal at all\n \n //if ( path.length === 2 ) {\n //\tconsole.log(\"dec\", twKey, dataMap[path[0]][path[1]])\n //\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n //\t\tdelete tweenableMap[twKey];\n //\t\tdelete dataMap[path[0]][path[1]];\n //\t}\n //\n //\tif ( !keepValues )\n //\t\twhile ( dataMap[path[0]].length &&\n // !dataMap[path[0]][dataMap[path[0]].length - 1] ) dataMap[path[0]].pop(); if (\n // dataMap[path[0]].length === 0 && !keepValues ) { delete dataMap[path[0]]; delete\n // muxerMap[path[0]]; delete cssMap[path[0]]; console.log(\"delete\", path[0]) } } else\n // { console.log(\"wtf\", path) }\n}\n\nexport default ( count ) => ( {\n mux: ( key, value, target, data, initials, noPropLock ) => {\n let values = value.split(' '), v;\n \n data[ key ] = data[ key ] || 0;\n noPropLock && data[ key ]++;\n data[ \"_\" + key ] = count;\n \n for ( let i = 0; i < count; i++ ) {\n v = values[ i % values.length ];\n v = is.string(v) && alias[ v ] || v;\n length.mux(key + '_' + i, v, target, data, initials, noPropLock)\n }\n \n return demux;\n }, demux, release\n} )\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = ~~(tweenable[key]);// + defaultUnits[key];\n\t\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = 0;\n\ttarget[key] = ~~value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\nimport {floatCut} from \"../../cssUtils\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = Math.min(1, Math.max(0, floatCut(tweenable[key])));\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\nimport {bool, color} from \"./(*).js\";\n\n\nconst cssShadowParser = (() => {\n\tconst VALUES_REG = /,(?![^\\(]*\\))/\n\tconst PARTS_REG = /\\s(?![^(]*\\))/\n\tconst LENGTH_REG = /^[0-9]+[a-zA-Z%]+?$/\n\t\n\tconst parseValue = str => {\n\t\tconst parts = str.split(PARTS_REG)\n\t\tconst inset = parts.includes('inset')\n\t\tconst last = parts.slice(-1)[0]\n\t\tconst color = !isLength(last) ? last : undefined\n\t\t\n\t\tconst nums = parts\n\t\t\t.filter(n => n !== 'inset')\n\t\t\t.filter(n => n !== color)\n\t\t\t.map(toNum)\n\t\tconst [offsetX, offsetY, blurRadius, spreadRadius] = nums\n\t\t\n\t\treturn {\n\t\t\tinset,\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t}\n\t}\n\t\n\tconst stringifyValue = obj => {\n\t\tconst {\n\t\t\t inset,\n\t\t\t offsetX = 0,\n\t\t\t offsetY = 0,\n\t\t\t blurRadius = 0,\n\t\t\t spreadRadius,\n\t\t\t color\n\t\t } = obj || {}\n\t\t\n\t\treturn [\n\t\t\t(inset ? 'inset' : null),\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t].filter(v => v !== null && v !== undefined)\n\t\t .map(toPx)\n\t\t .map(s => ('' + s).trim())\n\t\t .join(' ')\n\t}\n\t\n\tconst isLength = v => v === '0' || LENGTH_REG.test(v)\n\tconst toNum = v => {\n\t\tif ( !/px$/.test(v) && v !== '0' ) return v\n\t\tconst n = parseFloat(v)\n\t\treturn !isNaN(n) ? n : v\n\t}\n\tconst toPx = n => typeof n === 'number' && n !== 0 ? (n + 'px') : n\n\t\n\tconst parse = str => str.split(VALUES_REG).map(s => s.trim()).map(parseValue)\n\tconst stringify = arr => arr.map(stringifyValue).join(', ')\n\t\n\treturn {\n\t\tparse,\n\t\tstringify\n\t}\n})()\n\n\nconst defaultUnits = {\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n },\n defaultMuxers = {\n\t //blurRadius : number,\n\t inset: bool,\n\t //offsetX : number,\n\t //offsetY : number,\n\t //spreadRadius: number,\n\t color: color\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length > 2 ) {\n\t\t// dec count on transform\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\tif ( defaultMuxers[path[2]] ) {\n\t\t\tdefaultMuxers[path[2]].release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n\t\t\tif ( !dataMap[tmpKey] ) {\n\t\t\t\t//console.log(\"dec\", tmpKey, dataMap[path[0]][path[1]][path[2]])\n\t\t\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\t\tdelete dataMap[path[0]];\n\t\t\t\tdelete muxerMap[path[0]];\n\t\t\t\tdelete cssMap[path[0]];\n\t\t\t\t//console.log(\"delete color\", twKey)\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]])\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\t//tmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t// units\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", tmpKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !Object.keys(dataMap[path[0]][dataMap[path[0]].length - 1]).length )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet shadows = [],\n\t tmpValue = {};\n\tlet ti = 0, shadowMap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\tshadowMap = data[key][ti];\n\t\ttmpValue = {};\n\t\tfor ( fkey in shadowMap )\n\t\t\tif ( shadowMap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif ( defaultMuxers[fkey] ) {\n\t\t\t\t\tvalue = defaultMuxers[fkey].demux(dkey, tweenable, undefined, data, box);\n\t\t\t\t\t//continue;\n\t\t\t\t\t//console.log(dkey, tweenable[dkey])\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t\ty = 0;\n\t\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\t\ty++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ( y > 1 )\n\t\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\ttmpValue[fkey] = (value || 0);\n\t\t\t}\n\t\tshadows.push(tmpValue);\n\t}\n\t\n\ttarget[key] = cssShadowParser.stringify(shadows);\n\t//console.log(key, shadows, target[key]);\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, shadowMap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\tshadowMap = value[ti];\n\t\tif ( is.string(shadowMap) )\n\t\t\tshadowMap = cssShadowParser.parse(shadowMap)[0];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in shadowMap ) {\n\t\t\tif ( shadowMap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = shadowMap[tFnKey];\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\tif ( defaultMuxers[tFnKey] ) {\n\t\t\t\t\tdefaultMuxers[tFnKey].mux(dkey, fValue, target, data, initials, noPropLock, reOrder);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t\n\t\t\t\t\tseenUnits = {};\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport {floatCut} from \"../../cssUtils\";\n\n/**\n * Handler for SVG geometry attributes (cx, cy, r, rx, ry, x, y, x1, y1, x2, y2, etc.).\n *\n * Unlike CSS properties, SVG geometry attributes cannot be set via element.style —\n * they require element.setAttribute(). To signal this to the Tweener's DOM update\n * loop without restructuring the pipeline, this handler writes values into the CSS\n * map under an \"attr_\" prefix (e.g. \"cx\" → \"attr_cx\"). _updateTweenRef detects\n * that prefix and calls setAttribute instead of assigning to node.style.\n */\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tif ( cssMap ) delete cssMap['attr_' + twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget['attr_' + key] = String(floatCut(tweenable[key]));\n}\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\tinitials[key] = 0;\n\ttarget[key] = parseFloat(value) || 0;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\treturn demux;\n};\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"d3-ease\");","module.exports = require(\"is\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/classCallCheck\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/createClass\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/getPrototypeOf\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/inherits\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"fast-deep-equal\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/extends\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/objectWithoutProperties\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\n\nconst TweenerContext = React.createContext(null);\nexport default TweenerContext","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/toConsumableArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/get\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\n\n/**\n * Utility functions for manipulating tween descriptor arrays before passing them\n * to `addScrollableAnim()` or `pushAnim()`. All functions are pure — they return\n * new arrays and never mutate the input. This makes them safe to compose:\n * e.g. `offset(scale(reverse(items), 1000), 200)`\n */\n\nexport const re_cssValueWithUnit = new RegExp(\n\t\"([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['box', 'bz', 'bh', 'bw', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\"\n);\n\n/**\n * add any css val with it unit ( todo: optims&use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssAdd( val1, val2, ...argz ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\tif ( !is.array(val2) )\n\t\tval2 = [val2];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t units2 = val2.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 0;\n\t\tremap[units1[i][2]] += parseFloat(units1[i][1]);\n\t\ti++;\n\t}\n\ti = 0;\n\twhile ( i < units2.length ) {\n\t\tremap[units2[i][2]] = remap[units2[i][2]] || 0;\n\t\tremap[units2[i][2]] += parseFloat(units2[i][1]);\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn argz.length ? cssAdd(result, ...argz) : result;\n}\n\n/**\n * Multiply any css val with it unit ( todo: optims & use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssMult( val1, val ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 1;\n\t\tremap[units1[i][2]] = parseFloat(units1[i][1]) * val;\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn result;\n}\n\n/**\n * Shift all tween `from` positions by `start` ms. Used to concatenate multiple\n * tween arrays end-to-end when composing complex timelines.\n */\nexport function offset( items, start = 0 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom: item.from + start\n\t\t\t}\n\t\t)\n\t)\n}\n\n/**\n * Proportionally rescale all tween `from` and `duration` values so the entire\n * timeline fits exactly within `duration` ms. Useful for normalising imported\n * animations to a specific scroll range.\n */\nexport function scale( items, duration = 0, withOffset ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\titems = items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom : (item.from / iDuration) * duration,\n\t\t\t\tduration: (item.duration / iDuration) * duration\n\t\t\t}\n\t\t)\n\t)\n\treturn withOffset ? offset(items, withOffset) : items\n}\n\nfunction inverseValues( v ) {\n\tif ( is.number(v) )\n\t\treturn -v;\n\tif ( is.object(v) )\n\t\treturn Object.keys(v).reduce(( h, key ) => (h[key] = inverseValues(v[key]), h), {});\n\tif ( is.array(v) )\n\t\treturn v.map(( item ) => (inverseValues(item)));\n\t\n\tlet values = v.split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig);\n\t\n\treturn values.map(\n\t\t( val, i ) => (i % 2 ? -parseFloat(val) : val)\n\t).join(\"\");\n}\n\n/**\n * Mirror a timeline so it plays backward. Each descriptor's `from` is remapped to\n * `totalDuration - (from + duration)` and all numeric values in `apply` are negated\n * via `inverseValues`, so the end state of the forward animation becomes the start\n * state of the reversed one.\n */\nexport function reverse( items ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\treturn items.map(\n\t\titem => {\n\t\t\titem =\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tfrom: iDuration - (item.from + item.duration),\n\t\t\t\t\t...(item.apply ? { apply: inverseValues(item.apply) } : undefined)\n\t\t\t\t};\n\t\t\treturn item;\n\t\t}\n\t)\n}\n\nconst MultiCssProps = { \"transform\": true, \"filter\": true, \"textShadow\": true, \"boxShadow\": true }\n\n/**\n * Merge CSS descriptor objects by accumulating values rather than overwriting.\n * Used internally by `deMuxLine` to build the `allPropsById` aggregate.\n *\n * Special cases:\n * - Multi-value CSS properties (transform, filter, boxShadow, textShadow) are\n * treated as arrays and concatenated — preserving separate layer objects.\n * - Array values (multi-unit CSS like `[\"50%\", \"10vw\"]`) are merged by unit.\n * - Nested objects (e.g. individual transform layer objects) are merged recursively.\n */\nexport function addCss( target, ...sources ) {\n\tlet source = sources.shift();\n\t\n\tfor ( const key in source ) {\n\t\tif ( !source.hasOwnProperty(key) )\n\t\t\tcontinue;\n\t\t\n\t\tif ( MultiCssProps[key] ) {\n\t\t\tif ( !target[key] ) {\n\t\t\t\ttarget[key] = [];\n\t\t\t}\n\t\t\tif ( !is.array(source[key]) ) {\n\t\t\t\taddCss(target[key], [source[key]]);\n\t\t\t}\n\t\t\telse addCss(target[key], source[key]);\n\t\t}\n\t\telse {\n\t\t\t// adding units\n\t\t\tif ( is.array(source[key]) ) {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\t\t\t\tif ( !is.array(target[key]) ) {\n\t\t\t\t\ttarget[key] = [...source[key], target[key]];\n\t\t\t\t}\n\t\t\t\telse target[key].push(...source[key]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\tif ( !is.object(source[key]) ) {\n\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttarget[key] = { ...source[key] };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( is.object(target[key]) && is.object(source[key]) ) {\n\t\t\t\t\taddCss(target[key], source[key]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t//else target[key].push(...source[key]);\n\t\t\t\t\ttarget[key] = addAllType(target[key], source[key])\n\t\t\t\t\t//console.log(key, target[key])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\treturn sources.length && addCss(target, ...sources) || target;\n}\n\nfunction addAllType( v1, v2 ) {\n\tif ( !v1 )\n\t\treturn v2;\n\tif ( !v2 )\n\t\treturn v1;\n\tlet values1 = ('' + v1).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t values2 = ('' + v2).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t r = values1.map(\n\t\t ( val, i ) => (i % 2 ? parseFloat(val) + parseFloat(values2[i] || 0) : val)\n\t ).filter(i => (i !== ''));\n\t\n\treturn r.length === 1 ? parseInt(r[0]) : r.join(\"\")\n}\n\nexport function extractCss( items, inverse ) {\n\tlet css = {};\n\titems = is.array(items) ? items : items && [items] || items;\n\titems.forEach(\n\t\titem => {\n\t\t\taddCss(css, item.apply)\n\t\t}\n\t);\n\tif ( inverse )\n\t\tcss = inverseValues(css);\n\t\n\t\n\t//if ( inverse && css.hasOwnProperty('opacity') )\n\t//\tcss.opacity -= 1;\n\treturn css;\n}\n\nexport function target( items, target ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\ttarget\n\t\t\t}\n\t\t)\n\t)\n}\n\n/**\n * Prepend `shift` empty transform layer objects `{}` to the beginning of each\n * descriptor's transform array. This reserves layer slots so that an additive\n * animation can target a specific layer index without colliding with existing\n * transforms defined by other animations on the same node.\n *\n * Example: a base animation uses layer 0 (translateX); a hover overlay uses\n * `shiftTransforms(hoverItems, 1)` so it targets layer 1 instead.\n */\nexport function shiftTransforms( items, shift = 1 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => {\n\t\t\tlet t = item.apply && item.apply.transform;\n\t\t\tif ( t ) {\n\t\t\t\tt = is.array(t) ? [...t] : [t];\n\t\t\t\tfor ( let i = 0; i < shift; i++ )\n\t\t\t\t\tt.unshift({});\n\t\t\t\t\n\t\t\t\titem = { ...item, apply: { ...item.apply, transform: t } };\n\t\t\t}\n\t\t\treturn item;\n\t\t}\n\t)\n}","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\n\n\nconst _react_voodoo_utils_css_demux_filter_js = require(\"react-voodoo/utils/css/demux/filter.js\");\n\nwalknSetExport(_exports, \"filter\", _react_voodoo_utils_css_demux_filter_js);\nconst _react_voodoo_utils_css_demux_boxShadow_js = require(\"react-voodoo/utils/css/demux/boxShadow.js\");\n\nwalknSetExport(_exports, \"boxShadow\", _react_voodoo_utils_css_demux_boxShadow_js);\nconst _react_voodoo_utils_css_demux_transform_js = require(\"react-voodoo/utils/css/demux/transform.js\");\n\nwalknSetExport(_exports, \"transform\", _react_voodoo_utils_css_demux_transform_js);\nconst _react_voodoo_utils_css_demux_textShadow_js = require(\"react-voodoo/utils/css/demux/textShadow.js\");\n\nwalknSetExport(_exports, \"textShadow\", _react_voodoo_utils_css_demux_textShadow_js);\nconst _react_voodoo_utils_css_demux_backgroundColor_js = require(\"react-voodoo/utils/css/demux/backgroundColor.js\");\n\nwalknSetExport(_exports, \"backgroundColor\", _react_voodoo_utils_css_demux_backgroundColor_js);\n\nexport const backgroundColor = _exports.backgroundColor;\n\nexport const boxShadow = _exports.boxShadow;\n\nexport const filter = _exports.filter;\n\nexport const textShadow = _exports.textShadow;\n\nexport const transform = _exports.transform;\nexport default _exports;","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\n\n\nconst _react_voodoo_utils_css_demux_filter_js = require(\"react-voodoo/utils/css/demux/filter.js\");\n\nwalknSetExport(_exports, \"filter\", _react_voodoo_utils_css_demux_filter_js);\nconst _react_voodoo_utils_css_demux_boxShadow_js = require(\"react-voodoo/utils/css/demux/boxShadow.js\");\n\nwalknSetExport(_exports, \"boxShadow\", _react_voodoo_utils_css_demux_boxShadow_js);\nconst _react_voodoo_utils_css_demux_transform_js = require(\"react-voodoo/utils/css/demux/transform.js\");\n\nwalknSetExport(_exports, \"transform\", _react_voodoo_utils_css_demux_transform_js);\nconst _react_voodoo_utils_css_demux_typed_any_js = require(\"react-voodoo/utils/css/demux/typed/any.js\");\n\nwalknSetExport(_exports, \"typed/any\", _react_voodoo_utils_css_demux_typed_any_js);\nconst _react_voodoo_utils_css_demux_textShadow_js = require(\"react-voodoo/utils/css/demux/textShadow.js\");\n\nwalknSetExport(_exports, \"textShadow\", _react_voodoo_utils_css_demux_textShadow_js);\nconst _react_voodoo_utils_css_demux_typed_bool_js = require(\"react-voodoo/utils/css/demux/typed/bool.js\");\n\nwalknSetExport(_exports, \"typed/bool\", _react_voodoo_utils_css_demux_typed_bool_js);\nconst _react_voodoo_utils_css_demux_typed_color_js = require(\"react-voodoo/utils/css/demux/typed/color.js\");\n\nwalknSetExport(_exports, \"typed/color\", _react_voodoo_utils_css_demux_typed_color_js);\nconst _react_voodoo_utils_css_demux_typed_multi_js = require(\"react-voodoo/utils/css/demux/typed/multi.js\");\n\nwalknSetExport(_exports, \"typed/multi\", _react_voodoo_utils_css_demux_typed_multi_js);\nconst _react_voodoo_utils_css_demux_typed_ratio_js = require(\"react-voodoo/utils/css/demux/typed/ratio.js\");\n\nwalknSetExport(_exports, \"typed/ratio\", _react_voodoo_utils_css_demux_typed_ratio_js);\nconst _react_voodoo_utils_css_demux_typed_length_js = require(\"react-voodoo/utils/css/demux/typed/length.js\");\n\nwalknSetExport(_exports, \"typed/length\", _react_voodoo_utils_css_demux_typed_length_js);\nconst _react_voodoo_utils_css_demux_typed_number_js = require(\"react-voodoo/utils/css/demux/typed/number.js\");\n\nwalknSetExport(_exports, \"typed/number\", _react_voodoo_utils_css_demux_typed_number_js);\nconst _react_voodoo_utils_css_demux_typed_shadow_js = require(\"react-voodoo/utils/css/demux/typed/shadow.js\");\n\nwalknSetExport(_exports, \"typed/shadow\", _react_voodoo_utils_css_demux_typed_shadow_js);\nconst _react_voodoo_utils_css_demux_typed_svgAttr_js = require(\"react-voodoo/utils/css/demux/typed/svgAttr.js\");\n\nwalknSetExport(_exports, \"typed/svgAttr\", _react_voodoo_utils_css_demux_typed_svgAttr_js);\nconst _react_voodoo_utils_css_demux_backgroundColor_js = require(\"react-voodoo/utils/css/demux/backgroundColor.js\");\n\nwalknSetExport(_exports, \"backgroundColor\", _react_voodoo_utils_css_demux_backgroundColor_js);\n\nexport const backgroundColor = _exports.backgroundColor;\n\nexport const boxShadow = _exports.boxShadow;\n\nexport const filter = _exports.filter;\n\nexport const textShadow = _exports.textShadow;\n\nexport const transform = _exports.transform;\n\nexport const typed = _exports.typed;\n\n\n\n\n\n\n\n\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\nimport {addCss} from \"../tweenTools\";\nimport {\n\texpandShorthandProperty, isShorthandProperty, isValidDeclaration, props\n} from \"./cssUtils\";\nimport cssDemuxers from \"./demux/(*).js\";\nexport * as allDemuxers from \"./demux/(**/*).js\";\n\nimport {svgAttr, length, multi, number, ratio, color, any} from \"./demux/typed/(*).js\";\n\n/**\n * CSS mux/demux layer — the bridge between numeric interpolation and CSS strings.\n *\n * \"Demux\" (parse → numeric): converts CSS property values in a tween descriptor's\n * `apply` object into additive numeric components stored in `tweenRefMaps`. Each\n * component gets a compound key encoding the property, layer index, transform\n * function, and unit index (e.g. `transform_0_translateX_9`).\n *\n * \"Mux\" (numeric → CSS string): the inverse pass, called every RAF frame. Reads the\n * accumulated numeric values from `tweenRefMaps` and reconstructs CSS strings\n * (including `calc()` expressions for multi-unit values) into `tweenRefCSS`.\n *\n * Each CSS property has a typed handler registered below in `cssDemux`. Complex\n * properties (transform, boxShadow, filter, backgroundColor, textShadow) have\n * dedicated demux modules under `src/utils/css/demux/`. Simpler properties are\n * handled by the typed primitives: length, number, ratio, color, etc.\n */\n\n/**\n * Maps CSS property names to their demuxer handler objects. Each handler implements\n * at minimum `mux(key, value, target, data, initials, noPropLock, reOrder)` for\n * demuxing (parse time) and `demux(key, tweenable, target, data, box)` for muxing\n * (render time). Additional complex demuxers (transform, filter, etc.) are merged\n * in from the `./demux/` directory via the glob import above.\n */\nconst cssDemux = {\n\t...cssDemuxers,\n\theight : length,\n\twidth : length,\n\ttop : length,\n\tleft : length,\n\tright : length,\n\tbottom : length,\n\tmarginTop : length,\n\tmarginLeft : length,\n\tmarginRight : length,\n\tmarginBottom : length,\n\tpaddingTop : length,\n\tpaddingLeft : length,\n\tpaddingRight : length,\n\tpaddingBottom : length,\n\tborderRadius : length,\n\tborderTopColor : color,\n\tborderLeftColor : color,\n\tborderRightColor : color,\n\tborderBottomColor: color,\n\tborderTopWidth : length,\n\tborderLeftWidth : length,\n\tborderRightWidth : length,\n\tborderBottomWidth: length,\n\ttransformOrigin : multi(2),\n\tzIndex : number,\n\topacity : ratio,\n\t\n\t// SVG presentation attributes (set via element.style)\n\tfill : color,\n\tstroke : color,\n\tstrokeWidth : length,\n\tstrokeOpacity : ratio,\n\tfillOpacity : ratio,\n\tstrokeDashoffset: length,\n\t\n\t// SVG geometry attributes (set via element.setAttribute — see svgAttr handler)\n\tcx: svgAttr,\n\tcy: svgAttr,\n\tr : svgAttr,\n\trx: svgAttr,\n\try: svgAttr,\n\tx : svgAttr,\n\ty : svgAttr,\n\tx1: svgAttr,\n\ty1: svgAttr,\n\tx2: svgAttr,\n\ty2: svgAttr,\n};\n\n//export const allDemuxers = _allDemuxers;// export for tests\n\n/**\n * Fallback type detection for CSS properties not explicitly listed in cssDemux.\n * Inspects the MDN-sourced `props` database for the property's value types and\n * returns the best matching demuxer handler. Falls back to `any` (string passthrough)\n * for properties whose types are unrecognised or not animatable.\n */\nexport function getMuxerTypeOfProperty( property ) {\n\tlet type = props[property],\n\t types = type && type.types;\n\tif ( !types ) {\n\t\treturn any;\n\t}\n\tfor ( let i = 0; i < types.length; i++ ) {\n\t\tswitch ( types[i] ) {\n\t\t\tcase \"length\":\n\t\t\tcase \"length-percentage-calc\":\n\t\t\t\treturn length;\n\t\t\tcase \"number\":\n\t\t\tcase \"integer\":\n\t\t\t\treturn number;\n\t\t\tcase \"color\":\n\t\t\t\treturn color;\n\t\t}\n\t}\n\treturn any;\n};\n\n/**\n * Decrement the ref count for a single numeric component and clean up its bookkeeping\n * if the count reaches zero. `twKey` encodes the full property+layer+unit hierarchy\n * (e.g. `transform_0_translateX_9`); the first segment (`path[0]`) identifies the\n * demuxer responsible for this key so the correct `release()` implementation is called.\n *\n * When `keepValues` is true the numeric slot is left in tweenRefMaps so any post-\n * completion CSS snapshot remains accurate (used by pushAnim's keepResults path).\n */\nexport function clearTweenableValue( cssKey, twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tmuxerMap[path[0]]?.release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n}\n\n/**\n * Mux pass — reconstruct CSS strings from accumulated numeric state.\n *\n * Iterates all active demuxer instances for this target and calls each one's\n * `demux()` to write the corresponding CSS string into `css`. This is called\n * every RAF frame (via `_updateTweenRef`) and on every scroll event.\n * The `box` object provides viewport dimensions for box-relative units (bw, bh, bz).\n */\nexport function muxToCss( tweenable, css, demuxers, data, box ) {\n\tObject.keys(demuxers)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t demuxers[key].demux(key, tweenable, css, data, box)\n\t\t }\n\t )\n}\n\n/**\n * Demux pass — parse a CSS `apply` object into numeric interpolatable components.\n *\n * For each key in `tween` (the `apply` map from a tween descriptor):\n * - If the key is in cssDemux, the registered handler's `mux()` is called, which\n * populates `deMuxedTween` with numeric slot entries and `initials` with their\n * default (zero) values.\n * - Shorthand properties (e.g. `margin`) are expanded via cssUtils before processing.\n * - Unknown properties fall through to the `any` handler (string passthrough).\n *\n * Returns `excluded` — an object of properties that could not be demuxed (passed\n * straight into `tweenRefCSS` as literal CSS strings).\n */\nexport function deMuxTween( tween, deMuxedTween, initials, data, demuxers, noPropLock, reOrder ) {\n\tlet fTween = {}, excluded = {};\n\ttween && Object.keys(tween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] )\n\t\t\t\t fTween[key] = tween[key];\n\t\t\t else if ( isValidDeclaration(key, tween[key]) ) {\n\t\t\t\t \n\t\t\t\t if ( isShorthandProperty(key) ) {\n\t\t\t\t\t expandShorthandProperty(key, tween[key], fTween);\n\t\t\t\t }\n\t\t\t\t else fTween[key] = tween[key];\n\t\t\t }\n\t\t\t else {\n\t\t\t\t //excluded[key] = tween[key];\n\t\t\t\t fTween[key] = tween[key];\n\t\t\t }\n\t\t });\n\t\n\tfTween && Object.keys(fTween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] ) {//key, value, target, data, initials\n\t\t\t\t (demuxers[key] = cssDemux[key]).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t\t }\n\t\t\t else if ( isValidDeclaration(key, tween[key]) )\n\t\t\t\t (demuxers[key] = getMuxerTypeOfProperty(key)).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t\t else\n\t\t\t\t (demuxers[key] = any).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t }\n\t );\n\treturn excluded;\n}\n\n/**\n * Process a full tween line (array of tween descriptors) and register demuxers for\n * every property referenced by any descriptor in the line.\n *\n * `allPropsById` accumulates a merged CSS descriptor per target that covers all\n * properties touched anywhere in the timeline. After processing all descriptors,\n * a second pass calls `deMuxTween(allPropsById[id])` without noPropLock to\n * initialize the prop-lock reference counts — this ensures demuxers know the full\n * set of properties they will need to reconstruct even before the animation reaches\n * a particular keyframe.\n */\nexport function deMuxLine( tweenLine, initials, data, demuxers, noPropLock ) {\n\tnoPropLock = noPropLock && {};\n\tlet allPropsById = {},\n\t twAxis = tweenLine.reduce(\n\t\t ( line, tween ) => {\n\t\t\t let demuxedTween = {};\n\t\t\t demuxers[tween.target] = demuxers[tween.target] || {};\n\t\t\t initials[tween.target] = initials[tween.target] || {};\n\t\t\t data[tween.target] = data[tween.target] || {};\n\t\t\t \n\t\t\t if ( !tween.type || tween.type === \"Tween\" ) {\n\t\t\t\t !noPropLock && addCss(allPropsById[tween.target] = allPropsById[tween.target] || {}, tween.apply);\n\t\t\t\t //console.log(\"merged\", tween.apply)\n\t\t\t\t deMuxTween(tween.apply, demuxedTween, initials[tween.target], data[tween.target], demuxers[tween.target], true);\n\t\t\t\t line.push(\n\t\t\t\t\t {\n\t\t\t\t\t\t ...tween,\n\t\t\t\t\t\t apply: demuxedTween\n\t\t\t\t\t });\n\t\t\t }\n\t\t\t else line.push({ ...tween });\n\t\t\t return line\n\t\t },\n\t\t []\n\t );\n\t!noPropLock && Object.keys(allPropsById)\n\t .forEach(\n\t\t id => deMuxTween(allPropsById[id], {}, {}, data[id], demuxers[id])\n\t )\n\t;\n\treturn twAxis;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"tween-axis/dist/TweenAxisWasm\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport tweenAxis from \"tween-axis/dist/TweenAxisWasm\";\n\n/**\n * CssTweenAxis — extends TweenAxis with an object pool and PROC_WASM acceleration.\n *\n * In animated UIs (especially sliders), axes are frequently created and destroyed\n * as slides enter and leave the viewport. Allocating a new TweenAxis for each would\n * trigger garbage collection at the worst possible moment (mid-animation).\n *\n * When `destroy()` is called, the instance is reset to a blank state and pushed\n * into `recyclableTweenAxis[]`. The next `new CssTweenAxis(...)` call pops from\n * the pool and calls `mount()` to re-initialize it — avoiding the allocation\n * entirely. The pool is unbounded and module-level (shared across all Tweeners).\n *\n * PROC_WASM acceleration\n * ──────────────────────\n * For tween descriptors without event callbacks (entering/moving/leaving) and\n * with a mappable easing function, addProcess() registers WASM-side accumulation\n * via addWasmApply(). The WASM accumulates deltas directly into its scope buffer\n * on every goTo() call — zero JS boundary crossings for those properties during\n * the hot animation loop.\n *\n * goTo() is overridden to:\n * 1. clearScope() — zero the WASM accumulation buffer.\n * 2. super.goTo() — PROC_WASM processes accumulate in WASM; PROC_RESULT\n * processes call their JS processors as before.\n * 3. Read each WASM scope slot and add it into tweenRefMaps[target][propKey].\n *\n * The d3-ease functions used by react-voodoo are mapped to WASM built-in easing\n * IDs via a lazy reverse-lookup Map (_fnToWasmId). Descriptors with custom easing\n * functions that have no WASM equivalent fall back to PROC_RESULT automatically.\n */\n\n// ─── d3-ease name → WASM easing ID ──────────────────────────────────────────\n// Mirror of the TweenAxisCore EASE_* constants and the d3-ease export names.\n\nconst D3_TO_WASM_EASE = {\n\teaseLinear : 0,\n\teaseQuadIn : 1, easeQuadOut: 2, easeQuadInOut: 3,\n\teaseCubicIn : 4, easeCubicOut: 5, easeCubicInOut: 6,\n\teaseExpIn : 7, easeExpOut: 8, easeExpInOut: 9,\n};\n\n// Lazily built reverse map: function reference → WASM easing ID.\n// Populated on first call to _getWasmEasingId() from tweenAxis.EasingFunctions.\nlet _fnToWasmId = null;\n\nfunction _getWasmEasingId( easeFn ) {\n\tif ( !easeFn ) return 0; // no easing → linear (EASE_LINEAR = 0)\n\n\tif ( _fnToWasmId === null ) {\n\t\t_fnToWasmId = new Map();\n\t\tconst efs = tweenAxis.EasingFunctions;\n\t\tfor ( const name in D3_TO_WASM_EASE ) {\n\t\t\tif ( efs[name] ) _fnToWasmId.set(efs[name], D3_TO_WASM_EASE[name]);\n\t\t}\n\t}\n\n\t// Returns undefined for unknown functions → caller falls back to PROC_RESULT.\n\treturn _fnToWasmId.get(easeFn);\n}\n\n// ─── Object pool ──────────────────────────────────────────────────────────────\n\nconst recyclableTweenAxis = [];\n\nexport default class CssTweenAxis extends tweenAxis {\n\n\t// Note: __wasmSlotByKey / __wasmSlotList / __wasmSlotCount are NOT declared as\n\t// class fields here. Class field initializers run after super() returns, which\n\t// would overwrite values written by _getOrCreateWasmSlot() when called during\n\t// super() → mount() → addProcess(). Lazy init in _getOrCreateWasmSlot() handles\n\t// fresh instances; destroy() resets them for recycled instances.\n\n\tconstructor( cfg, scope ) {\n\t\t// Pool path: if a recycled instance is available, reuse it by calling mount()\n\t\t// to load the new tween descriptors into the pre-existing internal arrays.\n\t\tif ( recyclableTweenAxis.length ) {\n\t\t\tlet recyled = recyclableTweenAxis.pop();\n\t\t\trecyled.scope = scope;\n\t\t\tif ( is.array(cfg) ) {\n\t\t\t\trecyled.localLength = 1;\n\t\t\t\trecyled.mount(cfg, scope);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( cfg.Axis )\n\t\t\t\t\trecyled.mount(cfg.Axis, scope);\n\t\t\t}\n\t\t\treturn recyled;\n\t\t}\n\t\t// No pooled instance available — fall through to the normal TweenAxis constructor.\n\t\tsuper(...arguments)\n\t}\n\n\t/** @private Assign (or look up) the WASM scope slot for a target+propKey pair. */\n\t_getOrCreateWasmSlot( target, propKey ) {\n\t\t// Lazy init: class fields run after super(), but super() calls mount() → addProcess()\n\t\t// → here, so __wasmSlotByKey may not exist yet on the first fresh construction.\n\t\tif ( !this.__wasmSlotByKey ) {\n\t\t\tthis.__wasmSlotByKey = {};\n\t\t\tthis.__wasmSlotList = [];\n\t\t\tthis.__wasmSlotCount = 0;\n\t\t}\n\t\tconst k = target + \"\\0\" + propKey;\n\t\tif ( this.__wasmSlotByKey[k] === undefined ) {\n\t\t\tconst slot = this.__wasmSlotCount++;\n\t\t\tthis.__wasmSlotByKey[k] = slot;\n\t\t\tthis.__wasmSlotList[slot] = { target, propKey };\n\t\t}\n\t\treturn this.__wasmSlotByKey[k];\n\t}\n\n\t/**\n\t * Register a process and, when eligible, switch it to PROC_WASM mode.\n\t *\n\t * A process is eligible for PROC_WASM when:\n\t * - It has no event callbacks (entering / moving / leaving).\n\t * - Its easing function maps to one of the 10 WASM built-in IDs.\n\t *\n\t * For eligible processes, addWasmApply() is called for every demuxed property,\n\t * which implicitly sets the process mode to PROC_WASM inside the WASM context.\n\t * The JS processor stored by super.addProcess() is then never invoked for that\n\t * process; the WASM scope buffer accumulates the deltas instead.\n\t */\n\taddProcess( from, to, factory, cfg ) {\n\t\tsuper.addProcess(from, to, factory, cfg);\n\n\t\tif ( !cfg.entering && !cfg.moving && !cfg.leaving && cfg.apply ) {\n\t\t\tconst wasmEasingId = _getWasmEasingId(cfg.easeFn);\n\t\t\tif ( wasmEasingId !== undefined ) {\n\t\t\t\tconst key = this.__cMaxKey - 1; // key assigned by super.addProcess\n\t\t\t\tconst target = cfg.target;\n\t\t\t\tfor ( const propKey in cfg.apply ) {\n\t\t\t\t\tif ( !Object.prototype.hasOwnProperty.call(cfg.apply, propKey) ) continue;\n\t\t\t\t\tconst slot = this._getOrCreateWasmSlot(target, propKey);\n\t\t\t\t\tthis.addWasmApply(key, slot, cfg.apply[propKey], wasmEasingId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Advance the timeline, using the WASM scope for eligible processes.\n\t *\n\t * Steps:\n\t * 1. clearScope() — zero the accumulation buffer so this frame starts fresh.\n\t * 2. super.goTo() — PROC_WASM processes accumulate in WASM; PROC_RESULT\n\t * processes call JS processors as before.\n\t * 3. For each registered WASM slot, add the accumulated value into scope.\n\t */\n\tgoTo( pos, scope, reset, noEvents ) {\n\t\tif ( this.__wasmSlotCount > 0 ) {\n\t\t\tthis.clearScope();\n\t\t}\n\n\t\tconst result = super.goTo(pos, scope, reset, noEvents);\n\n\t\tif ( this.__wasmSlotCount > 0 && scope ) {\n\t\t\tfor ( let slot = 0; slot < this.__wasmSlotCount; slot++ ) {\n\t\t\t\tconst { target, propKey } = this.__wasmSlotList[slot];\n\t\t\t\tconst targetScope = target ? scope[target] : scope;\n\t\t\t\tif ( targetScope !== undefined ) {\n\t\t\t\t\ttargetScope[propKey] = (targetScope[propKey] || 0) + this.getScopeValue(slot);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tdestroy() {\n\t\tthis.scope = undefined;\n\t\tthis.duration = 0;\n\t\tthis.__cPos = 0;\n\t\tthis.__cIndex = 0;\n\t\tthis.__cMaxKey = 1;\n\n\t\t// Clear WASM-slot tracking for this instance.\n\t\tthis.__wasmSlotByKey = {};\n\t\tthis.__wasmSlotList.length = 0;\n\t\tthis.__wasmSlotCount = 0;\n\n\t\t// Clear JS-side arrays (present on the plain TweenAxis implementation).\n\t\t// Truncating rather than reassigning preserves the existing array references.\n\t\tif ( this.__marks ) this.__marks.length = 0;\n\t\tif ( this.__marksLength ) this.__marksLength.length = 0;\n\t\tif ( this.__marksKeys ) this.__marksKeys.length = 0;\n\t\tif ( this.__activeProcess ) this.__activeProcess.length = 0;\n\t\tif ( this.__outgoing ) this.__outgoing.length = 0;\n\t\tif ( this.__incoming ) this.__incoming.length = 0;\n\t\tthis.__processors.length = 0;\n\t\tthis.__config.length = 0;\n\n\t\t// WASM branch: reset the WASM context slot so the index can be reused by\n\t\t// the next mount() call. Without this the WASM context pool would leak.\n\t\tif ( typeof this.resetWasm === \"function\" ) this.resetWasm();\n\n\t\trecyclableTweenAxis.push(this);\n\t}\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\n/**\n * Old school dom utils & events managers\n */\n\nlet\n is = require('is'),\n isBrowser = typeof window !== 'undefined',\n isTouch = isBrowser && ( function is_touch_device() {\n var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n var mq = function ( query ) {\n return window.matchMedia && window.matchMedia(query).matches;\n }\n \n if ( ( 'ontouchstart' in window ) || window.DocumentTouch && document instanceof DocumentTouch ) {\n return true;\n }\n \n // include the 'heartz' as a way to have a non matching MQ to help terminate the\n // join https://git.io/vznFH\n var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n }() ),\n _dom = isBrowser ? {\n prefix : ( /webkit/i ).test(navigator.appVersion) ? 'webkit' :\n ( /firefox/i ).test(navigator.userAgent) ? 'Moz' :\n ( /trident/i ).test(navigator.userAgent) ? 'ms' :\n 'opera' in window ? 'O' : '',\n dashedPrefix: ( /webkit/i ).test(navigator.appVersion) ? '-webkit-' :\n ( /firefox/i ).test(navigator.userAgent) ? '-moz-' :\n ( /trident/i ).test(navigator.userAgent) ? '-ms-' :\n 'opera' in window ? '-o-' : ''\n } : {\n prefix : '',\n dashedPrefix: ''\n },\n __ = {\n onPageHided : [],\n onPageShown : [],\n dragging : [],\n dragEnabled : [],\n dragEnabledDesc : [],\n fingers : {},\n nbFingers : 0,\n dragstartAnywhere: function ( e ) {\n let o,\n me = __,\n i = me.dragEnabled.indexOf(this),\n finger,\n desc, fingers = [];\n \n if ( i === -1 ) {\n return;\n }\n //e.preventDefault();\n //e.stopPropagation();\n \n if ( !me.nbFingers ) {\n Dom.addEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere,\n });\n Dom.addEvent(this,\n {\n 'click': me.dropWithoutClick\n }, null, null, null, true);\n }\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let t = 0, ln = fingers.length; t < ln; t++ ) {\n finger = fingers[ t ];\n \n \n desc = me.dragEnabledDesc[ i ];\n \n if ( desc.nbFingers ) continue;\n \n me.nbFingers++;\n \n me.fingers[ finger.identifier ] = me.fingers[ finger.identifier ] || [];\n me.fingers[ finger.identifier ].push(desc);\n \n \n desc.nbFingers++;\n \n desc._startPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._startPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n desc._startTs = e.timeStamp;\n \n \n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dragstart.length; o++ )\n desc.dragstart[ o ][ 0 ].call(desc.dragstart[ o ][ 1 ] ||\n this, e, finger, desc);\n }\n },\n dragAnywhere : function ( e ) {\n let o,\n me = __,\n finger, fingers = [], stopped,\n desc = __.dragging[ 0 ];\n \n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n desc = me.fingers[ finger.identifier ];\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n if ( stopped ) {\n desc._lastPos.x = desc._startPos.x = _dom.prefix == 'MS'\n ? finger.x\n : finger.pageX;\n desc._lastPos.y = desc._startPos.y = _dom.prefix == 'MS'\n ? finger.y\n : finger.pageY;\n return;\n }\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.drag.length; o++ )\n stopped = desc.drag[ o ][ 0 ].call(desc.drag[ o ][ 1 ] || this, e,\n finger,\n desc) === false;\n }\n )\n \n }\n },\n dropWithoutClick : function ( e ) {\n if ( __.preventNextClick ) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n __.preventNextClick = false;\n }\n Dom.removeEvent(this,\n {\n 'click': this.dropWithoutClick\n });\n },\n dropAnywhere : function ( e ) {\n let o,\n me = __, finger, fingers = [],\n prevent;\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n me.nbFingers--;\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n \n \n desc.nbFingers--;\n prevent = prevent || desc.mouseDrag && ( e.timeStamp - desc._startTs > 250 );\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dropped.length; o++ )\n desc.dropped[ o ][ 0 ].call(desc.dropped[ o ][ 1 ] ||\n this, e,\n finger, desc);\n \n \n }\n )\n me.fingers[ finger.identifier ] = null;\n }\n if ( prevent ) {\n me.preventNextClick = true;\n }\n if ( !me.nbFingers ) {\n Dom.removeEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere\n });\n }\n },\n getDraggable : function ( node, mouseDrag, touchDrag ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i === -1 ) {\n this.dragEnabled.push(node);\n this.dragEnabledDesc.push(\n desc = {\n mouseDrag,\n touchDrag,\n nbFingers: 0,\n locks : 0,\n _startPos: {\n x: 0,\n y: 0\n },\n _lastPos : {\n x: 0,\n y: 0\n },\n dragstart: [],\n drag : [],\n dragEnd : [],\n dropped : []\n }\n );\n //debugger;\n Dom.addEvent(node,\n {\n 'mousedown' : mouseDrag && this.dragstartAnywhere,\n 'touchstart': touchDrag && this.dragstartAnywhere\n }, null, null, null, true);\n }\n else desc = this.dragEnabledDesc[ i ];\n return desc;\n },\n freeDraggable : function ( node ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i !== -1 ) {\n this.dragEnabled.splice(i, 1);\n this.dragEnabledDesc.splice(i, 1);\n \n Dom.removeEvent(node,\n {\n 'mousedown' : this.dragstartAnywhere,\n 'touchstart': this.dragstartAnywhere\n });\n }\n },\n \n addEvent : function ( node, type, fn, bubble ) {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n },\n removeEvent: function ( node, type, fn, bubble ) {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n },\n rmDragFn : function ( arr, fn, scope ) {\n for ( let i = 0, ln = arr.length; i < ln; i++ ) {\n if ( arr[ i ][ 0 ] === fn )\n return arr.splice(i, 1);\n }\n \n console.warn(\"Rm event : Listener not found !!\");\n },\n },\n Dom = {\n addEvent : function ( node, type, fn, mouseDrag, touchDrag = true, bubble ) {\n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) && type[ o ] )\n this.addEvent(node, o, type[ o ], mouseDrag, touchDrag, bubble);\n return;\n }\n else if ( type === 'dragstart' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dragstart.push([fn]);\n }\n else if ( type === 'drag' ) {\n __.getDraggable(node, mouseDrag, touchDrag).drag.push([fn]);\n }\n else if ( type === 'dropped' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dropped.push([fn]);\n }\n else {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, { passive: false });\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n }\n \n },\n removeEvent: function ( node, type, fn, scope, bubble ) {\n let i, desc;\n \n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) )\n this.removeEvent(node, o, type[ o ], scope);\n \n }\n else if ( /^(drag|drop)/.test(type) ) {\n desc = __.getDraggable(node);\n __.rmDragFn(desc[ type ], fn, scope);\n if ( !desc.dragstart.length\n && !desc.drag.length\n && !desc.dragEnd.length\n && !desc.dropped.length )\n __.freeDraggable(node);\n }\n else {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n }\n \n },\n offset : function ( elem ) {// @todo\n let dims = {\n top : 0,\n left : 0,\n width : elem.offsetWidth,\n height: elem.offsetHeight\n };\n while ( elem ) {\n dims.top = dims.top + parseInt(elem.offsetTop);\n dims.left = dims.left + parseInt(elem.offsetLeft);\n elem = elem.offsetParent;\n }\n return dims;\n },\n \n \n /**\n * Find the react component that generate element dom node\n * @param element\n * @returns {[React.Component]}\n */\n findReactParents( element ) {\n let fiberNode, comps = [element];\n for ( const key in element ) {\n \n if ( key.startsWith('__reactInternalInstance$') || key.startsWith('__reactFiber$') ) {\n fiberNode = element[ key ];\n while ( fiberNode.return ) {\n if ( fiberNode.stateNode && !comps.includes(fiberNode.stateNode) )\n comps.push(fiberNode.stateNode)\n fiberNode = fiberNode.return;\n }\n return comps;\n }\n }\n return element.parentNode && this.findReactParents(element.parentNode);\n }\n \n };\nexport default Dom;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n/**\n * Inertia — physics-based momentum engine for scrollable axes.\n *\n * Tracks drag velocity during a hold gesture, then on release computes a deceleration\n * arc using an easing function (default: easePolyOut). If waypoints are configured,\n * `_doSnap()` selects the nearest one and adjusts the target position and duration\n * so the animation lands exactly on a waypoint.\n *\n * The engine is poll-based: callers invoke `update()` on each timer tick (every 16ms\n * via `applyInertia()` in Tweener) to retrieve the current position. The engine does\n * not schedule its own timers.\n *\n * Three-phase drag lifecycle:\n * startMove() — begins a new gesture; resets velocity state\n * hold(pos) — called on each pointer-move event; accumulates velocity\n * release() — called on pointer-up; commits momentum and triggers snap\n */\n\nconst\n\tis = require('is'),\n\teasingFn = require('d3-ease'),\n\tsignOf = function sign( x ) {\n\t\treturn typeof x === 'number' ? x ? x < 0 ? -1 : 1 : x === x ? x : NaN : NaN;\n\t},\n\tabs = Math.abs,\n\tfloor = Math.floor,\n\tround = Math.round,\n\tmin = Math.min,\n\tmax = Math.max,\n\tfloatCut = ( v = 0 ) => v.toFixed(3),\n\tconsts = {\n\t\tvelocityResetTm: .150,\n\t\tclickTm : 250\n\t};\n\n\n/**\n * Compute the momentum distance and duration from the current drag velocity.\n *\n * Uses a geometric series with decay factor 0.9 per frame:\n * loopsTarget = log(0.05 / |v|) / log(0.9)\n * This gives the number of 16ms steps until velocity decays below 5% of its current\n * value. The sum of the geometric series (loopsVelSum) gives total distance travelled.\n *\n * When disabled (inertia.disabled), all targets are zeroed so the axis stops immediately.\n */\nexport function applyInertia( _ ) {\n\tlet velSign = signOf(_.lastVelocity);\n\t\n\tif ( _.disabled ) {\n\t\t_.loopsTarget = 0;\n\t\t_.loopsVelSum = 0;\n\t\t_.targetDist = 0;\n\t\t_.targetDuration = 0;\n\t}\n\telse {\n\t\t// calc momentum distance...\n\t\t// get nb loop needed to get vel < .05\n\t\t_.loopsTarget = floor(Math.log(.05 / abs(_.lastVelocity)) / Math.log(.9));\n\t\t\n\t\t// get velocity sum basing on nb loops needed\n\t\t_.loopsVelSum = (Math.pow(.9, _.loopsTarget) - abs(_.lastVelocity)) / (.9 - 1);\n\t\t\n\t\t// deduce real dist of momentum\n\t\t_.targetDist = (_.loopsVelSum * _.refFPS * velSign) / 1000 || 0;\n\t\t_.targetDuration = abs(_.loopsTarget * _.refFPS * velSign) || 0;\n\t\t//console.warn(\" _.targetDist\", _.targetDist, _.lastVelocity);\n\t}\n}\n\n/**\n * Main inertia class\n * @type {module.exports}\n */\nexport default class Inertia {\n\tstatic config = {\n\t\tbounds : true,\n\t\tsnapToBounds: true\n\t};\n\t\n\tconstructor( opt ) {\n\t\tlet _ = this._ = {};\n\t\t_.conf = {\n\t\t\t...this.constructor.config,\n\t\t\t...opt\n\t\t};\n\t\t\n\t\tthis.active = false;\n\t\t_.pos = opt.value || 0;\n\t\t_.refFPS = 16;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.currentStop = 0;\n\t\t_.lastInertiaPos = 0;\n\t\t_.stops = _.conf.stops;\n\t\t_.disabled = _.conf.disabled;\n\t\t_.wayPoints = _.conf.wayPoints;\n\t\t_.inertiaFn = easingFn.easePolyOut;\n\t\t_.targetWayPointIndex = 0;\n\t\t\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tupdateConf( opt ) {\n\t\tlet _ = this._;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.stops = opt.stops;\n\t\t_.disabled = opt.disabled;\n\t\t_.wayPoints = opt.wayPoints;\n\t\t_.conf.willStop = opt.willStop;\n\t\t_.conf.willSnap = opt.willSnap;\n\t\t_.conf.onStop = opt.onStop;\n\t\t_.conf.onSnap = opt.onSnap;\n\t\t_.conf.shouldLoop = opt.shouldLoop;\n\t}\n\t\n\t/**\n\t * Begin a new drag gesture. Resets all velocity and momentum state so the\n\t * release() calculation starts from a clean baseline. Sets `holding = true`\n\t * to keep the inertia loop running while the pointer is held down.\n\t */\n\tstartMove() {\n\t\tlet _ = this._;\n\t\t_.baseTS = _.startTS = Date.now() / 1000;\n\t\t_.lastVelocity = _.lastIVelocity = 0;\n\t\t_.lastAccel = 0;\n\t\t_.posDiff = 0;\n\t\t_.loopsDiff = 0;\n\t\tthis.active = true;\n\t\tthis.holding = true;\n\t\t_.inertia = false;\n\t}\n\t\n\t/**\n\t * Called on each pointer-move event with the new axis position. Updates the\n\t * running velocity estimate used by release() to compute momentum distance.\n\t *\n\t * Velocity direction change detection: if the pointer reverses direction and\n\t * more than `velocityResetTm` (150ms) has elapsed since the last base-point,\n\t * the velocity base is reset to the current position/time. This prevents a\n\t * brief reversal near the end of a fast swipe from zeroing out accumulated\n\t * momentum. The `velocityResetTm` guard makes the direction check \"sticky\"\n\t * enough to ignore micro-jitter from touch digitizers.\n\t */\n\thold( nextPos ) {\n\t\tlet _ = this._,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t loop,\n\t\t now = Date.now() / 1000,\n\t\t sinceLastPos = (now - _.baseTS),\n\t\t pos = nextPos,\n\t\t iVel = delta / sinceLastPos;\n\t\t\n\t\t_.lastHoldPos = nextPos;\n\t\t//if (is.nan(pos))\n\t\t//\tdebugger\n\t\t\n\t\tif ( !_.lastBaseTs ) {// create base pts\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = _.baseTS;\n\t\t}\n\t\t\n\t\tif ( sinceLastPos < .003 ) {\n\t\t\t//console.log(\"hold fast\", delta, _.baseTS, sinceLastPos);\n\t\t\t// skip/ignore\n\t\t}\n\t\telse if (// direction changed for velocityResetTm\n\t\t\t(\n\t\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t\t||\n\t\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t\t||\n\t\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t\t) &&\n\t\t\t(now - _.lastBaseTs) > consts.velocityResetTm\n\t\t) {\n\t\t\t//console.log(\"reset\", _.lastBaseTs, _.lastVelocity);\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = now;\n\t\t\t_.lastVelocity = 0;\n\t\t\t_.lastIVelocity = 0;\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t}\n\t\telse if (// dir changed fast\n\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t||\n\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t||\n\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t) {\n\t\t\t//ignore\n\t\t}\n\t\telse {\n\t\t\t_.lastIVelocity = iVel;\n\t\t\t_.lastVelocity = ((pos) - (_.lastBasePos)) / (now - _.lastBaseTs);\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t// clear snap\n\t\t\t_.targetWayPoint = undefined;\n\t\t\t_.targetWayPointIndex = undefined;\n\t\t}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( pos > _.max ) {\n\t\t\t\tpos = _.max// + min((pos - _.max) / 10, 10);\n\t\t\t}\n\t\t\telse if ( pos < _.min ) {\n\t\t\t\tpos = _.min// - min((_.min - pos) / 10, 10);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\twhile ( (loop = _.conf.shouldLoop(pos, delta)) ) {\n\t\t\t\tpos += loop;\n\t\t\t}\n\t\t}\n\t\t_.pos = pos;\n\t\t\n\t}\n\t\n\t/**\n\t * Called when the pointer is released. Commits the accumulated velocity into a\n\t * momentum arc via `applyInertia()`, then applies snapToBounds correction if the\n\t * projected landing position is outside [min, max]. Finally calls `_doSnap()` to\n\t * find the nearest waypoint and adjust the target accordingly.\n\t */\n\trelease() {\n\t\tlet _ = this._,\n\t\t velSign = signOf(_.lastVelocity);\n\n\t\tthis.holding = false;\n\n\t\t// Compute momentum distance/duration from the last measured velocity.\n\t\tapplyInertia(_);\n\t\t\n\t\t_.lastHoldPos = undefined;\n\t\t\n\t\t_.lastBasePos = undefined;\n\t\t_.lastBaseTs = undefined;\n\t\t_.holding = false;\n\t\t\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\tlet loop, nPos=_.pos + _.targetDist;\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nPos, 0)) ) {\n\t\t//\t\tnPos += loop;\n\t\t//\t\tif ( _.inertia ) {\n\t\t//\t\t\t//_.targetDist+=loop;\n\t\t//\t\t\t//_.lastInertiaPos+=loop;\n\t\t//\t\t}\n\t\t//\t\t//this.teleport(loop);\n\t\t//\t}\n\t\t//\tif (nPos!==_.pos + _.targetDist)\n\t\t//}\n\t\tif ( _.conf.bounds && _.conf.snapToBounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\t//else {\n\t\tif ( !_.targetDuration )\n\t\t\t_.targetDuration = 50;\n\t\t\n\t\t//console.log(_);\n\t\tthis.active = true;\n\t\t_.inertia = true;\n\t\t_.lastInertiaPos = 0;\n\t\t_.inertiaStartTm =\n\t\t\t_.inertiaLastTm = Date.now();\n\t\t\n\t\t\n\t\t//}\n\t\tthis._doSnap(null, 500)\n\t\t_.conf.willEnd?.(_.targetDist + _.pos, _.targetDist, _.targetDuration);\n\t}\n\t\n\t/**\n\t * Poll-based position update — called every 16ms by Tweener.applyInertia().\n\t *\n\t * Applies the easing function to the elapsed time ratio to get a smoothed\n\t * position delta, then accumulates it into `_.pos`. When the animation\n\t * duration has elapsed, snaps exactly to the target waypoint position (if any)\n\t * to eliminate floating-point drift, fires onStop/onSnap callbacks, and sets\n\t * `active = false` to stop the 16ms loop.\n\t */\n\tupdate( at = Date.now() ) {\n\t\tlet _ = this._, nextValue, loop;\n\t\tlet\n\t\t\tpos = _.inertiaFn((at - _.inertiaStartTm) / _.targetDuration) * _.targetDist;\n\t\t\n\t\tif ( !_.inertia ) {\n\t\t\t//if ( _.conf.shouldLoop ) {\n\t\t\t//\twhile ( (loop = _.conf.shouldLoop(_.pos, 0)) ) {\n\t\t\t//\t\tthis.teleport(loop);\n\t\t\t//\t}\n\t\t\t//}\n\t\t\treturn _.pos;\n\t\t}\n\t\tlet\n\t\t\tdelta = pos - _.lastInertiaPos;\n\t\t_.lastInertiaPos = pos;\n\t\t\n\t\tif ( (at - _.inertiaStartTm) >= _.targetDuration ) {\n\t\t\t_.inertia = this.active = false;\n\t\t\t_.lastInertiaPos = delta = 0;\n\t\t\t_.targetDist = 0;\n\t\t\tif ( _.targetWayPoint ) {\n\t\t\t\tdelta = _.targetWayPoint.at - _.pos;\n\t\t\t\t//console.log(\"snap done \", _.targetWayPoint, _.pos + delta);\n\t\t\t\t_.currentWayPoint = _.targetWayPoint;\n\t\t\t\t_.currentWayPointIndex = _.targetWayPointIndex;\n\t\t\t\t_.targetWayPoint = null;\n\t\t\t\t_.targetWayPointIndex = null;\n\t\t\t\t//_.lastSnapTm = Date.now();\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.onStop ) {\n\t\t\t\t_.conf.onStop(_.pos, _.currentWayPoint)\n\t\t\t}\n\t\t\tif ( _.conf.onSnap ) {\n\t\t\t\t_.conf.onSnap(_.currentWayPointIndex, _.currentWayPoint)\n\t\t\t}\n\t\t}\n\t\t\n\t\tdelta = delta || 0;\n\t\t//console.log(_.pos + delta);\n\t\tnextValue = _.pos + delta;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet t = nextValue;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, delta)) ) {\n\t\t\t\t//console.warn(\"loop update\", loop, nextValue);\n\t\t\t\tnextValue += loop;\n\t\t\t\tif ( _.inertia ) {\n\t\t\t\t\t//_.targetDist+=loop;\n\t\t\t\t\t//_.lastInertiaPos+=loop;\n\t\t\t\t}\n\t\t\t\t//this.teleport(loop);\n\t\t\t}\n\t\t}\n\t\t\n\t\t_.pos = nextValue;\n\t\t\n\t\treturn nextValue;\n\t}\n\t\n\tsetPos( pos ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.inertia = false;\n\t\tthis.active = false;\n\t\t_.lastInertiaPos = 0;\n\t\t_.targetDist = 0;\n\t\t_.inertiaStartTm = 0;\n\t\t_.inertiaLastTm = 0;\n\t\t_.targetDuration = 0;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet loop, nextValue = pos;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, _.pos - pos)) ) {\n\t\t\t\tnextValue += loop;\n\t\t\t\t//this.teleport(loop);\n\t\t\t\t//console.warn(\"loop update\", nextValue, pos);\n\t\t\t}\n\t\t\tpos = nextValue;\n\t\t}\n\t\t_.pos = pos;\n\t\tif ( _.conf.bounds ) {\n\t\t\t_.pos = max(_.pos, _.min);\n\t\t\t_.pos = min(_.pos, _.max);\n\t\t}\n\t}\n\t\n\tsetWayPoints( wayPoints ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.wayPoints = wayPoints;\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tteleport( loopDist ) {\n\t\tlet _ = this._, nextValue;\n\t\tif ( !_.inertia )\n\t\t\treturn _.pos += loopDist;\n\t\t\n\t\t//_.lastInertiaPos += loopDist;\n\t\t_.pos += loopDist\n\t\t//console.log(\"setPos\", _.lastInertiaPos);\n\t}\n\t\n\t/**\n\t * Programmatic momentum injection — e.g. for button-triggered scroll or swipe\n\t * animations without a preceding drag gesture. If an inertia animation is already\n\t * running in the same direction, the delta is accumulated; if the direction\n\t * changes the animation is restarted from the current position.\n\t */\n\tdispatch( delta, tm = 500 ) {\n\t\tlet _ = this._,\n\t\t now = Date.now(),\n\t\t pos;\n\t\t\n\t\tthis.active = true;\n\t\t\n\t\t// if no inertia has started || if direction has change\n\t\tif ( !_.inertia || signOf(delta) !== signOf(_.targetDist) ) {\n\t\t\t_.inertia = true;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t_.inertiaStartTm =\n\t\t\t\t_.inertiaLastTm = now;\n\t\t\t\n\t\t\t_.targetDist = delta;\n\t\t\t_.targetDuration = tm;\n\t\t}\n\t\telse {\n\t\t\t//_.inertiaStartTm =\n\t\t\t//_.inertiaLastTm = now;\n\t\t\t//_.lastInertiaPos = 0;\n\t\t\t_.targetDist += delta;\n\t\t\t_.targetDuration += tm / 2;\n\t\t}\n\t\t//\n\t\t//if ( _.conf.maxJump ) {\n\t\t//\n\t\t//}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\tthis._doSnap(signOf(delta), 750)\n\t}\n\t\n\t\n\t_detectCurrentSnap() {\n\t\tlet _ = this._,\n\t\t pos = _.pos,\n\t\t i;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( floatCut(_.wayPoints[i].at) === floatCut(pos) ) {\n\t\t\t\t\t_.currentWayPoint = _.wayPoints[i];\n\t\t\t\t\t_.currentWayPointIndex = i;\n\t\t\t\t\t//console.warn(\"snap set\", i);\n\t\t\t\t\t\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * Select the waypoint that best matches the projected landing position and\n\t * adjust `_.targetDist` and `_.targetDuration` to land precisely on it.\n\t *\n\t * Waypoint selection:\n\t * Binary-search the sorted wayPoints array for the first waypoint beyond `pos`.\n\t * The midpoint between adjacent waypoints `i-1` and `i` (weighted by their\n\t * `gravity` fields, default 1) determines which waypoint \"wins\". If `forceSnap`\n\t * is set (from dispatch()), the direction overrides the midpoint check.\n\t * `maxJump` caps the maximum index distance from the current waypoint to\n\t * prevent the animation from skipping multiple slides in one gesture.\n\t */\n\t_doSnap( forceSnap, maxDuration = 2000 ) {\n\t\tlet _ = this._,\n\t\t pos = _.targetDist + (_.pos - (_.lastInertiaPos || 0)),\n\t\t lPos = pos,\n\t\t loopDec = 0,\n\t\t target,\n\t\t mid,\n\t\t i,\n\t\t loop;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\t\n\t\t\t// apply loops to do to find the final wayPoint\n\t\t\tif ( _.conf.shouldLoop ) {\n\t\t\t\twhile ( (loop = _.conf.shouldLoop(lPos, 0)) ) {\n\t\t\t\t\tlPos += loop;\n\t\t\t\t\tloopDec += loop;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( _.wayPoints[i].at > lPos )\n\t\t\t\t\tbreak;\n\t\t\t\n\t\t\tif ( i === _.wayPoints.length ) {\n\t\t\t\ti--\n\t\t\t}\n\t\t\telse if ( i === 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmid = (_.wayPoints[i].at - _.wayPoints[i - 1].at) / 2;\n\t\t\t\tmid = _.wayPoints[i - 1].at + (mid * ((_.wayPoints[i].gravity || 1) / (_.wayPoints[i - 1].gravity || 1)));\n\t\t\t\t\n\t\t\t\tif ( forceSnap ) forceSnap < 0 && i--;\n\t\t\t\telse if ( lPos < mid ) i--;\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.maxJump && is.number(_.currentWayPointIndex) ) {\n\t\t\t\tlet d = (i - _.currentWayPointIndex);\n\t\t\t\t//console.log('Inertia::_doSnap:154: ', i, d);\n\t\t\t\tif ( abs(d) > _.conf.maxJump ) {\n\t\t\t\t\t//console.log('max: ', i, d);\n\t\t\t\t\ti = _.currentWayPointIndex + signOf(d) * _.conf.maxJump;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttarget = _.wayPoints[i].at;\n\t\t\t\n\t\t\tif ( _.conf.willSnap ) {\n\t\t\t\t_.conf.willSnap(i, _.wayPoints[i]);\n\t\t\t}\n\t\t\t\n\t\t\t_.lastInertiaPos = _.lastInertiaPos || 0;\n\t\t\ttarget = target - (_.pos - _.lastInertiaPos) - loopDec;\n\t\t\t_.targetDuration = max(50, min(maxDuration, abs((_.targetDuration / _.targetDist) * target))) || 0;\n\t\t\t//console.log(\"do snap\", i, target, loopDec);\n\t\t\t_.targetDist = target;\n\t\t\t_.targetWayPoint = _.wayPoints[i];\n\t\t\t_.targetWayPointIndex = i;\n\t\t}\n\t\telse {\n\t\t\ttarget = ~~(_.pos - _.lastInertiaPos);\n\t\t\t\n\t\t\tif ( !_.conf.infinite ) {\n\t\t\t\tif ( target > _.max ) {\n\t\t\t\t\ttarget = _.max - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t\telse if ( target < _.min ) {\n\t\t\t\t\ttarget = _.min - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\t\n\tsetBounds( min, max ) {\n\t\tlet _ = this._;\n\t\t//console.log('Inertia::setBounds:245: ', min, max);\n\t\t_.min = min;\n\t\t_.max = max;\n\t}\n\t\n\tisInbound( nextPos ) {\n\t\tlet _ = this._, loop,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t pos = (_.targetDist || 0) + (_.pos - (_.lastInertiaPos || 0)) + delta;\n\t\t//if ( _.conf.infinite ) return false;\n\t\t//\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nextValue)) ) {\n\t\t//!(pos >= _.min && pos <= _.max) && console.warn(\"out\", _.pos, pos, delta);\n\t\t//\t\tpos += loop;\n\t\t//\t}\n\t\t//}\n\t\treturn pos >= _.min && pos <= _.max;\n\t}\n\t\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport * as easingFn from \"d3-ease\";\nimport deepEqual from \"fast-deep-equal\";\nimport is from \"is\";\nimport React from \"react\";\nimport ReactDom from \"react-dom\";\nimport TweenerContext\n from \"../comps/TweenerContext\";\nimport {clearTweenableValue, deMuxLine, deMuxTween, muxToCss} from \"../utils/css\";\nimport tweenAxis\n from \"../utils/CssTweenAxis\";\nimport domUtils from \"../utils/dom\";\nimport Inertia from '../utils/inertia';\n\n/**\n * Tweener — the central animation engine for react-voodoo.\n *\n * Responsibilities:\n * - Owns all registered node state: numeric interpolatable values (`tweenRefMaps`),\n * CSS string cache (`tweenRefCSS`), demuxer registries (`muxByTarget`, `muxDataByTarget`).\n * - Drives scroll axes: each Axis registers a CssTweenAxis timeline here; on each\n * scroll event `goTo(pos, tweenRefMaps)` emits deltas directly into tweenRefMaps.\n * - Writes CSS to the DOM directly, bypassing React's render loop entirely, via\n * `_updateTweenRefs()` → `node.style[prop] = value` (or setAttribute for SVG attrs).\n * - Is distributed to all descendants via TweenerContext so that Node, Axis, and\n * Draggable can find the nearest engine without prop-drilling.\n *\n * The class extends React.Component only to participate in the component lifecycle\n * (componentDidMount, componentWillUnmount). All mutable animation state lives in\n * `this._` (see constructor) to avoid interference with React's diffing.\n */\n\nlet isBrowserSide = (new Function(\"try {return this===window;}catch(e){ return false;}\"))(),\n isArray = is.array,\n _live, lastTm, _running = [];\n\n/**\n * Build a plain style object from a tweenRefCSS map, filtering out SVG geometry\n * attribute entries (keys prefixed with \"attr_\") that are applied via setAttribute\n * and must not appear in a React style prop.\n */\nfunction toStyleProp( css ) {\n\tconst s = {};\n\tfor ( const k in css )\n\t\tif ( k.length < 5 || k[0] !== 'a' || k[1] !== 't' || k[2] !== 't' || k[3] !== 'r' || k[4] !== '_' )\n\t\t\ts[k] = css[k];\n\treturn s;\n}\n\n/**\n * Runner — a module-level setTimeout-based timer shared across all Tweener instances.\n *\n * This is NOT the per-frame RAF loop. Its job is to drive time-based animations:\n * - `pushAnim()` one-shot timelines\n * - `scrollTo(pos, ms)` eased scroll transitions via `_runScrollGoTo`\n *\n * RAF (`requestAnimationFrame`) is used separately in `_rafLoop` only for the\n * per-frame DOM write pass that flushes accumulated deltas to node.style.\n */\nconst Runner = {\n\t/**\n\t * Enqueue a new animation. Resets the timeline to position 0, then starts\n\t * ticking at ~16ms intervals until all queued animations complete.\n\t */\n\trun : function ( tl, ctx, duration, cb ) {\n\t\tlet apply = ( pos, size ) => tl.go(pos / size, ctx);\n\t\t_running.push({ apply, duration, cpos: 0, cb });\n\t\ttl.go(0, ctx, true);//reset tl\n\n\t\tif ( !_live ) {\n\t\t\t_live = true;\n\t\t\tlastTm = Date.now();\n\t\t\tsetTimeout(this._tick, 16);\n\t\t}\n\t},\n\t/**\n\t * Advance each running animation by elapsed ms. Animations that reach their\n\t * full duration are completed (callback fired) and removed from the queue.\n\t * The loop stops itself when the queue is empty.\n\t */\n\t_tick: function _tick() {\n\t\tlet i = 0, o, tm = Date.now(), delta = tm - lastTm;\n\t\tlastTm = tm;\n\t\tfor ( ; i < _running.length; i++ ) {\n\t\t\t_running[i].cpos = Math.min(delta + _running[i].cpos, _running[i].duration);//cpos\n\t\t\t_running[i].apply(\n\t\t\t\t_running[i].cpos, _running[i].duration\n\t\t\t);\n\t\t\tif ( _running[i].cpos == _running[i].duration ) {\n\n\t\t\t\t_running[i].cb && setTimeout(_running[i].cb);\n\t\t\t\t_running.splice(i, 1), i--;\n\t\t\t}\n\n\t\t}\n\t\tif ( _running.length )\n\t\t\tsetTimeout(_tick, 16);\n\t\telse {\n\t\t\t_live = false;\n\t\t}\n\t},\n};\nexport default class Tweener extends React.Component {\n\n\taxes = {};\n\t_scrollWatcherByAxis = {};\n\n\t// ------------------------------------------------------------\n\t// -------------------- TweenRefs utils -----------------------\n\t// ------------------------------------------------------------\n\n\t// Scratch buffer reused every RAF frame by _updateTweenRef to avoid allocations\n\t_swap = {};\n\n\t/**\n\t * All mutable animation state is stored in `this._` rather than directly on\n\t * the instance or in React state. This prevents React's reconciler from\n\t * touching it during re-renders, and avoids the overhead of setState for\n\t * changes that are written straight to the DOM anyway.\n\t *\n\t * Key sub-objects:\n\t * - `_.tweenRefMaps[id]` — numeric additive values per node (the hot path)\n\t * - `_.tweenRefCSS[id]` — last-written CSS string values per node\n\t * - `_.muxByTarget[id]` — active demuxer instances per CSS property per node\n\t * - `_.muxDataByTarget[id]` — per-target mux metadata (ref counts, unit info)\n\t * - `_.tweenRefOrigin[id]` — snapshot of initial numeric values at registration time\n\t * - `_.runningAnims` — pushAnim timelines currently being ticked\n\t * - `_.refs[id]` — DOM node references set by the ref callback on each Node\n\t */\n\tconstructor( props ) {\n\t\tsuper(...arguments);\n\t\tlet _ = this._ = {\n\t\t\trefs : {},\n\t\t\tmuxByTarget: {},\n\t\t};\n\t\t_.box = {\n\t\t\tx: 100,\n\t\t\ty: 100,\n\t\t\tz: 800\n\t\t};\n\t\tthis.__isTweener = true;\n\t\t_._rafLoop = this._rafLoop.bind(this);\n\t\t_.rootRef = this.props.forwardedRef || React.createRef();\n\t\t_.options = {\n\t\t\tmaxClickTm : 200,\n\t\t\tmaxClickOffset: 5,\n\t\t\t...(props.tweenerOptions || {})\n\t\t};\n\t\t_.tweenRefCSS = {};\n\t\t_.tweenRefs = {};\n\t\t_.tweenRefMaps = {};\n\t\t_.iMapOrigin = {};\n\t\t_.tweenRefInitialData = {};\n\t\t_.tweenEnabled = true;\n\t\t_.tweenRefOrigin = {};\n\t\t_.tweenRefOriginCss = {};\n\t\t_.muxDataByTarget = _.muxDataByTarget || {};\n\t\t_.tweenRefDemuxed = _.tweenRefDemuxed || {};\n\t\t_.tweenRefTargets = _.tweenRefTargets || [];\n\t\t_.runningAnims = _.runningAnims || [];\n\t\t\n\t\t_.scrollHook = [];\n\t\t_.activeInertia = [];\n\t\t_.defaultAxesPosition = props.tweenerOptions?.defaultAxesPosition;\n\t\tprops.tweenerOptions?.ref?.(this);\n\t\t\n\t\tisBrowserSide && window.addEventListener(\n\t\t\t\"resize\",\n\t\t\tthis._.onResize = ( e ) => {//@todo\n\t\t\t\tthis._updateBox();\n\t\t\t\tthis._updateTweenRefs();\n\t\t\t\t_.rootRef?.current?.windowDidResize?.(e);\n\t\t\t});\n\t}\n\t\n\t/**\n\t * Register (or re-register) an animatable node.\n\t *\n\t * First call: allocates `tweenRefMaps[id]` with numeric initial values derived\n\t * from `iMap` via deMuxTween. The resulting demuxer instances are stored in\n\t * `muxByTarget[id]` so the same parsers are reused on every subsequent frame.\n\t *\n\t * Subsequent calls with a changed `iMap` or `iStyle`: hot-swaps the initial\n\t * offset so any running animation deltas are preserved. The algorithm:\n\t * 1. Subtracts the old origin from tweenRefMaps (undoes previous baseline).\n\t * 2. Re-demuxes the new iMap to get a fresh tweenableMap.\n\t * 3. Adds the new tweenableMap to tweenRefMaps (applies new baseline).\n\t * This keeps in-flight animations (whose deltas are already accumulated in\n\t * tweenRefMaps) intact through style prop changes.\n\t *\n\t * Returns `{ style, ref }` — style is the initial CSS for React's first render;\n\t * ref is a callback that stores the DOM node into `_.refs[id]` for direct writes.\n\t */\n\ttweenRef( id, iStyle = {}, iMap = {}, pos, ref, noref, mapReset ) {// ref initial style\n\t\t\n\t\t\n\t\tlet _ = this._,\n\t\t tweenableMap = {};\n\t\t\n\t\tlet initials = {};\n\t\tif ( !_.tweenRefs[id] )\n\t\t\t_.tweenRefTargets.push(id);\n\t\t\n\t\tif ( _.tweenRefs[id] && (// if node exist hot switch initial values\n\t\t\tmapReset\n\t\t\t|| (_.iMapOrigin[id] !== iMap || !deepEqual(iMap, _.iMapOrigin[id]))\n\t\t\t|| (_.tweenRefOriginCss[id] !== iStyle || !deepEqual(iStyle, _.tweenRefOriginCss[id]))\n\t\t) ) {\n\t\t\t\n\t\t\t//console.warn('ref exist & style is !==', id, iStyle,\n\t\t\t// _.tweenRefOriginCss[id], mapReset)\n\t\t\t_.iMapOrigin[id] = iMap;\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\n\t\t\tiStyle = iStyle || {};\n\t\t\tiMap = iMap || {};\n\t\t\t\n\t\t\t\n\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\n\t\t\t\n\t\t\t//console.log(\"update ref\", id)\n\t\t\t\n\t\t\t// minus initial values\n\t\t\tObject.keys(_.tweenRefOrigin[id])\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] -= _.tweenRefOrigin[id][key])\n\t\t\t );\n\t\t\t// set defaults values in case of\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\n\t\t\t\t ? _.tweenRefMaps[id][key]\n\t\t\t\t : initials[key])\n\t\t\t );\n\t\t\t// add new initial values\n\t\t\tObject.keys(tweenableMap)\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\n\t\t\t );\n\t\t\t\n\t\t\tObject.keys(_.tweenRefOrigin[id])// unset\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t clearTweenableValue(key, key, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\n\t\t\t\t }\n\t\t\t );\n\t\t\tObject.keys(_.tweenRefCSS[id])// unset not tweened\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] && !_.muxByTarget[id][key] && !iStyle[key] )\n\t\t\t\t\t\t delete _.tweenRefCSS[id][key];\n\t\t\t\t }\n\t\t\t );\n\t\t\tObject.keys(iStyle)// reset not tweened\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] !== iStyle[key] && !_.muxByTarget[id][key] )\n\t\t\t\t\t\t _.tweenRefCSS[id][key] = iStyle[key];\n\t\t\t\t }\n\t\t\t );\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\n\t\t\t\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t\tthis._updateTweenRef(id, true);\n\t\t}\n\t\telse if ( !_.tweenRefs[id] ) {\n\t\t\t//console.log(\"init ref\", id)\n\t\t\t\n\t\t\t_.iMapOrigin[id] = iMap;\n\t\t\tiStyle = iStyle || {};\n\t\t\tiMap = iMap || {};\n\t\t\t\n\t\t\t_.tweenRefs[id] = true;\n\t\t\t_.muxByTarget[id] = _.muxByTarget[id] || {};\n\t\t\t_.muxDataByTarget[id] = _.muxDataByTarget[id] || {};\n\t\t\t\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\n\t\t\t\n\t\t\t_.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\n\t\t\tif ( _.tweenRefOrigin[id] ) {\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\n\t\t\t\t\n\t\t\t\t//// set defaults values in case of\n\t\t\t\tObject.keys(initials)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\n\t\t\t\t\t ? _.tweenRefMaps[id][key] - initials[key]\n\t\t\t\t\t : 0)\n\t\t\t\t );\n\t\t\t\t//// add new initial values\n\t\t\t\tObject.keys(tweenableMap)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\n\t\t\t\t );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id]) };\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t// init / reset or get the tweenable view\n\t\t\t\ttweenableMap = Object.assign({}, initials, tweenableMap || {});\n\t\t\t\t\n\t\t\t\t// set defaults values in case of\n\t\t\t\t// add new initial values\n\t\t\t\tObject.keys(tweenableMap)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = (_.tweenRefMaps[id][key] || 0) + tweenableMap[key])\n\t\t\t\t );\n\t\t\t}\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\n\t\t\t_.tweenRefCSS[id] = iStyle;\n\t\t\ttweenableMap = _.tweenRefMaps[id];\n\t\t\tmuxToCss(tweenableMap, iStyle, _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t\t\n\t\t}\n\t\telse {\n\t\t\t\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t}\n\t\t//console.log('tweenRef::tweenRef:519: ', id, { ..._.muxDataByTarget[id] }, {\n\t\t// ..._.tweenRefCSS[id] });\n\t\tif ( noref )\n\t\t\treturn {\n\t\t\t\tstyle: toStyleProp(_.tweenRefCSS[id])\n\t\t\t};\n\t\telse\n\t\t\treturn {\n\t\t\t\tstyle: toStyleProp(_.tweenRefCSS[id]),\n\t\t\t\tref : is.function(ref)\n\t\t\t\t ? node => (_.refs[id] = ref(node))\n\t\t\t\t : ref\n\t\t\t\t ? node => (_.refs[id] = ref.current = node)\n\t\t\t\t : node => (_.refs[id] = node)\n\t\t\t};\n\t}\n\t\n\t/**\n\t * Delete tweenable element\n\t * @param id\n\t */\n\trmTweenRef( id ) {\n\t\tif ( this._.tweenRefs[id] ) {\n\t\t\tthis._.tweenRefTargets.splice(this._.tweenRefTargets.indexOf(id), 1);\n\t\t\tdelete this._.tweenRefs[id];\n\t\t\tdelete this._.muxByTarget[id];\n\t\t\tdelete this._.muxDataByTarget[id];\n\t\t\tdelete this._.iMapOrigin[id];\n\t\t\tdelete this._.tweenRefOrigin[id];\n\t\t\tdelete this._.tweenRefCSS[id];\n\t\t\tdelete this._.tweenRefMaps[id];\n\t\t\tdelete this._.refs[id];\n\t\t}\n\t}\n\t\n\t/**\n\t * Reset tweenRefs\n\t * @param targets\n\t */\n\tresetTweenable( ...targets ) {\n\t\tlet _ = this._;\n\t\ttargets.forEach(\n\t\t\t( t ) => {\n\t\t\t\tthis.tweenRef(t, _.tweenRefOriginCss[t], _.iMapOrigin[t], null, null, null, true)\n\t\t\t}\n\t\t);\n\t\tthis._updateTweenRefs();\n\t}\n\t\n\t/**\n\t * Update tweenRefs style ( anims & axis will still update the ref )\n\t * @param target\n\t * @param style\n\t * @param postPone\n\t * @returns {*}\n\t */\n\tupdateRefStyle( target, style, postPone ) {\n\t\tlet _ = this._, initials = {}, pureCss;\n\t\t\n\t\t// allow batched stykes updates\n\t\tif ( isArray(target) && isArray(style) )\n\t\t\treturn target.map(( m, i ) => this.updateRefStyle(m, style[i], postPone));\n\t\tif ( isArray(target) )\n\t\t\treturn target.map(( m ) => this.updateRefStyle(m, style, postPone));\n\t\t\n\t\tif ( !_.tweenRefMaps[target] )\n\t\t\treturn console.warn(\"[react-voodoo] Cannot update styles: unknown Node id '\", target, \"'\");\n\t\t\n\t\tpureCss = deMuxTween(style, _.tweenRefMaps[target], initials, _.muxDataByTarget[target], _.muxByTarget[target]);\n\t\tObject.assign(_.tweenRefCSS[target], pureCss);\n\t\tObject.assign(_.tweenRefOriginCss[target], pureCss);\n\t\tmuxToCss(_.tweenRefMaps[target], _.tweenRefCSS[target], _.muxByTarget[target], _.muxDataByTarget[target], _.box);\n\t\tthis._updateTweenRef(target, true);\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// -------------------- Pushable anims ------------------------\n\t// ------------------------------------------------------------\n\t\n\t/**\n\t * Retrieve the tween ref dom node\n\t * @param id\n\t * @returns {*}\n\t */\n\tgetTweenableRef( id ) {\n\t\tif ( this._.refs[id]?.nodeType === 1 )\n\t\t\treturn this._.refs[id];\n\t\telse if ( this._.refs[id]?._?.rootRef?.current && is.element(this._.refs[id]._.rootRef.current) )\n\t\t\treturn this._.refs[id]._.rootRef.current\n\t\telse if ( !this._.tweenRefs[id] )\n\t\t\tconsole.warn(\"[react-voodoo] getTweenableRef: no registered node found for id '\", id, \"'\")\n\t}\n\t\n\t/**\n\t * Get the root dom node of the tweener element\n\t * @returns {*}\n\t */\n\tgetRootNode() {\n\t\ttry {\n\t\t\treturn this._.rootRef && this._.rootRef.current;\n\t\t} catch ( e ) {\n\t\t\treturn this._.rootRef && this._.rootRef.current;\n\t\t}\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// ------------------ Scrollable axes -------------------------\n\t// ------------------------------------------------------------\n\t\n\t/**\n\t * Run a one-shot animation timeline and return a Promise that resolves when it completes.\n\t *\n\t * If `anim` is a plain descriptor array, it is demuxed into a CssTweenAxis here.\n\t * The axis is handed to `tweenAxis.run()` which drives it via the module-level\n\t * Runner (setTimeout loop). While the animation runs, the RAF loop is also kept\n\t * alive so DOM writes happen every frame.\n\t *\n\t * On completion the axis is destroyed (returned to the pool) and the demuxed\n\t * property locks are released via `clearTweenableValue`.\n\t */\n\tpushAnim( anim, then, keepResults = true ) {\n\t\tlet sl,\n\t\t initial,\n\t\t _ = this._,\n\t\t initials = {},\n\t\t fail;\n\t\t\n\t\tif ( isArray(anim) ) {\n\t\t\tsl = anim;\n\t\t}\n\t\telse {\n\t\t\tsl = anim.anims;\n\t\t\tinitial = anim.initial;\n\t\t}\n\t\t\n\t\tif ( !(sl instanceof tweenAxis) ) {\n\t\t\t// tweenLine, initials, data, demuxers\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\n\t\t\tsl = new tweenAxis(sl, this._.tweenRefMaps);\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t id => (\n\t\t\t\t\t this._.tweenRefMaps[id] &&\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\n\t\t\t\t\t\t ...initials[id],\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\n\t\t\t\t\t }) || (fail = console.warn(\"[react-voodoo] pushAnim: cannot find tween target '\", id, \"' in\", Tweener.displayName) || true)\n\t\t\t\t )\n\t\t\t )\n\t\t}\n\t\tif ( fail )\n\t\t\treturn;\n\t\t\n\t\t\n\t\treturn new Promise(\n\t\t\tresolve => {\n\t\t\t\t\n\t\t\t\t// start timer launch @todo\n\t\t\t\tsl.run(this._.tweenRefMaps, () => {\n\t\t\t\t\tlet i = this._.runningAnims.indexOf(sl);\n\t\t\t\t\tif ( i != -1 )\n\t\t\t\t\t\tthis._.runningAnims.splice(i, 1);\n\t\t\t\t\t//console.log( _.muxDataByTarget)\n\t\t\t\t\tObject.keys(initials)// unset\n\t\t\t\t\t .forEach(\n\t\t\t\t\t\t id => {\n\t\t\t\t\t\t\t Object.keys(initials[id])// unset\n\t\t\t\t\t\t\t .forEach(\n\t\t\t\t\t\t\t\t rkey => {\n\t\t\t\t\t\t\t\t\t // todo\n\t\t\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id], keepResults)\n\t\t\t\t\t\t\t\t })\n\t\t\t\t\t\t });\n\t\t\t\t\tsl.destroy();\n\t\t\t\t\tresolve(sl);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tthis._.runningAnims.push(sl);\n\t\t\t\t\n\t\t\t\tif ( !this._.live ) {\n\t\t\t\t\tthis._.live = true;\n\t\t\t\t\trequestAnimationFrame(this._._rafLoop = this._._rafLoop || this._rafLoop.bind(this));\n\t\t\t\t}\n\t\t\t}\n\t\t).then(sl => (then && then(sl)));\n\t\t\n\t}\n\t\n\t/**\n\t * Update tweenRef raw tweened values\n\t * @param id\n\t * @param map\n\t * @param reset\n\t */\n\tapplyTweenState( id, map, reset ) {\n\t\tlet tmap = {}, initials = {};\n\t\tdeMuxTween(map, tmap, initials, this._.muxDataByTarget[id], this._.muxByTarget[id], true)\n\t\tObject.keys(tmap).map(\n\t\t\t( p ) => this._.tweenRefMaps[id][p] = (!reset && this._.tweenRefMaps[id][p] || initials[p]) + tmap[p]\n\t\t);\n\t}\n\t\n\t/**\n\t * Will init / update a scrollable axis\n\t * @param axe\n\t * @param _inertia\n\t * @param _scrollableArea\n\t * @param _scrollableBounds\n\t * @param _scrollableWindow\n\t * @param defaultPosition\n\t * @param scrollFirst\n\t * @param reset\n\t */\n\tinitAxis( axe, {\n\t\tinertia : _inertia,\n\t\tscrollableArea : _scrollableArea = 0,\n\t\tscrollableBounds: _scrollableBounds,\n\t\tscrollableWindow: _scrollableWindow,\n\t\tdefaultPosition,\n\t\tscrollFirst\n\t}, reset ) {\n\t\t\n\t\t\n\t\tlet _ = this._,\n\t\t dim = this.axes[axe],\n\t\t scrollableBounds = _scrollableBounds,\n\t\t scrollPos = !reset && dim\n\t\t ? dim.scrollPos\n\t\t : _.defaultAxesPosition?.[axe] || defaultPosition || scrollableBounds && scrollableBounds.min || 0,\n\t\t scrollableArea = Math.max(dim && dim.scrollableArea || 0, _scrollableArea),\n\t\t scrollableWindow = Math.max(dim && dim.scrollableWindow || 0, _scrollableWindow),\n\t\t targetPos = dim ? dim.targetPos : scrollPos,\n\t\t inertia = (\n\t\t\t dim ? dim.inertia : new Inertia({// todo mk pure\n\t\t\t\t disabled: !_inertia,\n\t\t\t\t ...(_inertia || {}),\n\t\t\t\t value: scrollPos\n\t\t\t })),\n\t\t nextDescr = {\n\t\t\t //...(_inertia || {}),\n\t\t\t scrollFirst,\n\t\t\t tweenAxis: dim && dim.tweenAxis || [],\n\t\t\t scrollPos,\n\t\t\t targetPos,\n\t\t\t inertia,\n\t\t\t scrollableWindow,\n\t\t\t scrollableBounds,\n\t\t\t scrollableArea,\n\t\t\t scrollTo : ( pos, tm, ease, noEvents ) => {\n\t\t\t\t return this.scrollTo(pos, tm, axe, ease, noEvents)\n\t\t\t }\n\t\t };\n\t\t\n\t\tthis.axes[axe] = nextDescr;\n\t\t!_inertia && (inertia._.disabled = true);\n\t\t(_inertia) && inertia && !inertia.active && (inertia._.pos = scrollPos);\n\t\t(_inertia) && inertia && (inertia.updateConf(_inertia));\n\t\tif ( inertia && scrollableBounds )\n\t\t\tinertia.setBounds?.(scrollableBounds.min, scrollableBounds.max);\n\t\telse\n\t\t\tinertia && inertia.setBounds?.(0, scrollableArea)\n\t}\n\t\n\t_getAxis( axe = \"scrollY\" ) {\n\t\tlet _ = this._;\n\t\t\n\t\tthis.axes[axe] = this.axes[axe] || {\n\t\t\ttweenAxis : [],\n\t\t\tscrollPos : _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\n\t\t\ttargetPos : 0,\n\t\t\tscrollableWindow: 0,\n\t\t\tscrollableArea : 0,\n\t\t\tinertia : new Inertia({\n\t\t\t\t value: _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\n\t\t\t\t ...(_.options.axes && _.options.axes[axe] && _.options.axes[axe].inertia || {})\n\t\t\t }),\n\t\t\tscrollTo : ( pos, tm, ease, noEvents ) => {\n\t\t\t\treturn this.scrollTo(pos, tm, axe, ease, noEvents)\n\t\t\t}\n\t\t};\n\t\t\n\t\treturn this.axes[axe];\n\t}\n\t\n\t/**\n\t * Return axis infos\n\t */\n\tgetAxisState( axe ) {\n\t\tlet _ = this._, state = {};\n\t\tthis.axes && Object.keys(this.axes)\n\t\t .forEach(\n\t\t\t axe => (state[axe] = this.axes[axe].targetPos || this.axes[axe].scrollPos)\n\t\t );\n\t\treturn state;\n\t}\n\t\n\tgetScrollPos( axis = \"scrollY\" ) {\n\t\tlet _ = this._, state = {};\n\t\treturn this.axes[axis]\n\t\t ? this.axes[axis].targetPos || this.axes[axis].scrollPos\n\t\t : 0\n\t}\n\t\n\t/**\n\t * Scroll an axis to `newPos`.\n\t *\n\t * Fast path (ms === 0): directly calls `axis.tweenAxis[].goTo(newPos)` and\n\t * triggers a single `_updateTweenRefs()` pass — no timer is started.\n\t *\n\t * Eased path (ms > 0): delegates to `_runScrollGoTo()` which enqueues an entry\n\t * in the module-level Runner, interpolating between the current position and the\n\t * target over the given duration using the supplied d3-ease function.\n\t */\n\tscrollTo( newPos, ms = 0, axe = \"scrollY\", ease, noEvents ) {\n\t\tlet _ = this._;\n\t\tif ( !isBrowserSide ) {\n\t\t\tconsole.warn(\"[react-voodoo] scrollTo() cannot be used server-side — use the Axis defaultPosition prop to set the initial axis position\");\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn new Promise(\n\t\t\t(( resolve, reject ) => {\n\t\t\t\tif ( this.axes && this.axes[axe] ) {\n\t\t\t\t\tlet oldPos = this.axes[axe].targetPos,\n\t\t\t\t\t setPos = pos => {\n\t\t\t\t\t\t //console.log('TweenableComp::setPos:514: ', newPos,pos, ms,\n\t\t\t\t\t\t // axe);\n\t\t\t\t\t\t pos = (~~(pos * 10000)) / 10000;\n\t\t\t\t\t\t this.axes[axe].targetPos = this.axes[axe].scrollPos = pos;\n\t\t\t\t\t\t \n\t\t\t\t\t\t //this.axes[axe].inertia._doSnap()\n\t\t\t\t\t\t if ( ~~pos !== oldPos ) {\n\t\t\t\t\t\t\t this.axisDidScroll(~~pos, axe);\n\t\t\t\t\t\t\t _.rootRef?.current?.componentDidScroll?.(~~pos, axe);\n\t\t\t\t\t\t }\n\t\t\t\t\t\t this._updateTweenRefs()\n\t\t\t\t\t };\n\t\t\t\t\t\n\t\t\t\t\tnewPos = Math.max(0, newPos);\n\t\t\t\t\tnewPos = Math.min(newPos, this.axes[axe].scrollableArea || 0);\n\t\t\t\t\t\n\t\t\t\t\tthis.axes[axe].targetPos = newPos;\n\t\t\t\t\t\n\t\t\t\t\tif ( !ms ) {\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(newPos);\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\n\t\t\t\t\t\t\tnewPos = this.axes?.[axe]?.inertia?._.pos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\t\t\t\t\tsl => sl.goTo(newPos, _.tweenRefMaps, false, noEvents)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetPos(newPos);\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis._runScrollGoTo(axe, newPos, ms, easingFn[ease], noEvents, setPos, resolve)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ( !_.live ) {\n\t\t\t\t\t\t_.live = true;\n\t\t\t\t\t\trequestAnimationFrame(_._rafLoop);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})).then(\n\t\t\tp => {\n\t\t\t\tthis.axes?.[axe]?.inertia?._detectCurrentSnap();\n\t\t\t}\n\t\t)\n\t}\n\t\n\t/**\n\t * Parse a tween descriptor array into a CssTweenAxis, register it on the named\n\t * axis, and immediately advance it to the current scroll position so there is no\n\t * visual jump when an axis is added mid-session.\n\t *\n\t * The resulting CssTweenAxis is pushed into `dim.tweenAxis[]` so that every\n\t * future `goTo()` call (from scrolling or inertia) hits all registered timelines\n\t * for that axis in one pass.\n\t */\n\taddScrollableAnim( anim, axe = \"scrollY\", size ) {\n\t\tlet sl,\n\t\t _ = this._,\n\t\t initials = {},\n\t\t dim = this._getAxis(axe);\n\t\t\n\t\tif ( isArray(anim) ) {\n\t\t\tsl = anim;\n\t\t}\n\t\telse {\n\t\t\tsl = anim.anims;\n\t\t\tsize = anim.length;\n\t\t}\n\t\t\n\t\t//console.warn(\"add scrollable\")\n\t\tif ( !(sl instanceof tweenAxis) ) {\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\n\t\t\t\n\t\t\tsl = new tweenAxis(sl, _.tweenRefMaps);\n\t\t\tsl.initials = initials;\n\t\t\t\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t id => {\n\t\t\t\t\t _.tweenRefOrigin[id] = _.tweenRefOrigin[id] || {};\n\t\t\t\t\t \n\t\t\t\t\t _.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\n\t\t\t\t\t\t ...initials[id],\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\n\t\t\t\t\t })\n\t\t\t\t }\n\t\t\t );\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t// init scroll\n\t\tdim.tweenAxis.push(sl);\n\t\tdim.scrollPos = dim.scrollPos || 0;\n\t\tdim.scrollableArea = dim.scrollableArea || 0;\n\t\tdim.scrollableArea = Math.max(dim.scrollableArea, sl.duration);\n\t\t\n\t\tif ( !dim.scrollableBounds )\n\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea);\n\t\t\n\t\tsl.goTo(dim.scrollPos, this._.tweenRefMaps, false, true);\n\t\tthis._updateTweenRefs();\n\t\treturn sl;\n\t}\n\t\n\t/**\n\t * Remove a tweenAxis object from a component scrollable axis\n\t * @param sl\n\t * @param axe\n\t */\n\trmScrollableAnim( sl, axe = \"scrollY\" ) {\n\t\tlet _ = this._, found,\n\t\t dim = this._getAxis(axe), twAxis;\n\t\tlet i = dim.tweenAxis.indexOf(sl);\n\t\tif ( i !== -1 ) {\n\t\t\t\n\t\t\t//dim.tweenAxis[i].destroy();\n\t\t\tdim.tweenAxis.splice(i, 1);\n\t\t\tdim.scrollableArea = Math.max(...dim.tweenAxis.map(tl => tl.duration), 0);\n\t\t\tif ( !dim.scrollableBounds )\n\t\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea || 0);\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps })\n\t\t\tsl.goTo(0, this._.tweenRefMaps, false, true);\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps[\"card\"] })\n\t\t\t\n\t\t\tObject.keys(sl.initials)// unset\n\t\t\t .forEach(\n\t\t\t\t id => {\n\t\t\t\t\t Object.keys(sl.initials[id])// unset\n\t\t\t\t\t .forEach(\n\t\t\t\t\t\t rkey => {\n\t\t\t\t\t\t\t //debugger\n\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\n\t\t\t\t\t\t\t //!_.tweenRefCSS[id] &&\n\t\t\t\t\t\t\t //_.refs[id] && _.refs[id].style &&\n\t\t\t\t\t\t\t // _.refs[id].style[rkey] &&\n\t\t\t\t\t\t\t // (_.refs[id].style[rkey] = null);\n\t\t\t\t\t\t })\n\t\t\t\t });\n\t\t\tdelete sl.initials;\n\t\t\tsl.destroy();\n\t\t\tfound = true;\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\t!found && console.warn(\"[react-voodoo] rmScrollableAnim: axis not found:\", axe)\n\t}\n\t\n\t/**\n\t * @private fn to push scrollTo\n\t * @param axe\n\t * @param to\n\t * @param tm\n\t * @param easing\n\t * @param tick\n\t * @param cb\n\t * @private\n\t */\n\t_runScrollGoTo( axe, to, tm, easing = x => x, noEvents, tick, cb ) {\n\t\tlet from = this.axes[axe].scrollPos,\n\t\t length = to - from;\n\t\t\n\t\t_running.push(\n\t\t\t{\n\t\t\t\tapply : ( pos, max ) => {\n\t\t\t\t\tlet x = (from + (easing(pos / max)) * length);\n\t\t\t\t\tif ( this._.tweenEnabled ) {\n\t\t\t\t\t\t// allow shouldLoop on scrollTo\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(x);\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\n\t\t\t\t\t\t\tx = this.axes?.[axe]?.inertia?._.pos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\t\t\t\t\tsl => sl.goTo(x, this._.tweenRefMaps, false, noEvents)\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttick && tick(x);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tduration: tm,\n\t\t\t\tcpos : 0,\n\t\t\t\tcb\n\t\t\t})\n\t\t;\n\t\t\n\t\tif ( !_live ) {\n\t\t\t_live = true;\n\t\t\tlastTm = Date.now();\n\t\t\tsetTimeout(Runner._tick, 16);\n\t\t}\n\t}\n\n\t/**\n\t * Hook to know if the composed element allow scrolling\n\t * @returns {boolean}\n\t */\n\tcomponentShouldScroll() {\n\t\tlet _ = this._;\n\t\treturn _.rootRef &&\n\t\t _.rootRef.current &&\n\t\t _.rootRef.current.componentShouldScroll ?\n\t\t _.rootRef.current.componentShouldScroll(...arguments) : true\n\t}\n\t\n\t/**\n\t * Add scroll listener to {axisId} axis, return unwatch\n\t * @param axisId\n\t * @param listener\n\t * @returns {function(...[*]=)}\n\t */\n\twatchAxis( axisId, listener ) {\n\t\tlet byId = this._scrollWatcherByAxis;\n\t\tbyId[axisId] = byId[axisId] || [];\n\t\tbyId[axisId].push(listener);\n\t\treturn () => {\n\t\t\tlet index = byId[axisId].indexOf(listener);\n\t\t\tbyId[axisId].splice(index, 1);\n\t\t}\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// --------------- Inertia & scroll modifiers -----------------\n\t// ------------------------------------------------------------\n\t\n\taxisDidScroll( pos, axisId ) {\n\t\tlet watchers = this._scrollWatcherByAxis[axisId],\n\t\t i = watchers?.length;\n\t\tif ( watchers )\n\t\t\twhile ( i ) watchers[--i](pos);\n\t}\n\t\n\t/**\n\t * Called from a recurring 16ms setTimeout while inertia is active (set up by\n\t * the drag handlers in Draggable). Each call reads the next position from\n\t * `Inertia.update()`, calls `goTo()` on all registered timelines for the axis,\n\t * and triggers a DOM write via `_updateTweenRefs()`. Re-schedules itself as long\n\t * as `dim.inertia.active` or `dim.inertia.holding` remains true.\n\t */\n\tapplyInertia( dim, axe ) {\n\t\tlet x = dim.inertia.update(), _ = this._;\n\t\t\n\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\tsl => {\n\t\t\t\tthis.axes[axe].targetPos = this.axes[axe].scrollPos = x;\n\t\t\t\tsl.goTo(x, this._.tweenRefMaps)\n\t\t\t}\n\t\t);\n\t\t_.rootRef?.current?.componentDidScroll?.(x, axe);\n\t\tthis.axisDidScroll(x, axe);\n\t\tthis._updateTweenRefs()\n\t\tif ( dim.inertia.active || dim.inertia.holding ) {\n\t\t\tdim.inertiaFrame = setTimeout(this.applyInertia.bind(this, dim, axe), 16);\n\t\t}\n\t\telse {\n\t\t\tdim.inertiaFrame = null;\n\t\t}\n\t}\n\t\n\t/**\n\t * Return true if at least 1 of this tweener axis have it's inertia active\n\t * @returns {boolean}\n\t */\n\tisInertiaActive() {//todo\n\t\tlet _ = this._, active = false;\n\t\tthis.axes &&\n\t\tObject.keys(this.axes)\n\t\t .forEach(\n\t\t\t axe => (active = active || this.axes[axe] && this.axes[axe].inertia.active)\n\t\t );\n\t\treturn active;\n\t}\n\t\n\tisAxisOut( axis, v, abs ) {\n\t\tlet _ = this._,\n\t\t dim = this.axes && this.axes[axis],\n\t\t pos = abs ? v : dim && (dim.scrollPos + v);\n\t\t\n\t\tpos = pos && Math.round(pos);\n\t\t\n\t\treturn !dim\n\t\t\t|| (\n\t\t\t\tdim.scrollableBounds\n\t\t\t\t?\n\t\t\t\t(pos <= dim.scrollableBounds.min || pos >= dim.scrollableBounds.max)\n\t\t\t\t:\n\t\t\t\t(pos <= 0 || pos >= dim.scrollableArea)\n\t\t\t);\n\t}\n\t\n\t_activateNodeInertia( node ) {\n\t\tlet _ = this._,\n\t\t i = _.activeInertia.findIndex(item => (item.target === node));\n\t\tif ( i === -1 ) {\n\t\t\t_.activeInertia.push(\n\t\t\t\t{\n\t\t\t\t\tinertia: {\n\t\t\t\t\t\tx: new Inertia({\n\t\t\t\t\t\t\t max : node.scrollWidth - node.offsetLeft,\n\t\t\t\t\t\t\t value: node.scrollLeft\n\t\t\t\t\t\t }),\n\t\t\t\t\t\ty: new Inertia({\n\t\t\t\t\t\t\t max : node.scrollHeight - node.offsetHeight,\n\t\t\t\t\t\t\t value: node.scrollTop\n\t\t\t\t\t\t })\n\t\t\t\t\t},\n\t\t\t\t\ttarget : node\n\t\t\t\t});\n\t\t\ti = _.activeInertia.length - 1;\n\t\t}\n\t\treturn _.activeInertia[i].inertia;\n\t\t\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// --------------- Initialization & drawers -------------------\n\t// ------------------------------------------------------------\n\t\n\t_updateNodeInertia = () => {\n\t\tlet _ = this._, current, ln = _.activeInertia.length;\n\t\t\n\t\tif ( this._inertiaRaf )\n\t\t\tcancelAnimationFrame(this._inertiaRaf);\n\t\t\n\t\tfor ( let i = 0; ln > i; i++ ) {\n\t\t\tcurrent = _.activeInertia[i];\n\t\t\tif ( current.inertia.x.active || current.inertia.x.holding ) {\n\t\t\t\tcurrent.target.scrollLeft = ~~current.inertia.x.update()\n\t\t\t}\n\t\t\tif ( current.inertia.y.active || current.inertia.y.holding ) {\n\t\t\t\tcurrent.target.scrollTop = ~~current.inertia.y.update()\n\t\t\t}\n\t\t\t\n\t\t\tif ( !current.inertia.x.active && !current.inertia.y.active && !current.inertia.x.holding && !current.inertia.y.holding ) {\n\t\t\t\t_.activeInertia.slice(i, 1);\n\t\t\t\ti--;\n\t\t\t\tln--;\n\t\t\t}\n\t\t}\n\t\tif ( ln !== 0 )\n\t\t\tthis._inertiaRaf = requestAnimationFrame(this._updateNodeInertia)\n\t\telse this._inertiaRaf = null;\n\t}\n\t\n\tsetRootRef( id ) {\n\t\tthis._.rootRef = id;\n\t}\n\t\n\t_updateBox() {\n\t\tlet node = this.getRootNode();\n\t\tif ( node ) {\n\t\t\tthis._.box.inited = true;\n\t\t\tthis._.box.x = node.offsetWidth;\n\t\t\tthis._.box.y = node.offsetHeight;\n\t\t}\n\t}\n\t\n\t_rafLoop() {\n\t\tthis._updateTweenRefs();\n\t\tif ( this._.runningAnims.length ) {\n\t\t\trequestAnimationFrame(this._._rafLoop);\n\t\t}\n\t\telse {\n\t\t\tthis._.live = false;\n\t\t}\n\t}\n\t\n\t/**\n\t * Hot path — called every RAF frame and after any scroll/inertia event.\n\t * Iterates every registered node id and delegates to `_updateTweenRef` which\n\t * reconstructs CSS strings from the accumulated numeric state and writes any\n\t * changed values to the DOM node directly.\n\t */\n\t_updateTweenRefs() {\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tfor ( let i = 0, target, node, style; i < this._.tweenRefTargets.length; i++ ) {\n\t\t\t\ttarget = this._.tweenRefTargets[i];\n\t\t\t\tstyle = this._updateTweenRef(target);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Swap-buffer DOM write for a single registered target.\n\t *\n\t * Writes new CSS values into the shared `this._swap` scratch object, then diffs\n\t * against `tweenRefCSS[id]` (the last-written values). Only changed properties\n\t * are applied to the DOM, avoiding unnecessary style recalculations.\n\t *\n\t * Keys prefixed with `attr_` are SVG geometry attributes (e.g. `attr_cx`) that\n\t * must be applied via `element.setAttribute(name, value)` rather than\n\t * `element.style[name]` because they are not CSS properties.\n\t */\n\t_updateTweenRef( target, force ) {\n\t\tlet node, swap = this._swap, changes;\n\t\tthis._.tweenRefCSS[target] &&\n\t\tmuxToCss(this._.tweenRefMaps[target], swap, this._.muxByTarget[target], this._.muxDataByTarget[target], this._.box);\n\t\tnode = this.getTweenableRef(target);\n\t\tif ( node ) {\n\t\t\tfor ( let o in this._.tweenRefCSS[target] )\n\t\t\t\tif ( swap[o] === undefined ) {\n\t\t\t\t\tif ( o.length > 5 && o[0] === 'a' && o[1] === 't' && o[2] === 't' && o[3] === 'r' && o[4] === '_' )\n\t\t\t\t\t\tnode.setAttribute(o.slice(5), this._.tweenRefCSS[target][o]);\n\t\t\t\t\telse\n\t\t\t\t\t\tnode.style[o] = this._.tweenRefCSS[target][o];\n\t\t\t\t}\n\t\t\tfor ( let o in swap )\n\t\t\t\tif ( this._.tweenRefCSS[target].hasOwnProperty(o) ) {\n\t\t\t\t\tif ( force || swap[o] !== this._.tweenRefCSS[target][o] ) {\n\t\t\t\t\t\tthis._.tweenRefCSS[target][o] = swap[o];\n\t\t\t\t\t\tif ( o.length > 5 && o[0] === 'a' && o[1] === 't' && o[2] === 't' && o[3] === 'r' && o[4] === '_' )\n\t\t\t\t\t\t\tnode.setAttribute(o.slice(5), swap[o]);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tnode.style[o] = swap[o];\n\t\t\t\t\t\tchanges = true;\n\t\t\t\t\t}\n\t\t\t\t\tdelete swap[o];\n\t\t\t\t}\n\t\t}\n\t\treturn toStyleProp(this._.tweenRefCSS[target]);\n\t}\n\t\n\t\n\t// ------------------------------------------------------------\n\t// --------------- React Hooks --------------------------------\n\t// ------------------------------------------------------------\n\t\n\tcomponentWillUnmount() {\n\t\tlet node = this.getRootNode();\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tthis._.tweenEnabled = false;\n\t\t\twindow.removeEventListener(\"resize\", this._.onResize);\n\t\t\t\n\t\t\tObject.keys(this.axes).forEach(\n\t\t\t\taxe => {\n\t\t\t\t\tthis.axes[axe].inertiaFrame &&\n\t\t\t\t\tclearTimeout(this.axes[axe].inertiaFrame);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tsuper.componentWillUnmount && super.componentWillUnmount(...arguments);\n\t}\n\t\n\t/**\n\t * Apply SVG geometry attribute values (attr_* keys in tweenRefCSS) to the DOM\n\t * via setAttribute. Called once on mount because these are filtered from the\n\t * React style prop and cannot be applied via node.style.\n\t */\n\t_applyInitialSvgAttrs() {\n\t\tfor ( const id of this._.tweenRefTargets ) {\n\t\t\tconst node = this.getTweenableRef(id);\n\t\t\tconst css = this._.tweenRefCSS[id];\n\t\t\tif ( !node || !css ) continue;\n\t\t\tfor ( const k in css )\n\t\t\t\tif ( k.length > 5 && k[0] === 'a' && k[1] === 't' && k[2] === 't' && k[3] === 'r' && k[4] === '_' )\n\t\t\t\t\tnode.setAttribute(k.slice(5), css[k]);\n\t\t}\n\t}\n\n\t/**\n\t * Called once after the root DOM node is available. Measures the viewport box,\n\t * force-writes all initial CSS/attr values to the DOM, and processes the static\n\t * `scrollableAnim` property — the hook used by the `asTweener` HOC pattern to\n\t * declare axis animations directly on a class component.\n\t */\n\tcomponentDidMount() {\n\t\tlet _static = this.constructor;\n\n\t\tthis._.rendered = true;\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tthis._updateBox();\n\t\t\t// Force-push all values (CSS and attr_*) to the DOM on initial mount.\n\t\t\tfor ( let i = 0; i < this._.tweenRefTargets.length; i++ )\n\t\t\t\tthis._updateTweenRef(this._.tweenRefTargets[i], true);\n\t\t}\n\t\tif ( _static.scrollableAnim ) {\n\t\t\tif ( is.array(_static.scrollableAnim) )\n\t\t\t\tthis.addScrollableAnim(_static.scrollableAnim);\n\t\t\telse\n\t\t\t\tObject.keys(_static.scrollableAnim)\n\t\t\t\t .forEach(\n\t\t\t\t\t axe => this.addScrollableAnim(_static.scrollableAnim[axe], axe)\n\t\t\t\t )\n\t\t}\n\t\t//if ( this._.doRegister || this.__isFirst ) {\n\t\t//\n\t\t//\tthis._.doRegister = false;\n\t\t//}\n\t\tsuper.componentDidMount && super.componentDidMount(...arguments);\n\t}\n\t\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\t\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tthis._updateBox();\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\tsuper.componentDidUpdate && super.componentDidUpdate(...arguments);\n\t}\n\t\n\trender() {\n\t\tconst { BaseComponent, oProps } = this.props;\n\t\treturn <TweenerContext.Consumer>\n\t\t\t{\n\t\t\t\tparentTweener => {\n\t\t\t\t\tthis._parentTweener = parentTweener;\n\t\t\t\t\treturn <TweenerContext.Provider value={this}>\n\t\t\t\t\t\t<BaseComponent {...oProps} ref={this._.rootRef}\n\t\t\t\t\t\t tweener={this}/>\n\t\t\t\t\t</TweenerContext.Provider>;\n\t\t\t\t}\n\t\t\t}\n\t\t</TweenerContext.Consumer>;\n\t}\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport is from \"is\";\nimport TweenerContext from \"../comps/TweenerContext\";\nimport Tweener from \"../comps/Tweener\";\n\n/**\n * useVoodoo — the primary hook for creating or inheriting a Tweener animation engine.\n *\n * Three usage modes:\n *\n * useVoodoo(options)\n * Creates a new Tweener instance. Returns [tweener, ViewBox] where ViewBox is a\n * memoized component that provides TweenerContext and attaches the root DOM ref\n * used by the Tweener to measure the viewport box (box.x/y/z).\n *\n * useVoodoo(true)\n * Inherits the nearest parent Tweener from context. Used internally by Node,\n * Axis, and Draggable to access the engine without creating a new one.\n *\n * useVoodoo(\"name\")\n * Traverses up the tweener tree (via _parentTweener links) to find an ancestor\n * whose options.name matches the given string. Useful for reaching a specific\n * engine in deeply nested or portal-based layouts.\n */\nexport default ( tweenerOptions, RootNodeComp = 'div' ) => {\n\tconst parentTweener = React.useContext(TweenerContext),\n\t nodeRef = React.useRef(),\n\t lastTweener = React.useRef(),\n\t doUseParentTweener = React.useMemo(\n\t\t () => (tweenerOptions === true || is.string(tweenerOptions)),\n\t\t []\n\t ),\n\t tweener = React.useMemo(\n\t\t () => {\n\t\t\t if ( tweenerOptions === true )// keep tweener from context ( parent )\n\t\t\t\t return parentTweener;\n\t\t\t\n\t\t\t if ( is.string(tweenerOptions) ) {// return named tweener or most root tweener\n\t\t\t\t let pTweener = parentTweener;\n\t\t\t\t\n\t\t\t\t while ( pTweener?._ && pTweener._.options.name !== tweenerOptions )\n\t\t\t\t\t if ( pTweener._parentTweener )\n\t\t\t\t\t\t pTweener = pTweener._parentTweener;\n\t\t\t\t\t else {\n\t\t\t\t\t\t console.warn('[react-voodoo] useVoodoo: no parent tweener found with options.name === \"' + tweenerOptions + '\"');\n\t\t\t\t\t\t break;\n\t\t\t\t\t }\n\t\t\t\t\n\t\t\t\t return pTweener;\n\t\t\t }\n\t\t\t\n\t\t\t let tw = new Tweener({\n\t\t\t\t forwardedRef: nodeRef,\n\t\t\t\t tweenerOptions\n\t\t\t });\n\t\t\t tw.isMountedFromHook = true;\n\t\t\t tw._parentTweener = parentTweener;\n\t\t\t return tw;\n\t\t },\n\t\t []\n\t ),\n\t ViewBox = React.useMemo(\n\t\t () => (\n\t\t\t React.forwardRef(\n\t\t\t\t ( { children, ...props }, ref ) => {\n\t\t\t\t\t return <TweenerContext.Provider value={tweener}>\n\t\t\t\t\t\t <RootNodeComp\n\t\t\t\t\t\t\t ref={!ref\n\t\t\t\t\t\t\t ? nodeRef\n\t\t\t\t\t\t\t : ( node ) => (ref.current = nodeRef.current = node)} {...props}>\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t children\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t </RootNodeComp>\n\t\t\t\t\t </TweenerContext.Provider>\n\t\t\t\t }\n\t\t\t )\n\t\t ),\n\t\t []\n\t )\n\t\n\t// Mount/unmount effect: drives the Tweener lifecycle since the Tweener class is\n\t// not mounted as a React component — useVoodoo owns its mount/unmount calls.\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener )\n\t\t\t\treturn;\n\t\t\ttweener.componentDidMount();\n\t\t\tlastTweener.current = tweener;\n\t\t\treturn () => {\n\t\t\t\tif ( !lastTweener.current?._ )\n\t\t\t\t\treturn;\n\t\t\t\tlastTweener.current.componentWillUnmount();\n\t\t\t\tlastTweener.current = null;\n\t\t\t}\n\t\t}, []\n\t)\n\t// nodeRef.current effect: fires after the root DOM node becomes available;\n\t// triggers box measurement and an initial DOM write so CSS is correct\n\t// before the first visible frame.\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t\t\n\t\t}\n\t\t,\n\t\t[nodeRef.current]\n\t)\n\t// parentTweener effect: keeps the _parentTweener link up to date as context\n\t// changes (e.g. when the component is reparented). Draggable uses this link\n\t// to traverse the tweener tree during drag gestures.\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._parentTweener = parentTweener;\n\t\t},\n\t\t[parentTweener]\n\t)\n\t// tweenerOptions effect: hot-updates options (e.g. drag thresholds, axis config)\n\t// without destroying or recreating the Tweener instance.\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._.options = tweenerOptions;\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t},\n\t\t[tweenerOptions]\n\t)\n\treturn React.useMemo(\n\t\t() => ([tweener, ViewBox]),\n\t\t[ViewBox, tweener]\n\t);\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport React from 'react';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\n/**\n * Axis — a zero-render declarative component that registers a scrollable animation\n * timeline with the nearest parent Tweener.\n *\n * Unlike most React components, the registration calls (initAxis / addScrollableAnim)\n * happen during render, not inside a useEffect. This is intentional: children that\n * mount in the same render pass (e.g. Node components) need the axis to already exist\n * so their tweenRef calls can resolve initial positions correctly. The component itself\n * renders nothing (`<React.Fragment/>`).\n *\n * Cleanup on unmount is handled by a single effect with an empty dependency array —\n * it removes the axis timeline from the tweener so that its numeric contributions are\n * zeroed and the CssTweenAxis instance is returned to the object pool.\n */\nexport default ( {\n\t children,\n\t id,\n\t axe = id,\n\t scrollFirst, bounds,\n\t scrollableWindow, inertia, size, defaultPosition,\n\t items = [],\n } ) => {\n\tconst µ = React.useRef({}).current,\n\t [tweener] = useVoodoo(true);\n\t\n\t// First render for this axis id — reset axis to defaultPosition so prior\n\t// scroll state from a different axis id does not bleed through.\n\tif ( !µ.previousAxis || µ.previousAxis !== axe ) {\n\t\tµ.previousAxis = axe;\n\t\tµ.previousInertia = inertia;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tscrollableArea: size,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t}, true);\n\t}\n\t// Inertia config, bounds, or viewport window changed — re-init without resetting\n\t// the scroll position so the user's current scroll is preserved.\n\telse if ( !µ.previousInertia || µ.previousInertia !== inertia || µ.previousBounds !== bounds || µ.previousScrollableWindow !== scrollableWindow ) {\n\t\tµ.previousInertia = inertia;\n\t\tµ.previousAxis = axe;\n\t\tµ.previousBounds = bounds;\n\t\tµ.previousScrollableWindow = scrollableWindow;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tscrollableArea: size,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t});\n\t}\n\t// Parent tweener changed (component was reparented) — unregister from the old\n\t// tweener and re-register with the new one to avoid orphaned timeline entries.\n\tif ( !µ.previousTweener || µ.previousTweener !== tweener ) {\n\t\tµ.previousTweener && µ.lastTL && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweener = tweener;\n\t\tµ.previousTweens = items;\n\t}\n\t// Items array changed — rebuild the timeline. deepEqual guards against the common\n\t// pattern where the consumer creates a new array literal each render with identical\n\t// contents; without it every re-render would teardown and re-create the axis.\n\telse if ( µ.previousTweens !== items && !(µ.previousTweens && deepEqual(items, µ.previousTweens)) ) {\n\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tµ.lastTL = null;\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweens = items;\n\t}\n\t\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\treturn () => {\n\t\t\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\t\t\t\n\t\t\t\tdelete µ.previousTweener;\n\t\t\t\tdelete µ.previousScrollable;\n\t\t\t}\n\t\t}, [])\n\treturn <React.Fragment/>;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"shortid\");","/*\r\n * Copyright (c) 2022-2023 Braun Nathanael\r\n *\r\n * This project is dual licensed under one of the following licenses:\r\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\r\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\r\n *\r\n * You should have received a copy of theses licenses along with this work.\r\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\r\n */\r\n\r\n\r\n/**\r\n * React component type detection helpers used by Node to decide how to pass the\r\n * DOM node ref to a child. Class components accept the standard `ref` prop directly;\r\n * functional components require either forwardRef or a named prop (e.g. `nodeRef`).\r\n */\r\nexport function isClassComponent(component) {\r\n return (\r\n typeof component === 'function' &&\r\n !!component.prototype.isReactComponent\r\n )\r\n}\r\nexport function isFunctionalComponent(Component) {\r\n return (\r\n typeof Component === 'function' // can be various things\r\n && !(\r\n Component.prototype // native arrows don't have prototypes\r\n && Component.prototype.isReactComponent // special property\r\n )\r\n );\r\n}\r\n\r\nexport function isReactComponent(component) {\r\n return (\r\n isClassComponent(component) ||\r\n isFunctionalComponent(component)\r\n )\r\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport is from \"is\";\nimport React from 'react';\nimport shortid from 'shortid';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\nimport {isFunctionalComponent} from '../utils/react';\n\n/**\n * Node — wraps a single React child and registers it with the parent Tweener as a\n * tweenable element.\n *\n * On each render, `tweener.tweenRef(id, childStyle, initialMap)` is called. This\n * returns `{ style, ref }` which are spread onto the child: `style` contains the\n * current CSS for the initial render, and `ref` is a callback that gives the Tweener\n * the raw DOM node for subsequent direct writes (bypassing React entirely).\n *\n * Optionally, per-axis tween descriptor arrays can be provided via the `axes` /\n * `tweenLines` prop. Node then also calls `tweener.addScrollableAnim()` so the node\n * participates in scroll-driven animations without needing a separate `<Axis>`.\n *\n * `Node.div` and `Node.g` are convenience wrappers that pre-supply a `<div>` or\n * `<g>` child so consumers don't have to write the child element themselves.\n */\n\nfunction setTarget( anims, target ) {\n\treturn anims.map(\n\t\ttween => ({\n\t\t\t...tween,\n\t\t\ttarget\n\t\t})\n\t)\n}\n\nconst Node = React.forwardRef(( {\n\t children,\n\t id = React.useMemo(() => shortid.generate(), []),\n\t style, initial, pos, noRef, reset, tweener,\n\t isRoot,\n\t axes,\n\t refProp = \"nodeRef\",\n\t tweenLines = axes,\n\t tweenAxis = tweenLines,\n\t ...props\n }, ref ) => {\n\tlet µ = React.useRef({}).current,\n\t [parentTweener] = useVoodoo(true);\n\tparentTweener = tweener || parentTweener;\n\t\n\tif ( !parentTweener ) {\n\t\tconsole.error(\"[react-voodoo] No Tweener found in context — is there a parent ViewBox (useVoodoo) wrapping this Node?\")\n\t\treturn <React.Fragment/>;\n\t}\n\t// Register this node with the tweener. Returns { style, ref }:\n\t// style — current CSS computed from initial values; used for the first render\n\t// ref — callback that stores the DOM node in tweener._.refs[id] for direct writes\n\tlet twRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t pos, ref, noRef),\n\t axisItemsChange;\n\t\n\t\n\t// remove refs when unmount\n\tReact.useEffect(\n\t\t() => () => {\n\t\t\tif ( µ._tweenAxisObj ) {\n\t\t\t\tObject.keys(µ._tweenAxisObj)\n\t\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t}\n\t\t\tif ( µ._currentTweener ) {\n\t\t\t\tµ._currentTweener.rmTweenRef(µ.__tweenableId)\n\t\t\t\tµ._currentTweener.setRootRef(undefined);\n\t\t\t}\n\t\t\tdelete µ._currentTweener;\n\t\t\tdelete µ._tweenAxisObj;\n\t\t\tdelete µ._previousScrollable;\n\t\t},\n\t\t[]\n\t)\n\t// Detect whether the per-node axis descriptor changed. Reference-equality is\n\t// checked first (fast path); deepEqual is the fallback to avoid rebuilding the\n\t// timeline when the consumer passes a new array literal with identical contents.\n\taxisItemsChange = µ._tweenAxis !== tweenAxis && !(µ._tweenAxis && deepEqual(tweenAxis, µ._tweenAxis))\n\t\t|| (tweenAxis && !µ._tweenAxis);\n\tif ( axisItemsChange || µ._currentTweener !== parentTweener || µ._previousScrollable !== tweenAxis ) {\n\t\t\n\t\t// if items changes rm the old items\n\t\tif ( µ._currentTweener && axisItemsChange ) {\n\t\t\tµ._tweenAxisObj && Object.keys(µ._tweenAxisObj)\n\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t\n\t\t}\n\t\t//console.log(twRef, axisItemsChange, µ._tweenAxis, tweenAxis)\n\t\t\n\t\t// if tweener changes rm the node ref\n\t\tif ( µ._currentTweener && µ._currentTweener !== parentTweener ) {\n\t\t\tµ._currentTweener.rmTweenRef(id);\n\t\t}\n\t\t\n\t\t// if items changes reg the items on the tweener\n\t\tif ( axisItemsChange ) {\n\t\t\tµ._tweenAxis = tweenAxis;\n\t\t\tif ( tweenAxis && is.array(tweenAxis) )\n\t\t\t\tµ._tweenAxisObj = { scrollY: parentTweener.addScrollableAnim(setTarget(tweenAxis, id)) };\n\t\t\telse\n\t\t\t\tµ._tweenAxisObj = tweenAxis &&\n\t\t\t\t\tObject.keys(tweenAxis)\n\t\t\t\t\t .reduce(\n\t\t\t\t\t\t ( h, axe ) =>\n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t h[axe] = parentTweener.addScrollableAnim(setTarget(tweenAxis[axe], id), axe),\n\t\t\t\t\t\t\t\t\t h\n\t\t\t\t\t\t\t ), {});\n\t\t\ttwRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t\t\t pos, ref, noRef)\n\t\t}\n\t\t\n\t\t// After any tweener or axis change, force a fresh CSS snapshot so the child\n\t\t// receives accurate initial styles on this render even if the Tweener has\n\t\t// advanced the position since the last tweenRef call.\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };\n\n\t\tif ( props.hasOwnProperty(\"isRoot\") ) {\n\t\t\tµ._currentTweener && µ._currentTweener.setRootRef(undefined);\n\t\t\ttweener.setRootRef(id);\n\t\t}\n\t\t\n\t\tµ._currentTweener = parentTweener;\n\t\tµ._previousScrollable = tweenAxis;\n\t\t\n\t}\n\telse if ( twRef ) {\n\t\t// No structural change — still refresh style in case the Tweener advanced\n\t\t// (e.g. a running animation or scroll event) between renders.\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };\n\t}\n\t\n\tlet RefChild = React.Children.only(children);\n\t\n\tif ( RefChild && React.isValidElement(RefChild) ) {//todo\n\t\tµ._lastRef = twRef;\n\t\t\n\t\t// Functional components don't accept the standard `ref` prop unless they use\n\t\t// forwardRef. Pass the DOM-node callback under the named `refProp` instead\n\t\t// (defaults to \"nodeRef\") so the consumer can opt into ref forwarding manually.\n\t\tif ( isFunctionalComponent(RefChild.type) )\n\t\t\treturn <RefChild.type\n\t\t\t\t{...props}\n\t\t\t\t{...RefChild.props}\n\t\t\t\t{...twRef}\n\t\t\t\tref={undefined}\n\t\t\t\t{\n\t\t\t\t\t...{\n\t\t\t\t\t\t[refProp]: twRef.ref\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t/>;\n\n\t\treturn <RefChild.type\n\t\t\t{...props}\n\t\t\t{...RefChild.props}\n\t\t\t{...twRef}/>;\n\t\t\n\t}\n\telse {\n\t\tconsole.error(\"[react-voodoo] Node requires exactly one valid React element as a child. Node id:\", id)\n\t}\n\treturn <div>Invalid</div>;\n})\nexport default Node;\n\n// Convenience: animatable <div> wrapper — saves typing the child element boilerplate.\nNode.div = React.forwardRef(( { children, className, ...props }, ref ) => {\n\treturn <Node {...props} ref={ref}>\n\t\t<div className={className}>{children}</div>\n\t</Node>;\n})\n\n// Convenience: animatable SVG <g> wrapper for use inside <svg> trees.\nNode.g = React.forwardRef(( { children, className, ...props }, ref ) => {\n\treturn <Node {...props} ref={ref}>\n\t\t<g className={className}>{children}</g>\n\t</Node>;\n})\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport React from 'react';\nimport ReactDom from \"react-dom\";\nimport useVoodoo from \"../hooks/useVoodoo\";\nimport domUtils from \"../utils/dom\";\n\n/**\n * Draggable — captures pointer (touch / mouse) events and maps them to axis positions\n * on the parent Tweener hierarchy.\n *\n * On drag, it walks up the tweener tree via `_parentTweener` links (not the DOM) to\n * find all ancestor tweeners that have the requested axis. This supports nested\n * scrollable regions: the innermost tweener that is still in-bounds consumes the drag;\n * if it hits a bound the event falls through to the next ancestor.\n *\n * Dispatch flow:\n * dragstart → captures parent tweeners and starts the 16ms inertia loop\n * drag → computes delta as a fraction of scrollableWindow/scrollableArea,\n * calls inertia.hold(newPos) on the first tweener that is in-bounds\n * dropped → calls inertia.release() which computes the momentum arc and may\n * snap to the nearest waypoint\n */\nconst Draggable = React.forwardRef(( {\n\t children,\n\t Comp = 'div',\n\t nodeRef,\n\t items = [],\n\t xAxis, yAxis, yBoxRef,\n\t xBoxRef, yRef,\n\t yHook, xHook,\n\t tweener,\n\t mouseDrag = false,\n\t touchDrag = true,\n\t button = 0,\n\t ...props\n }, ref ) => {\n\tlet root = React.useRef(),\n\t µ = React.useRef({ root, _: {} }).current,\n\t [parentTweener] = useVoodoo(true),\n\t api = React.useMemo(\n\t\t () => ({\n\t\t\t \n\t\t\t /**\n\t\t\t * Traverse the tweener parent chain (not the DOM ancestry) and collect all\n\t\t\t * ancestor Tweener instances that could potentially consume scroll input.\n\t\t\t * The result is iterated during drag to find the first in-bounds tweener.\n\t\t\t */\n\t\t\t getScrollableNodes( node ) {\n\t\t\t\t let scrollable = [], parent = µ._parentTweener;\n\n\t\t\t\t while ( parent ) {\n\t\t\t\t\t scrollable.push(parent);\n\t\t\t\t\t parent = parent._parentTweener;\n\t\t\t\t }\n\n\t\t\t\t return scrollable\n\t\t\t },\n\t\t\t \n\t\t\t /**\n\t\t\t * Attach the touch/mouse event listeners to the root DOM node.\n\t\t\t * All drag state is captured in closure variables (dX, dY, cLock,\n\t\t\t * parents, parentsState) so individual handler functions stay small.\n\t\t\t */\n\t\t\t _registerScrollListeners() {\n\t\t\t\t let rootNode = µ.root?.current,\n\t\t\t\t {\n\t\t\t\t\t xAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener, xBoxRef, yBoxRef, button\n\t\t\t\t } = µ.props,\n\t\t\t\t lastStartTm,\n\t\t\t\t cLock, dX,\n\t\t\t\t parents,\n\t\t\t\t dY, parentsState, refWidth, refHeight,\n\t\t\t\t _ = tweener._;\n\t\t\t\t \n\t\t\t\t if ( rootNode ) {\n\t\t\t\t\t domUtils.addEvent(\n\t\t\t\t\t\t rootNode, µ._.dragList = {\n\t\t\t\t\t\t\t 'dragstart': ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x,\n\t\t\t\t\t\t\t\t y, i, style;\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t parents = api.getScrollableNodes(e.target);\n\t\t\t\t\t\t\t\t lastStartTm = Date.now();\n\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t parentsState = [];\n\t\t\t\t\t\t\t\t refWidth = (xBoxRef?.current || rootNode)?.offsetWidth;\n\t\t\t\t\t\t\t\t refHeight = (yBoxRef?.current || rootNode)?.offsetHeight;\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t pTweener._updateBox();\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //tweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t //e.preventDefault();\n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t 'click' : ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm &&\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t (lastStartTm - Date.now() > _.options.maxClickTm) ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dY) > _.options.maxClickOffset ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dX) > _.options.maxClickOffset\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t ) {\n\t\t\t\t\t\t\t\t\t e.preventDefault();\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t // drag: runs on every pointer move. Converts pixel offset to axis units,\n\t\t\t\t\t\t // applies dragDirectionLock, then dispatches to the first ancestor tweener\n\t\t\t\t\t\t // whose inertia.isInbound() returns true — preventing over-scroll propagation.\n\t\t\t\t\t\t 'drag' : ( e, touch, descr ) => {\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, xBox,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, yBox,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t dX = -(descr._lastPos.x - descr._startPos.x);\n\t\t\t\t\t\t\t\t dY = -(descr._lastPos.y - descr._startPos.y);\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm && ((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY) < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip tap & click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t else {\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t xDispatched = !dX;\n\t\t\t\t\t\t\t\t\t yDispatched = !dY;\n\t\t\t\t\t\t\t\t\t if ( _.options.dragDirectionLock ) {\n\t\t\t\t\t\t\t\t\t\t if ( cLock === \"Y\" || !cLock && Math.abs(dY * .5) > Math.abs(dX) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"Y\";\n\t\t\t\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t\t\t\t //xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t else if ( cLock === \"X\" || !cLock && Math.abs(dX * .5) > Math.abs(dY) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"X\";\n\t\t\t\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t\t\t\t //yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t\t if ( !x && !y )\n\t\t\t\t\t\t\t\t\t\t\t\t continue;\n\t\t\t\t\t\t\t\t\t\t\t if ( !parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t parentsState[i] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t x: x?.scrollPos,\n\t\t\t\t\t\t\t\t\t\t\t\t\t y: y?.scrollPos\n\t\t\t\t\t\t\t\t\t\t\t\t };\n\t\t\t\t\t\t\t\t\t\t\t\t x?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t y?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t xAxis && x && !x?.inertiaFrame && pTweener.applyInertia(x, xAxis);\n\t\t\t\t\t\t\t\t\t\t\t\t yAxis && y && !y?.inertiaFrame && pTweener.applyInertia(y, yAxis);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t if ( x ) {\n\t\t\t\t\t\t\t\t\t\t\t\t xBox = xBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refWidth\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.x\n\t\t\t\t\t\t\t\t\t\t\t\t deltaX = dX && (dX / xBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( xHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaX = xHook(deltaX);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t if ( y ) {\n\t\t\t\t\t\t\t\t\t\t\t\t yBox = yBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refHeight\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.y\n\t\t\t\t\t\t\t\t\t\t\t\t deltaY = dY && (dY / yBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( yHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaY = yHook(deltaY);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t if ( x && !xDispatched && deltaX && x?.inertia?.isInbound(parentsState[i].x + deltaX)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(xAxis, deltaX)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t x.inertia.hold(parentsState[i].x + deltaX);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].x = x.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t if ( y && !yDispatched && deltaY && y?.inertia?.isInbound(parentsState[i].y + deltaY)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(yAxis, deltaY)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t y.inertia.hold(parentsState[i].y + deltaY);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].y = y.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t if ( yDispatched && xDispatched ) {\n\t\t\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t //e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //dX = 0;\n\t\t\t\t\t\t\t\t\t //dY = 0;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t ,\n\t\t\t\t\t\t\t // dropped: fires when the pointer is released. Calls inertia.release() on each\n\t\t\t\t\t\t // ancestor tweener that was participating in the drag; inertia then computes\n\t\t\t\t\t\t // momentum and snaps to the nearest waypoint if configured.\n\t\t\t\t\t\t 'dropped': ( e, touch, descr ) => {\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, vX,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, vY,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t cLock = undefined;\n\t\t\t\t\t\t\t\t //lastStartTm = undefined;\n\t\t\t\t\t\t\t\t //document.body.style.userSelect = '';\n\t\t\t\t\t\t\t\t //document.body.style.touchAction = '';\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener && parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[xAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[yAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t //pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //else if ( is.element(tweener) ) {\n\t\t\t\t\t\t\t\t\t //\tcState = parentsState[i];\n\t\t\t\t\t\t\t\t\t //\tif ( cState ) {\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.x.release();\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.y.release();\n\t\t\t\t\t\t\t\t\t //\t}\n\t\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t if ( lastStartTm && !((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY)\n\t\t\t\t\t\t\t\t\t < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip\n\t\t\t\t\t\t\t\t // tap\n\t\t\t\t\t\t\t\t\t // &\n\t\t\t\t\t\t\t\t\t // click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t\t e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //else {\n\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t //lastStartTm = 0;\n\t\t\t\t\t\t\t\t parents = parentsState = null;\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t },\n\t\t\t\t\t\t null,\n\t\t\t\t\t\t _.options.enableMouseDrag || mouseDrag,\n\t\t\t\t\t\t touchDrag\n\t\t\t\t\t )\n\t\t\t\t\t µ._.doRegister = !!rootNode;\n\t\t\t\t }\n\t\t\t\t else {\n\t\t\t\t\t µ._.doRegister = true;\n\t\t\t\t }\n\t\t\t }\n\t\t\t \n\t\t }),\n\t\t []\n\t );\n\tReact.useEffect(\n\t\t() => {\n\t\t\tapi._registerScrollListeners();\n\t\t\treturn () => {\n\t\t\t\tlet node = µ.root?.current;\n\t\t\t\tif ( µ._.scrollEnabled ) {\n\t\t\t\t\tµ._.scrollEnabled = false;\n\t\t\t\t\t\n\t\t\t\t\tnode && µ._.dragList && domUtils.removeEvent(node\n\t\t\t\t\t\t, µ._.dragList)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( is.function(nodeRef) )\n\t\t\t\tnodeRef(root.current)\n\t\t\tif ( is.function(ref) )\n\t\t\t\tref(root.current)\n\t\t\telse if ( ref )\n\t\t\t\tref.current = root.current;\n\t\t},\n\t\t[nodeRef, ref]\n\t)\n\tµ.props = {\n\t\txAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener: tweener || parentTweener, xBoxRef, yBoxRef, button\n\t}\n\tµ._parentTweener = parentTweener;\n\treturn <Comp ref={root} {...props}>{children}</Comp>;\n})\nexport default Draggable;\n\nDraggable.div = ( props ) => {\n\treturn <Draggable {...props}/>;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport TweenerContext from \"../comps/TweenerContext\";\n\nexport default ()=>{\n\treturn React.useContext(TweenerContext)\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport Tweener from '../comps/Tweener';\nimport { isReactComponent } from '../utils/react';\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function asTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n options = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n if ( !BaseComponent ) {\n return function ( BaseComponent ) {\n return asTweener(BaseComponent, options)\n }\n }\n \n options = {\n wheelRatio : 5,\n maxClickTm : 200,\n maxClickOffset: 20,\n ...options,\n };\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <Tweener oProps={ props } forwardedRef={ ref }\n BaseComponent={ BaseComponent }\n tweenerOptions={ options }/>;\n });\n withRef.displayName = String.fromCharCode(0xD83E, 0xDDD9) + ( BaseComponent.displayName || BaseComponent.name );\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport is from \"is\";\n\nimport { isReactComponent } from '../utils/react';\nimport TweenerContext from \"../comps/TweenerContext\";\n\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function withTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n opts = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n \n if ( !( BaseComponent && ( BaseComponent.prototype instanceof React.Component || BaseComponent === React.Component ) ) ) {\n return function ( BaseComponent ) {\n return withTweener(BaseComponent, opts)\n }\n }\n \n class TweenerToProps extends React.Component {\n static displayName = ( BaseComponent.displayName || BaseComponent.name );\n \n render() {\n return <TweenerContext.Consumer>\n {\n tweener => {\n return <BaseComponent { ...this.props } tweener={ tweener }\n ref={ this.props.forwardedRef }/>;\n }\n }\n </TweenerContext.Consumer>;\n }\n }\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <TweenerToProps { ...props } forwardedRef={ ref }/>;\n });\n withRef.displayName = TweenerToProps.displayName;\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\nimport Axis from './comps/Axis';\nimport Context from './comps/TweenerContext';\nimport Node from './comps/Node';\nimport Draggable from './comps/Draggable';\nimport useVoodoo from './hooks/useVoodoo';\nimport useTweener from './hooks/useTweener';\nimport tweener from './spells/asTweener';\nimport child from './spells/withTweener';\nimport dom from './utils/dom.js';\nimport * as tools from './utils/tweenTools.js';\nimport * as _internalCssUtils from './utils/css/index.js';\n\nimport TweenAxis from \"tween-axis/dist/TweenAxisWasm\";\nimport * as D3Ease from \"d3-ease\";\n\nTweenAxis.EasingFunctions = D3Ease;\n\n@tweener\nclass Component extends React.Component {\n\trender() {\n\t\treturn this.props.children;\n\t}\n}\n\nexport {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\tuseVoodoo as hook,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom,\n\t_internalCssUtils\n};\nexport default {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\thook: useVoodoo,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom,\n\t_internalCssUtils\n};\n"],"names":["module","exports","walknSetExport","_target","path","value","i","fPath","split","target","length","Object","keys","default","__esModule","assign","_exports","require","any","bool","color","multi","number","ratio","svgAttr","props","units","unitsRe","RegExp","join","floatCut","Number","arguments","undefined","toFixed","expandShorthandProperty","property","type","childProps","properties","values","multiple","forEach","k","isShorthandProperty","isValidDeclaration","defaultUnits","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","opacity","saturate","sepia","defaultValue","release","twKey","tweenableMap","cssMap","dataMap","muxerMap","keepValues","tmpKey","pop","console","log","demuxOne","unitIndex","dkey","twVal","baseKey","data","box","unit","x","y","z","demux","key","tweenable","tmap","fkey","iValue","filters","ti","hasOwnProperty","substr","filter","muxOne","initials","noPropLock","seenUnits","match","is","unitKey","indexOf","realKey","parseFloat","mux","reOrder","tFnKey","baseData","fValue","u","_objectSpread","translateX","translateY","translateZ","scale","scaleZ","scaleX","scaleY","rotate","skewX","skewY","rotateX","rotateY","rotateZ","perspective","defaultBox","left","right","top","bottom","width","height","warn","transforms","transform","count","rKey","isString","Math","round","muxer","includes","push","slice","min","vect","rgba","r","g","b","a","alias","center","offset","v","nowhere","max","VALUES_REG","PARTS_REG","LENGTH_REG","parseValue","stringifyValue","isLength","toNum","toPx","cssShadowParser","str","parts","inset","last","nums","n","map","_nums","_slicedToArray","offsetX","offsetY","blurRadius","spreadRadius","obj","_ref","_ref$offsetX","_ref$offsetY","_ref$blurRadius","s","trim","test","isNaN","parse","stringify","arr","defaultMuxers","shadowMap","shadows","tmpValue","String","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","d","definition","o","defineProperty","enumerable","get","prop","prototype","call","Symbol","toStringTag","React","re_cssValueWithUnit","cssAdd","val1","val2","units1","units2","remap","result","_len","argz","Array","_key","apply","concat","cssMult","val","items","start","item","from","duration","withOffset","iDuration","inverseValues","reduce","h","reverse","MultiCssProps","addCss","_len2","sources","_key2","source","shift","_target$key","_toConsumableArray","addAllType","v1","v2","values1","values2","parseInt","extractCss","inverse","css","shiftTransforms","t","unshift","backgroundColor","boxShadow","textShadow","typed","cssDemux","cssDemuxers","marginTop","marginLeft","marginRight","marginBottom","paddingTop","paddingLeft","paddingRight","paddingBottom","borderRadius","borderTopColor","borderLeftColor","borderRightColor","borderBottomColor","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","transformOrigin","zIndex","fill","stroke","strokeWidth","strokeOpacity","fillOpacity","strokeDashoffset","cx","cy","rx","ry","x1","y1","x2","y2","getMuxerTypeOfProperty","types","clearTweenableValue","cssKey","_muxerMap$path$","muxToCss","demuxers","deMuxTween","tween","deMuxedTween","fTween","deMuxLine","tweenLine","allPropsById","twAxis","line","demuxedTween","id","query","prefixes","D3_TO_WASM_EASE","easeLinear","easeQuadIn","easeQuadOut","easeQuadInOut","easeCubicIn","easeCubicOut","easeCubicInOut","easeExpIn","easeExpOut","easeExpInOut","_fnToWasmId","recyclableTweenAxis","CssTweenAxis","_tweenAxis","cfg","scope","_classCallCheck","recyled","localLength","mount","Axis","_possibleConstructorReturn","_this","_callSuper","_inherits","_createClass","propKey","this","__wasmSlotByKey","__wasmSlotList","__wasmSlotCount","slot","to","factory","_superPropGet","entering","moving","leaving","wasmEasingId","easeFn","Map","efs","tweenAxis","name","set","_getWasmEasingId","__cMaxKey","_getOrCreateWasmSlot","addWasmApply","pos","reset","noEvents","clearScope","_this$__wasmSlotList$","targetScope","getScopeValue","__cPos","__cIndex","__marks","__marksLength","__marksKeys","__activeProcess","__outgoing","__incoming","__processors","__config","resetWasm","isBrowser","window","_dom","DocumentTouch","document","matchMedia","matches","prefix","navigator","appVersion","userAgent","dashedPrefix","__","onPageHided","onPageShown","dragging","dragEnabled","dragEnabledDesc","fingers","nbFingers","dragstartAnywhere","e","finger","desc","me","Dom","addEvent","dragAnywhere","dropAnywhere","dropWithoutClick","changedTouches","ln","identifier","_startPos","pageX","pageY","_startTs","timeStamp","_lastPos","dragstart","stopped","drag","preventNextClick","preventDefault","stopPropagation","stopImmediatePropagation","removeEvent","prevent","_this2","mouseDrag","dropped","getDraggable","node","touchDrag","locks","dragEnd","freeDraggable","splice","fn","bubble","addEventListener","attachEvent","related","removeEventListener","detachEvent","rmDragFn","object","passive","elem","dims","offsetWidth","offsetHeight","offsetTop","offsetLeft","offsetParent","findReactParents","element","fiberNode","comps","startsWith","return","stateNode","parentNode","easingFn","signOf","NaN","abs","floor","Inertia","opt","_","conf","constructor","config","active","refFPS","currentStop","lastInertiaPos","stops","disabled","wayPoints","inertiaFn","easePolyOut","targetWayPointIndex","_detectCurrentSnap","willStop","willSnap","onStop","onSnap","shouldLoop","baseTS","startTS","Date","now","lastVelocity","lastIVelocity","lastAccel","posDiff","loopsDiff","holding","inertia","nextPos","loop","delta","lastHoldPos","sinceLastPos","iVel","lastBaseTs","lastBasePos","targetDist","targetWayPoint","bounds","_$conf$willEnd","_$conf","velSign","loopsTarget","loopsVelSum","targetDuration","pow","applyInertia","snapToBounds","inertiaStartTm","inertiaLastTm","_doSnap","willEnd","nextValue","at","currentWayPoint","currentWayPointIndex","loopDist","tm","forceSnap","mid","maxDuration","lPos","loopDec","gravity","maxJump","infinite","_defineProperty","_live","lastTm","isBrowserSide","Function","isArray","_running","toStyleProp","Runner","_tick","cpos","cb","setTimeout","Tweener","_React$Component","_props$tweenerOptions","_props$tweenerOptions2","_props$tweenerOptions3","current","activeInertia","_inertiaRaf","cancelAnimationFrame","scrollLeft","update","scrollTop","requestAnimationFrame","_updateNodeInertia","refs","muxByTarget","__isTweener","_rafLoop","bind","rootRef","forwardedRef","options","maxClickTm","maxClickOffset","tweenerOptions","tweenRefCSS","tweenRefs","tweenRefMaps","iMapOrigin","tweenRefInitialData","tweenEnabled","tweenRefOrigin","tweenRefOriginCss","muxDataByTarget","tweenRefDemuxed","tweenRefTargets","runningAnims","scrollHook","defaultAxesPosition","ref","onResize","_$rootRef","_$rootRef$windowDidRe","_updateBox","_updateTweenRefs","windowDidResize","iStyle","iMap","noref","mapReset","deepEqual","_updateTweenRef","style","targets","tweenRef","postPone","pureCss","_this3","m","updateRefStyle","_this$_$refs$id","_this$_$refs$id2","nodeType","anim","then","sl","fail","_this4","keepResults","anims","initial","displayName","Promise","resolve","run","rkey","destroy","live","_this5","p","axe","_$defaultAxesPosition","_inertia$setBounds","_inertia$setBounds2","_this6","_inertia","_ref$scrollableArea","scrollableArea","_scrollableArea","_scrollableBounds","scrollableBounds","_scrollableWindow","scrollableWindow","defaultPosition","scrollFirst","dim","axes","scrollPos","targetPos","nextDescr","scrollTo","ease","updateConf","setBounds","_this7","initialScrollPos","_this8","state","axis","newPos","_this9","ms","reject","_this9$axes","_this9$axes2","_this9$axes3","oldPos","setPos","_$rootRef2","_$rootRef2$componentD","axisDidScroll","componentDidScroll","_runScrollGoTo","goTo","_this9$axes4","_dim$inertia","_this10","_getAxis","found","_dim$inertia2","tl","_this11","easing","tick","_this11$axes","_this11$axes2","_this11$axes3","_$rootRef$current","componentShouldScroll","axisId","listener","byId","_scrollWatcherByAxis","index","watchers","_$rootRef3","_$rootRef3$componentD","_this12","inertiaFrame","_this13","findIndex","scrollWidth","scrollHeight","getRootNode","inited","force","swap","_swap","getTweenableRef","setAttribute","_this14","clearTimeout","_step","_iterator","_createForOfIteratorHelper","done","err","f","_this15","_static","rendered","scrollableAnim","addScrollableAnim","prevProps","prevState","_this16","_this$props","BaseComponent","oProps","TweenerContext","Consumer","parentTweener","_parentTweener","Provider","_extends","tweener","RootNodeComp","nodeRef","lastTweener","doUseParentTweener","pTweener","_pTweener","tw","isMountedFromHook","ViewBox","children","_objectWithoutProperties","_excluded","componentDidMount","_lastTweener$current","componentWillUnmount","_lastTweener$current2","_lastTweener$current3","_lastTweener$current4","_ref$axe","size","_ref$items","µ","_useVoodoo","useVoodoo","previousAxis","previousInertia","previousBounds","previousScrollableWindow","initAxis","previousTweener","previousTweens","lastTL","rmScrollableAnim","previousScrollable","isFunctionalComponent","Component","isReactComponent","component","isClassComponent","setTarget","Node","_ref$id","shortid","noRef","isRoot","_ref$refProp","refProp","_ref$tweenLines","tweenLines","_ref$tweenAxis","error","axisItemsChange","twRef","_tweenAxisObj","_currentTweener","rmTweenRef","__tweenableId","setRootRef","_previousScrollable","scrollY","RefChild","only","_lastRef","div","_ref3","className","_excluded2","_ref4","_excluded3","Draggable","_ref$Comp","Comp","xAxis","yAxis","yBoxRef","xBoxRef","yHook","yRef","xHook","_ref$mouseDrag","_ref$touchDrag","_ref$button","button","root","api","getScrollableNodes","scrollable","parent","_registerScrollListeners","_µ$root","lastStartTm","cLock","dX","parents","dY","parentsState","refWidth","refHeight","rootNode","_µ$props","domUtils","dragList","touch","descr","_ref2","MouseEvent","_pTweener$axes","_pTweener$axes2","deltaX","xDispatched","xBox","deltaY","yDispatched","yBox","dragDirectionLock","_pTweener$axes3","_pTweener$axes4","_x4","_y4","_x","_y","_x2","_y2","_x3","_y3","startMove","isInbound","hold","_pTweener$axes5","_pTweener$axes6","cancelable","enableMouseDrag","doRegister","_µ$root2","scrollEnabled","SimpleObjectProto","asTweener","wheelRatio","withRef","fromCharCode","withTweener","opts","TweenerToProps","TweenAxis","D3Ease","_class","child","useTweener","hook","tools","Context","dom","_internalCssUtils"],"sourceRoot":""}
|