{"version":3,"mappings":"kiGACA,MAAMA,GAAiB,OAAO,UAAU,SASxC,SAASC,GAAQC,EAAK,CACpB,OAAQF,GAAe,KAAKE,CAAG,EAAC,CAC9B,IAAK,iBACL,IAAK,qBACL,IAAK,wBACH,MAAO,GACT,QACE,OAAOC,GAAaD,EAAK,KAAK,CACjC,CACH,CAQA,SAASE,GAAUF,EAAKG,EAAW,CACjC,OAAOL,GAAe,KAAKE,CAAG,IAAM,WAAWG,CAAS,GAC1D,CASA,SAASC,GAAaJ,EAAK,CACzB,OAAOE,GAAUF,EAAK,YAAY,CACpC,CASA,SAASK,GAAWL,EAAK,CACvB,OAAOE,GAAUF,EAAK,UAAU,CAClC,CASA,SAASM,GAAeN,EAAK,CAC3B,OAAOE,GAAUF,EAAK,cAAc,CACtC,CASA,SAASO,GAASP,EAAK,CACrB,OAAOE,GAAUF,EAAK,QAAQ,CAChC,CASA,SAASQ,GAAYR,EAAK,CACxB,OAAOA,IAAQ,MAAS,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,UACpE,CASA,SAASS,GAAcT,EAAK,CAC1B,OAAOE,GAAUF,EAAK,QAAQ,CAChC,CASA,SAASU,GAAQV,EAAK,CACpB,OAAO,OAAO,MAAU,KAAeC,GAAaD,EAAK,KAAK,CAChE,CASA,SAASW,GAAUX,EAAK,CACtB,OAAO,OAAO,QAAY,KAAeC,GAAaD,EAAK,OAAO,CACpE,CASA,SAASY,GAASZ,EAAK,CACrB,OAAOE,GAAUF,EAAK,QAAQ,CAChC,CAMA,SAASa,GAAWb,EAAK,CAEvB,MAAO,GAAQA,GAAOA,EAAI,MAAQ,OAAOA,EAAI,MAAS,WACxD,CASA,SAASc,GAAiBd,EAAK,CAC7B,OAAOS,GAAcT,CAAG,GAAK,gBAAiBA,GAAO,mBAAoBA,GAAO,oBAAqBA,CACvG,CASA,SAASe,GAAMf,EAAK,CAClB,OAAO,OAAOA,GAAQ,UAAYA,IAAQA,CAC5C,CAUA,SAASC,GAAaD,EAAKgB,EAAM,CAC/B,GAAI,CACF,OAAOhB,aAAegB,CACvB,MAAY,CACX,MAAO,EACR,CACH,CCpJA,SAASC,GAAYC,EAAK,CACxB,OAAOA,GAAOA,EAAI,MAAQ,KAAOA,EAAM,MACzC,CAGA,MAAMC,GACH,OAAO,YAAc,UAAYF,GAAY,UAAU,GAEvD,OAAO,QAAU,UAAYA,GAAY,MAAM,GAC/C,OAAO,MAAQ,UAAYA,GAAY,IAAI,GAC3C,OAAO,QAAU,UAAYA,GAAY,MAAM,GAC/C,UAAY,CACX,OAAO,IACX,EAAM,GACJ,GAKF,SAASG,IAAkB,CACzB,OAAOD,EACT,CAaA,SAASE,GAAmBC,EAAMC,EAASL,EAAK,CAC9C,MAAMM,EAAON,GAAOC,GACdM,EAAcD,EAAI,WAAaA,EAAI,YAAc,GAEvD,OADkBC,EAAWH,CAAI,IAAMG,EAAWH,CAAI,EAAIC,EAAO,EAEnE,CC9DA,MAAMG,GAASN,GAAe,EAExBO,GAA4B,GAQlC,SAASC,GACPC,EACAC,EAAU,CAAE,EACZ,CAMA,GAAI,CACF,IAAIC,EAAcF,EAClB,MAAMG,EAAsB,EACtBC,EAAM,GACZ,IAAIC,EAAS,EACTC,EAAM,EACV,MAAMC,EAAY,MACZC,EAAYD,EAAU,OAC5B,IAAIE,EACJ,MAAMC,EAAW,MAAM,QAAQT,CAAO,EAAIA,EAAUA,EAAQ,SACtDU,EAAmB,CAAC,MAAM,QAAQV,CAAO,GAAKA,EAAQ,iBAAoBH,GAEhF,KAAOI,GAAeG,IAAWF,IAC/BM,EAAUG,GAAqBV,EAAaQ,CAAQ,EAKhD,EAAAD,IAAY,QAAWJ,EAAS,GAAKC,EAAMF,EAAI,OAASI,EAAYC,EAAQ,QAAUE,KAI1FP,EAAI,KAAKK,CAAO,EAEhBH,GAAOG,EAAQ,OACfP,EAAcA,EAAY,WAG5B,OAAOE,EAAI,QAAO,EAAG,KAAKG,CAAS,CACpC,MAAa,CACZ,MAAO,WACR,CACH,CAOA,SAASK,GAAqBC,EAAIH,EAAU,CAC1C,MAAMV,EAAOa,EAIPT,EAAM,GACZ,IAAI9B,EACAwC,EACAC,EACAC,EACAC,EAEJ,GAAI,CAACjB,GAAQ,CAACA,EAAK,QACjB,MAAO,GAGTI,EAAI,KAAKJ,EAAK,QAAQ,YAAa,GAGnC,MAAMkB,EACJR,GAAYA,EAAS,OACjBA,EAAS,OAAOS,GAAWnB,EAAK,aAAamB,CAAO,CAAC,EAAE,IAAIA,GAAW,CAACA,EAASnB,EAAK,aAAamB,CAAO,CAAC,CAAC,EAC3G,KAEN,GAAID,GAAgBA,EAAa,OAC/BA,EAAa,QAAQE,GAAe,CAClChB,EAAI,KAAK,IAAIgB,EAAY,CAAC,CAAC,KAAKA,EAAY,CAAC,CAAC,IAAI,CACxD,CAAK,UAEGpB,EAAK,IACPI,EAAI,KAAK,IAAIJ,EAAK,EAAE,EAAE,EAIxB1B,EAAY0B,EAAK,UACb1B,GAAaI,GAASJ,CAAS,EAEjC,IADAwC,EAAUxC,EAAU,MAAM,KAAK,EAC1B2C,EAAI,EAAGA,EAAIH,EAAQ,OAAQG,IAC9Bb,EAAI,KAAK,IAAIU,EAAQG,CAAC,CAAC,EAAE,EAI/B,MAAMI,EAAe,CAAC,aAAc,OAAQ,OAAQ,QAAS,KAAK,EAClE,IAAKJ,EAAI,EAAGA,EAAII,EAAa,OAAQJ,IACnCF,EAAMM,EAAaJ,CAAC,EACpBD,EAAOhB,EAAK,aAAae,CAAG,EACxBC,GACFZ,EAAI,KAAK,IAAIW,CAAG,KAAKC,CAAI,IAAI,EAGjC,OAAOZ,EAAI,KAAK,EAAE,CACpB,CAKA,SAASkB,IAAkB,CACzB,GAAI,CACF,OAAOzB,GAAO,SAAS,SAAS,IACjC,MAAY,CACX,MAAO,EACR,CACH,CAmBA,SAAS0B,GAAcC,EAAU,CAC/B,OAAI3B,GAAO,UAAYA,GAAO,SAAS,cAC9BA,GAAO,SAAS,cAAc2B,CAAQ,EAExC,IACT,CCnJA,MAAMC,WAAoB,KAAM,CAG7B,YAAaC,EAASC,EAAW,OAAQ,CACxC,MAAMD,CAAO,EAAE,KAAK,QAAUA,EAC9B,KAAK,KAAO,WAAW,UAAU,YAAY,KAI7C,OAAO,eAAe,KAAM,WAAW,SAAS,EAChD,KAAK,SAAWC,CACjB,CACH,CCVA,MAAMC,GAAY,kEAElB,SAASC,GAAgBC,EAAU,CACjC,OAAOA,IAAa,QAAUA,IAAa,OAC7C,CAWA,SAASC,GAAYC,EAAKC,EAAe,GAAO,CAC9C,KAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,KAAAC,EAAM,KAAAC,EAAM,UAAAC,EAAW,SAAAR,EAAU,UAAAS,CAAW,EAAGP,EACnE,MACE,GAAGF,CAAQ,MAAMS,CAAS,GAAGN,GAAgBG,EAAO,IAAIA,CAAI,GAAK,EAAE,IAC/DF,CAAI,GAAGG,EAAO,IAAIA,CAAI,GAAK,EAAE,IAAIF,GAAO,GAAGA,CAAI,GAAU,GAAGG,CAAS,EAE7E,CAQA,SAASE,GAAcC,EAAK,CAC1B,MAAMC,EAAQd,GAAU,KAAKa,CAAG,EAEhC,GAAI,CAACC,EACH,MAAM,IAAIjB,GAAY,uBAAuBgB,CAAG,EAAE,EAGpD,KAAM,CAACX,EAAUS,EAAWH,EAAO,GAAIF,EAAMG,EAAO,GAAIM,CAAQ,EAAID,EAAM,MAAM,CAAC,EACjF,IAAIP,EAAO,GACPG,EAAYK,EAEhB,MAAMC,EAAQN,EAAU,MAAM,GAAG,EAMjC,GALIM,EAAM,OAAS,IACjBT,EAAOS,EAAM,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAClCN,EAAYM,EAAM,OAGhBN,EAAW,CACb,MAAMO,EAAeP,EAAU,MAAM,MAAM,EACvCO,IACFP,EAAYO,EAAa,CAAC,EAE7B,CAED,OAAOC,GAAkB,CAAE,KAAAZ,EAAM,KAAAE,EAAM,KAAAD,EAAM,UAAAG,EAAW,KAAAD,EAAM,SAAUP,EAAW,UAAAS,CAAW,EAChG,CAEA,SAASO,GAAkBC,EAAY,CACrC,MAAO,CACL,SAAUA,EAAW,SACrB,UAAWA,EAAW,WAAa,GACnC,KAAMA,EAAW,MAAQ,GACzB,KAAMA,EAAW,KACjB,KAAMA,EAAW,MAAQ,GACzB,KAAMA,EAAW,MAAQ,GACzB,UAAWA,EAAW,SAC1B,CACA,CAEA,SAASC,GAAYhB,EAAK,CACxB,GAAI,EAAE,OAAO,iBAAqB,KAAe,kBAC/C,OAGF,KAAM,CAAE,KAAAK,EAAM,UAAAC,EAAW,SAAAR,CAAQ,EAAKE,EAStC,GAP2B,CAAC,WAAY,YAAa,OAAQ,WAAW,EACrD,QAAQiB,GAAa,CACtC,GAAI,CAACjB,EAAIiB,CAAS,EAChB,MAAM,IAAIxB,GAAY,uBAAuBwB,CAAS,UAAU,CAEtE,CAAG,EAEG,CAACX,EAAU,MAAM,OAAO,EAC1B,MAAM,IAAIb,GAAY,yCAAyCa,CAAS,EAAE,EAG5E,GAAI,CAACT,GAAgBC,CAAQ,EAC3B,MAAM,IAAIL,GAAY,wCAAwCK,CAAQ,EAAE,EAG1E,GAAIO,GAAQ,MAAM,SAASA,EAAM,EAAE,CAAC,EAClC,MAAM,IAAIZ,GAAY,oCAAoCY,CAAI,EAAE,EAGlE,MAAO,EACT,CAGA,SAASa,GAAQC,EAAM,CACrB,MAAMJ,EAAa,OAAOI,GAAS,SAAWX,GAAcW,CAAI,EAAIL,GAAkBK,CAAI,EAC1F,OAAAH,GAAYD,CAAU,EACfA,CACT,CCtGA,MAAMK,GAAS,iBAETC,GAAiB,CAAC,QAAS,OAAQ,OAAQ,QAAS,MAAO,SAAU,OAAO,EAQlF,SAASC,GAAeC,EAAU,CAChC,GAAI,EAAE,YAAajE,IACjB,OAAOiE,EAAQ,EAGjB,MAAMC,EAAkBlE,GAAW,QAC7BmE,EAAgB,GAGtBJ,GAAe,QAAQK,GAAS,CAE9B,MAAMC,EACJH,EAAgBE,CAAK,GAAMF,EAAgBE,CAAK,EAAI,oBAClDA,KAASF,GAAmBG,IAC9BF,EAAcC,CAAK,EAAIF,EAAgBE,CAAK,EAC5CF,EAAgBE,CAAK,EAAIC,EAE/B,CAAG,EAED,GAAI,CACF,OAAOJ,EAAQ,CACnB,QAAY,CAER,OAAO,KAAKE,CAAa,EAAE,QAAQC,GAAS,CAC1CF,EAAgBE,CAAK,EAAID,EAAcC,CAAK,CAClD,CAAK,CACF,CACH,CAEA,SAASE,IAAa,CACpB,IAAIC,EAAU,GACd,MAAMC,EAAS,CACb,OAAQ,IAAM,CACZD,EAAU,EACX,EACD,QAAS,IAAM,CACbA,EAAU,EACX,CACL,EAEE,OAAK,OAAO,iBAAqB,KAAe,iBAC9CR,GAAe,QAAQ5D,GAAQ,CAE7BqE,EAAOrE,CAAI,EAAI,IAAIsE,IAAS,CACtBF,GACFP,GAAe,IAAM,CACnBhE,GAAW,QAAQG,CAAI,EAAE,GAAG2D,EAAM,IAAI3D,CAAI,KAAM,GAAGsE,CAAI,CACnE,CAAW,CAEX,CACA,CAAK,EAEDV,GAAe,QAAQ5D,GAAQ,CAC7BqE,EAAOrE,CAAI,EAAI,MACrB,CAAK,EAGIqE,CACT,CAGA,IAAIA,EACC,OAAO,iBAAqB,KAAe,iBAC9CA,EAAStE,GAAmB,SAAUoE,EAAU,EAEhDE,EAASF,GAAU,ECrErB,SAASI,GAASvB,EAAKwB,EAAM,EAAG,CAC9B,OAAI,OAAOxB,GAAQ,UAAYwB,IAAQ,GAGhCxB,EAAI,QAAUwB,EAFZxB,EAEwB,GAAGA,EAAI,MAAM,EAAGwB,CAAG,CAAC,KACvD,CAoDA,SAASC,GAASC,EAAOC,EAAW,CAClC,GAAI,CAAC,MAAM,QAAQD,CAAK,EACtB,MAAO,GAGT,MAAME,EAAS,GAEf,QAASpD,EAAI,EAAGA,EAAIkD,EAAM,OAAQlD,IAAK,CACrC,MAAMqD,EAAQH,EAAMlD,CAAC,EACrB,GAAI,CACFoD,EAAO,KAAK,OAAOC,CAAK,CAAC,CAC1B,MAAW,CACVD,EAAO,KAAK,8BAA8B,CAC3C,CACF,CAED,OAAOA,EAAO,KAAKD,CAAS,CAC9B,CAUA,SAASG,GACPD,EACAE,EACAC,EAA0B,GAC1B,CACA,OAAK/F,GAAS4F,CAAK,EAIfvF,GAASyF,CAAO,EACXA,EAAQ,KAAKF,CAAK,EAEvB5F,GAAS8F,CAAO,EACXC,EAA0BH,IAAUE,EAAUF,EAAM,SAASE,CAAO,EAGtE,GAVE,EAWX,CAYA,SAASE,GACPC,EACAC,EAAW,CAAE,EACbH,EAA0B,GAC1B,CACA,OAAOG,EAAS,KAAKJ,GAAWD,GAAkBI,EAAYH,EAASC,CAAuB,CAAC,CACjG,CCjHA,SAASI,GAAKC,EAAQrF,EAAMsF,EAAoB,CAC9C,GAAI,EAAEtF,KAAQqF,GACZ,OAGF,MAAME,EAAWF,EAAOrF,CAAI,EACtBwF,EAAUF,EAAmBC,CAAQ,EAI3C,GAAI,OAAOC,GAAY,WACrB,GAAI,CACFC,GAAoBD,EAASD,CAAQ,CACtC,MAAa,CAGb,CAGHF,EAAOrF,CAAI,EAAIwF,CACjB,CASA,SAASE,GAAyB9F,EAAKI,EAAM6E,EAAO,CAClD,OAAO,eAAejF,EAAKI,EAAM,CAE/B,MAAO6E,EACP,SAAU,GACV,aAAc,EAClB,CAAG,CACH,CASA,SAASY,GAAoBD,EAASD,EAAU,CAC9C,MAAMI,EAAQJ,EAAS,WAAa,GACpCC,EAAQ,UAAYD,EAAS,UAAYI,EACzCD,GAAyBF,EAAS,sBAAuBD,CAAQ,CACnE,CASA,SAASK,GAAoBC,EAAM,CACjC,OAAOA,EAAK,mBACd,CAQA,SAASC,GAAUC,EAAQ,CACzB,OAAO,OAAO,KAAKA,CAAM,EACtB,IAAIzE,GAAO,GAAG,mBAAmBA,CAAG,CAAC,IAAI,mBAAmByE,EAAOzE,CAAG,CAAC,CAAC,EAAE,EAC1E,KAAK,GAAG,CACb,CAUA,SAAS0E,GAAqBnB,EAE7B,CACC,GAAIpG,GAAQoG,CAAK,EACf,MAAO,CACL,QAASA,EAAM,QACf,KAAMA,EAAM,KACZ,MAAOA,EAAM,MACb,GAAGoB,GAAiBpB,CAAK,CAC/B,EACS,GAAIzF,GAAQyF,CAAK,EAAG,CACzB,MAAMqB,EAEP,CACG,KAAMrB,EAAM,KACZ,OAAQsB,GAAqBtB,EAAM,MAAM,EACzC,cAAesB,GAAqBtB,EAAM,aAAa,EACvD,GAAGoB,GAAiBpB,CAAK,CAC/B,EAEI,OAAI,OAAO,YAAgB,KAAelG,GAAakG,EAAO,WAAW,IACvEqB,EAAO,OAASrB,EAAM,QAGjBqB,CACX,KACI,QAAOrB,CAEX,CAGA,SAASsB,GAAqBC,EAAQ,CACpC,GAAI,CACF,OAAO/G,GAAU+G,CAAM,EAAI9F,GAAiB8F,CAAM,EAAI,OAAO,UAAU,SAAS,KAAKA,CAAM,CAC5F,MAAa,CACZ,MAAO,WACR,CACH,CAGA,SAASH,GAAiBrG,EAAK,CAC7B,GAAI,OAAOA,GAAQ,UAAYA,IAAQ,KAAM,CAC3C,MAAMyG,EAAiB,GACvB,UAAWC,KAAY1G,EACjB,OAAO,UAAU,eAAe,KAAKA,EAAK0G,CAAQ,IACpDD,EAAeC,CAAQ,EAAK1G,EAAM0G,CAAQ,GAG9C,OAAOD,CACX,KACI,OAAO,EAEX,CAOA,SAASE,GAA+BC,EAAWC,EAAY,GAAI,CACjE,MAAMC,EAAO,OAAO,KAAKV,GAAqBQ,CAAS,CAAC,EAGxD,GAFAE,EAAK,KAAI,EAEL,CAACA,EAAK,OACR,MAAO,uBAGT,GAAIA,EAAK,CAAC,EAAE,QAAUD,EACpB,OAAOlC,GAASmC,EAAK,CAAC,EAAGD,CAAS,EAGpC,QAASE,EAAeD,EAAK,OAAQC,EAAe,EAAGA,IAAgB,CACrE,MAAMC,EAAaF,EAAK,MAAM,EAAGC,CAAY,EAAE,KAAK,IAAI,EACxD,GAAI,EAAAC,EAAW,OAASH,GAGxB,OAAIE,IAAiBD,EAAK,OACjBE,EAEFrC,GAASqC,EAAYH,CAAS,CACtC,CAED,MAAO,EACT,CAQA,SAASI,GAAkBC,EAAY,CAOrC,OAAOC,GAAmBD,EAHH,IAAI,GAGyB,CACtD,CAEA,SAASC,GAAmBD,EAAYE,EAAgB,CACtD,GAAI7H,GAAc2H,CAAU,EAAG,CAE7B,MAAMG,EAAUD,EAAe,IAAIF,CAAU,EAC7C,GAAIG,IAAY,OACd,OAAOA,EAGT,MAAMC,EAAc,GAEpBF,EAAe,IAAIF,EAAYI,CAAW,EAE1C,UAAW5F,KAAO,OAAO,KAAKwF,CAAU,EAClC,OAAOA,EAAWxF,CAAG,EAAM,MAC7B4F,EAAY5F,CAAG,EAAIyF,GAAmBD,EAAWxF,CAAG,EAAG0F,CAAc,GAIzE,OAAOE,CACR,CAED,GAAI,MAAM,QAAQJ,CAAU,EAAG,CAE7B,MAAMG,EAAUD,EAAe,IAAIF,CAAU,EAC7C,GAAIG,IAAY,OACd,OAAOA,EAGT,MAAMC,EAAc,GAEpB,OAAAF,EAAe,IAAIF,EAAYI,CAAW,EAE1CJ,EAAW,QAASK,GAAS,CAC3BD,EAAY,KAAKH,GAAmBI,EAAMH,CAAc,CAAC,CAC/D,CAAK,EAEME,CACR,CAED,OAAOJ,CACT,CC5OA,MAAMM,GAAyB,GAEzBC,GAAuB,kBAS7B,SAASC,MAAqBC,EAAS,CACrC,MAAMC,EAAgBD,EAAQ,KAAK,CAACE,EAAGC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,CAAC,EAAE,IAAIC,GAAKA,EAAE,CAAC,CAAC,EAEvE,MAAO,CAACC,EAAOC,EAAY,IAAM,CAC/B,MAAMC,EAAS,GACTC,EAAQH,EAAM,MAAM;AAAA,CAAI,EAE9B,QAASpG,EAAIqG,EAAWrG,EAAIuG,EAAM,OAAQvG,IAAK,CAC7C,MAAMwG,EAAOD,EAAMvG,CAAC,EAKpB,GAAIwG,EAAK,OAAS,KAChB,SAKF,MAAMC,EAAcZ,GAAqB,KAAKW,CAAI,EAAIA,EAAK,QAAQX,GAAsB,IAAI,EAAIW,EAIjG,GAAI,CAAAC,EAAY,MAAM,YAAY,EAIlC,WAAWC,KAAUV,EAAe,CAClC,MAAMW,EAAQD,EAAOD,CAAW,EAEhC,GAAIE,EAAO,CACTL,EAAO,KAAKK,CAAK,EACjB,KACD,CACF,CAED,GAAIL,EAAO,QAAUV,GACnB,MAEH,CAED,OAAOgB,GAA4BN,CAAM,CAC7C,CACA,CAQA,SAASO,GAAkCC,EAAa,CACtD,OAAI,MAAM,QAAQA,CAAW,EACpBhB,GAAkB,GAAGgB,CAAW,EAElCA,CACT,CAQA,SAASF,GAA4BR,EAAO,CAC1C,GAAI,CAACA,EAAM,OACT,MAAO,GAGT,MAAMW,EAAaX,EAAM,MAAM,EAAGR,EAAsB,EAElDoB,EAAoBD,EAAWA,EAAW,OAAS,CAAC,EAAE,SAExDC,GAAqB,gBAAgB,KAAKA,CAAiB,GAC7DD,EAAW,IAAG,EAIhBA,EAAW,QAAO,EAElB,MAAME,EAAqBF,EAAWA,EAAW,OAAS,CAAC,EAAE,SAE7D,OAAIE,GAAsB,kCAAkC,KAAKA,CAAkB,GACjFF,EAAW,IAAG,EAGTA,EAAW,IAAIJ,IAAU,CAC9B,GAAGA,EACH,SAAUA,EAAM,UAAYI,EAAWA,EAAW,OAAS,CAAC,EAAE,SAC9D,SAAUJ,EAAM,UAAY,GAC7B,EAAC,CACJ,CAEA,MAAMO,GAAsB,cAK5B,SAASC,GAAgBC,EAAI,CAC3B,GAAI,CACF,MAAI,CAACA,GAAM,OAAOA,GAAO,WAChBF,GAEFE,EAAG,MAAQF,EACnB,MAAW,CAGV,OAAOA,EACR,CACH,CCtHA,MAAMtI,GAASN,GAAe,EAwD9B,SAAS+I,IAAgB,CACvB,GAAI,EAAE,UAAWzI,IACf,MAAO,GAGT,GAAI,CACF,WAAI,QACJ,IAAI,QAAQ,wBAAwB,EACpC,IAAI,SACG,EACR,MAAW,CACV,MAAO,EACR,CACH,CAKA,SAAS0I,GAAcjD,EAAM,CAC3B,OAAOA,GAAQ,mDAAmD,KAAKA,EAAK,SAAU,EACxF,CAQA,SAASkD,IAAsB,CAC7B,GAAI,CAACF,GAAa,EAChB,MAAO,GAKT,GAAIC,GAAc1I,GAAO,KAAK,EAC5B,MAAO,GAKT,IAAI4I,EAAS,GACb,MAAMC,EAAM7I,GAAO,SAEnB,GAAI6I,GAAO,OAAQA,EAAI,eAAoB,WACzC,GAAI,CACF,MAAMC,EAAUD,EAAI,cAAc,QAAQ,EAC1CC,EAAQ,OAAS,GACjBD,EAAI,KAAK,YAAYC,CAAO,EACxBA,EAAQ,eAAiBA,EAAQ,cAAc,QAEjDF,EAASF,GAAcI,EAAQ,cAAc,KAAK,GAEpDD,EAAI,KAAK,YAAYC,CAAO,CAC7B,OAAQC,EAAK,EACX,OAAO,iBAAqB,KAAe,mBAC1C9E,EAAO,KAAK,kFAAmF8E,CAAG,CACrG,CAGH,OAAOH,CACT,CCpHA,MAAM5I,GAASN,GAAe,EAQ9B,SAASsJ,IAAkB,CAMzB,MAAMC,EAAUjJ,GAAS,OACnBkJ,EAAsBD,GAAUA,EAAO,KAAOA,EAAO,IAAI,QAEzDE,EAAgB,YAAanJ,IAAU,CAAC,CAACA,GAAO,QAAQ,WAAa,CAAC,CAACA,GAAO,QAAQ,aAE5F,MAAO,CAACkJ,GAAuBC,CACjC,CChBA,MAAMnJ,GAASN,GAAe,EAExB0J,GAAsB,oBAatBC,GAAW,GACXC,GAAe,GAGrB,SAASC,GAAWC,EAAM,CACxB,GAAI,CAAAF,GAAaE,CAAI,EAMrB,OAFAF,GAAaE,CAAI,EAAI,GAEbA,EAAI,CACV,IAAK,UACHC,KACA,MACF,IAAK,MACHC,KACA,MACF,IAAK,MACHC,KACA,MACF,IAAK,QACHC,KACA,MACF,IAAK,UACHC,KACA,MACF,IAAK,QACHC,KACA,MACF,IAAK,qBACHC,KACA,MACF,SACG,OAAO,iBAAqB,KAAe,mBAAqB9F,EAAO,KAAK,gCAAiCuF,CAAI,EAClH,MACH,CACH,CAOA,SAASQ,GAA0BR,EAAM9F,EAAU,CACjD2F,GAASG,CAAI,EAAIH,GAASG,CAAI,GAAK,GAClCH,GAASG,CAAI,EAAI,KAAK9F,CAAQ,EAC/B6F,GAAWC,CAAI,CACjB,CAGA,SAASS,GAAgBT,EAAMU,EAAM,CACnC,GAAI,GAACV,GAAQ,CAACH,GAASG,CAAI,GAI3B,UAAWW,KAAWd,GAASG,CAAI,GAAK,GACtC,GAAI,CACFW,EAAQD,CAAI,CACb,OAAQE,EAAG,EACT,OAAO,iBAAqB,KAAe,mBAC1CnG,EAAO,MACL;AAAA,QAA0DuF,CAAI;AAAA,QAAWjB,GAAgB4B,CAAO,CAAC;AAAA,QACjGC,CACV,CACK,CAEL,CAGA,SAASX,IAAoB,CACrB,YAAazJ,IAInBwD,GAAe,QAAQ,SAAUK,EAAO,CAChCA,KAAS7D,GAAO,SAItBgF,GAAKhF,GAAO,QAAS6D,EAAO,SAAUwG,EAAuB,CAC3D,OAAO,YAAanG,EAAM,CACxB+F,GAAgB,UAAW,CAAE,KAAA/F,EAAM,MAAAL,CAAO,GAGtCwG,GACFA,EAAsB,MAAMrK,GAAO,QAASkE,CAAI,CAE1D,CACA,CAAK,CACL,CAAG,CACH,CAGA,SAAS0F,IAAkB,CACpBjB,GAAmB,GAIxB3D,GAAKhF,GAAQ,QAAS,SAAUsK,EAAe,CAC7C,OAAO,YAAapG,EAAM,CACxB,KAAM,CAAE,OAAAqG,EAAQ,IAAAC,CAAK,EAAGC,GAAevG,CAAI,EAErCwG,EAAc,CAClB,KAAAxG,EACA,UAAW,CACT,OAAAqG,EACA,IAAAC,CACD,EACD,eAAgB,KAAK,IAAK,CAClC,EAEM,OAAAP,GAAgB,QAAS,CACvB,GAAGS,CACX,CAAO,EAGMJ,EAAc,MAAMtK,GAAQkE,CAAI,EAAE,KACtCyG,IACCV,GAAgB,QAAS,CACvB,GAAGS,EACH,aAAc,KAAK,IAAK,EACxB,SAAAC,CACZ,CAAW,EACMA,GAERC,GAAU,CACT,MAAAX,GAAgB,QAAS,CACvB,GAAGS,EACH,aAAc,KAAK,IAAK,EACxB,MAAAE,CACZ,CAAW,EAIKA,CACP,CACT,CACA,CACA,CAAG,CACH,CAEA,SAASC,GAAQrL,EAAKsL,EAAM,CAC1B,MAAO,CAAC,CAACtL,GAAO,OAAOA,GAAQ,UAAY,CAAC,CAAEA,EAAMsL,CAAI,CAC1D,CAEA,SAASC,GAAmBC,EAAU,CACpC,OAAI,OAAOA,GAAa,SACfA,EAGJA,EAIDH,GAAQG,EAAU,KAAK,EAClBA,EAAS,IAGdA,EAAS,SACJA,EAAS,WAGX,GAXE,EAYX,CAKA,SAASP,GAAeQ,EAAW,CACjC,GAAIA,EAAU,SAAW,EACvB,MAAO,CAAE,OAAQ,MAAO,IAAK,EAAE,EAGjC,GAAIA,EAAU,SAAW,EAAG,CAC1B,KAAM,CAACT,EAAKpK,CAAO,EAAI6K,EAEvB,MAAO,CACL,IAAKF,GAAmBP,CAAG,EAC3B,OAAQK,GAAQzK,EAAS,QAAQ,EAAI,OAAOA,EAAQ,MAAM,EAAE,YAAW,EAAK,KAClF,CACG,CAED,MAAM8K,EAAMD,EAAU,CAAC,EACvB,MAAO,CACL,IAAKF,GAAmBG,CAAK,EAC7B,OAAQL,GAAQK,EAAK,QAAQ,EAAI,OAAOA,EAAI,MAAM,EAAE,YAAW,EAAK,KACxE,CACA,CAGA,SAASvB,IAAgB,CACvB,GAAI,EAAE,mBAAoB3J,IACxB,OAGF,MAAMmL,EAAW,eAAe,UAEhCnG,GAAKmG,EAAU,OAAQ,SAAUC,EAAc,CAC7C,OAAO,YAAclH,EAAM,CACzB,MAAMsG,EAAMtG,EAAK,CAAC,EACZmH,EAAW,KAAKjC,EAAmB,EAAI,CAE3C,OAAQvK,GAASqF,EAAK,CAAC,CAAC,EAAIA,EAAK,CAAC,EAAE,cAAgBA,EAAK,CAAC,EAC1D,IAAKA,EAAK,CAAC,EACX,gBAAiB,CAAE,CAC3B,EAIUrF,GAAS2L,CAAG,GAAKa,EAAQ,SAAW,QAAUb,EAAI,MAAM,YAAY,IACtE,KAAK,uBAAyB,IAGhC,MAAMc,EAA4B,IAAM,CAEtC,MAAMD,EAAU,KAAKjC,EAAmB,EAExC,GAAKiC,GAID,KAAK,aAAe,EAAG,CACzB,GAAI,CAGFA,EAAQ,YAAc,KAAK,MAC5B,MAAW,CAEX,CAEDpB,GAAgB,MAAO,CACrB,KAAM/F,EACN,aAAc,KAAK,IAAK,EACxB,eAAgB,KAAK,IAAK,EAC1B,IAAK,IACjB,EACS,CACT,EAEM,MAAI,uBAAwB,MAAQ,OAAO,KAAK,oBAAuB,WACrEc,GAAK,KAAM,qBAAsB,SAAUG,EAAU,CACnD,OAAO,YAAcoG,EAAgB,CACnC,OAAAD,IACOnG,EAAS,MAAM,KAAMoG,CAAc,CACtD,CACA,CAAS,EAED,KAAK,iBAAiB,mBAAoBD,CAAyB,EAMrEtG,GAAK,KAAM,mBAAoB,SAAUG,EAAU,CACjD,OAAO,YAAcqG,EAAsB,CACzC,KAAM,CAACC,EAAQhH,CAAK,EAAI+G,EAElBH,EAAU,KAAKjC,EAAmB,EAExC,OAAIiC,IACFA,EAAQ,gBAAgBI,EAAO,YAAa,GAAIhH,GAG3CU,EAAS,MAAM,KAAMqG,CAAoB,CAC1D,CACA,CAAO,EAEMJ,EAAa,MAAM,KAAMlH,CAAI,CAC1C,CACA,CAAG,EAEDc,GAAKmG,EAAU,OAAQ,SAAUO,EAAc,CAC7C,OAAO,YAAcxH,EAAM,CACzB,MAAMyH,EAAgB,KAAKvC,EAAmB,EAC9C,OAAIuC,GAAiBzH,EAAK,CAAC,IAAM,SAC/ByH,EAAc,KAAOzH,EAAK,CAAC,GAG7B+F,GAAgB,MAAO,CACrB,KAAA/F,EACA,eAAgB,KAAK,IAAK,EAC1B,IAAK,IACb,CAAO,EAEMwH,EAAa,MAAM,KAAMxH,CAAI,CAC1C,CACA,CAAG,CACH,CAEA,IAAI0H,GAGJ,SAAS/B,IAAoB,CAC3B,GAAI,CAACb,GAAe,EAClB,OAGF,MAAM6C,EAAgB7L,GAAO,WAC7BA,GAAO,WAAa,YAAckE,EAAM,CACtC,MAAM4H,EAAK9L,GAAO,SAAS,KAErBsD,EAAOsI,GAMb,GALAA,GAAWE,EACX7B,GAAgB,UAAW,CACzB,KAAA3G,EACA,GAAAwI,CACN,CAAK,EACGD,EAIF,GAAI,CACF,OAAOA,EAAc,MAAM,KAAM3H,CAAI,CACtC,MAAa,CAEb,CAEP,EAGE,SAAS6H,EAA2BC,EAAyB,CAC3D,OAAO,YAAc9H,EAAM,CACzB,MAAMsG,EAAMtG,EAAK,OAAS,EAAIA,EAAK,CAAC,EAAI,OACxC,GAAIsG,EAAK,CAEP,MAAMlH,EAAOsI,GACPE,EAAK,OAAOtB,CAAG,EAErBoB,GAAWE,EACX7B,GAAgB,UAAW,CACzB,KAAA3G,EACA,GAAAwI,CACV,CAAS,CACF,CACD,OAAOE,EAAwB,MAAM,KAAM9H,CAAI,CACrD,CACG,CAEDc,GAAKhF,GAAO,QAAS,YAAa+L,CAA0B,EAC5D/G,GAAKhF,GAAO,QAAS,eAAgB+L,CAA0B,CACjE,CAEA,MAAME,GAAmB,IACzB,IAAIC,GACAC,GAOJ,SAASC,GAAmCC,EAAUC,EAAS,CAO7D,GALI,CAACD,GAKDA,EAAS,OAASC,EAAQ,KAC5B,MAAO,GAGT,GAAI,CAGF,GAAID,EAAS,SAAWC,EAAQ,OAC9B,MAAO,EAEV,MAAW,CAGX,CAKD,MAAO,EACT,CAMA,SAASC,GAAmBC,EAAO,CAEjC,GAAIA,EAAM,OAAS,WACjB,MAAO,GAGT,GAAI,CACF,MAAMxG,EAASwG,EAAM,OAErB,GAAI,CAACxG,GAAU,CAACA,EAAO,QACrB,MAAO,GAKT,GAAIA,EAAO,UAAY,SAAWA,EAAO,UAAY,YAAcA,EAAO,kBACxE,MAAO,EAEV,MAAW,CAGX,CAED,MAAO,EACT,CASA,SAASyG,GAAoBtC,EAASuC,EAAiB,GAAO,CAC5D,OAAQF,GAAU,CAShB,GALI,CAACA,GAASL,KAAsBK,GAKhCD,GAAmBC,CAAK,EAC1B,OAGF,MAAM5M,EAAO4M,EAAM,OAAS,WAAa,QAAUA,EAAM,KAGrDN,KAAoB,QACtB/B,EAAQ,CACN,MAAOqC,EACP,KAAA5M,EACA,OAAQ8M,CAChB,CAAO,EACDP,GAAoBK,GAIbJ,GAAmCD,GAAmBK,CAAK,IAClErC,EAAQ,CACN,MAAOqC,EACP,KAAA5M,EACA,OAAQ8M,CAChB,CAAO,EACDP,GAAoBK,GAItB,aAAaN,EAAe,EAC5BA,GAAkBlM,GAAO,WAAW,IAAM,CACxCkM,GAAkB,MACnB,EAAED,EAAgB,CACvB,CACA,CAGA,SAASvC,IAAgB,CACvB,GAAI,EAAE,aAAc1J,IAClB,OAMF,MAAM2M,EAAoB1C,GAAgB,KAAK,KAAM,KAAK,EACpD2C,EAAwBH,GAAoBE,EAAmB,EAAI,EACzE3M,GAAO,SAAS,iBAAiB,QAAS4M,EAAuB,EAAK,EACtE5M,GAAO,SAAS,iBAAiB,WAAY4M,EAAuB,EAAK,EAOzE,CAAC,cAAe,MAAM,EAAE,QAAS5G,GAAW,CAE1C,MAAMT,EAASvF,GAASgG,CAAM,GAAMhG,GAASgG,CAAM,EAAE,UAEjD,CAACT,GAAS,CAACA,EAAM,gBAAkB,CAACA,EAAM,eAAe,kBAAkB,IAI/EP,GAAKO,EAAO,mBAAoB,SAAUsH,EAA0B,CAClE,OAAO,SAELrD,EACAsD,EACA1M,EACA,CACA,GAAIoJ,IAAS,SAAWA,GAAQ,WAC9B,GAAI,CACF,MAAMxI,EAAK,KACLqI,EAAYrI,EAAG,oCAAsCA,EAAG,qCAAuC,GAC/F+L,EAAkB1D,EAASG,CAAI,EAAIH,EAASG,CAAI,GAAK,CAAE,SAAU,CAAC,EAExE,GAAI,CAACuD,EAAe,QAAS,CAC3B,MAAM5C,EAAUsC,GAAoBE,CAAiB,EACrDI,EAAe,QAAU5C,EACzB0C,EAAyB,KAAK,KAAMrD,EAAMW,EAAS/J,CAAO,CAC3D,CAED2M,EAAe,UAChB,MAAW,CAGX,CAGH,OAAOF,EAAyB,KAAK,KAAMrD,EAAMsD,EAAU1M,CAAO,CAC1E,CACA,CAAK,EAED4E,GACEO,EACA,sBACA,SAAUyH,EAA6B,CACrC,OAAO,SAELxD,EACAsD,EACA1M,EACA,CACA,GAAIoJ,IAAS,SAAWA,GAAQ,WAC9B,GAAI,CACF,MAAMxI,EAAK,KACLqI,EAAWrI,EAAG,qCAAuC,GACrD+L,EAAiB1D,EAASG,CAAI,EAEhCuD,IACFA,EAAe,WAEXA,EAAe,UAAY,IAC7BC,EAA4B,KAAK,KAAMxD,EAAMuD,EAAe,QAAS3M,CAAO,EAC5E2M,EAAe,QAAU,OACzB,OAAO1D,EAASG,CAAI,GAIlB,OAAO,KAAKH,CAAQ,EAAE,SAAW,GACnC,OAAOrI,EAAG,oCAGf,MAAW,CAGX,CAGH,OAAOgM,EAA4B,KAAK,KAAMxD,EAAMsD,EAAU1M,CAAO,CAC/E,CACO,CACP,EACA,CAAG,CACH,CAEA,IAAI6M,GAAqB,KAEzB,SAASnD,IAAkB,CACzBmD,GAAqBjN,GAAO,QAE5BA,GAAO,QAAU,SAAUkN,EAAK1C,EAAK5C,EAAMuF,EAAQvC,EAAO,CASxD,OARAX,GAAgB,QAAS,CACvB,OAAAkD,EACA,MAAAvC,EACA,KAAAhD,EACA,IAAAsF,EACA,IAAA1C,CACN,CAAK,EAEGyC,IAAsB,CAACA,GAAmB,kBAErCA,GAAmB,MAAM,KAAM,SAAS,EAG1C,EACX,EAEEjN,GAAO,QAAQ,wBAA0B,EAC3C,CAEA,IAAIoN,GAAkC,KAEtC,SAASrD,IAA+B,CACtCqD,GAAkCpN,GAAO,qBAEzCA,GAAO,qBAAuB,SAAU,EAAG,CAGzC,OAFAiK,GAAgB,qBAAsB,CAAC,EAEnCmD,IAAmC,CAACA,GAAgC,kBAE/DA,GAAgC,MAAM,KAAM,SAAS,EAGvD,EACX,EAEEpN,GAAO,qBAAqB,wBAA0B,EACxD,CC7mBA,SAASqN,IAAc,CACrB,MAAMC,EAAa,OAAO,SAAY,WAChCC,EAAQD,EAAa,IAAI,QAAY,GAC3C,SAASE,EAAQhO,EAAK,CACpB,GAAI8N,EACF,OAAIC,EAAM,IAAI/N,CAAG,EACR,IAET+N,EAAM,IAAI/N,CAAG,EACN,IAGT,QAAS4B,EAAI,EAAGA,EAAImM,EAAM,OAAQnM,IAEhC,GADcmM,EAAMnM,CAAC,IACP5B,EACZ,MAAO,GAGX,OAAA+N,EAAM,KAAK/N,CAAG,EACP,EACR,CAED,SAASiO,EAAUjO,EAAK,CACtB,GAAI8N,EACFC,EAAM,OAAO/N,CAAG,MAEhB,SAAS4B,EAAI,EAAGA,EAAImM,EAAM,OAAQnM,IAChC,GAAImM,EAAMnM,CAAC,IAAM5B,EAAK,CACpB+N,EAAM,OAAOnM,EAAG,CAAC,EACjB,KACD,CAGN,CACD,MAAO,CAACoM,EAASC,CAAS,CAC5B,CChCA,SAASC,IAAQ,CACf,MAAM5N,EAAML,GACNkO,EAAS7N,EAAI,QAAUA,EAAI,SAEjC,GAAI6N,GAAUA,EAAO,WACnB,OAAOA,EAAO,WAAY,EAAC,QAAQ,KAAM,EAAE,EAG7C,MAAMC,EACJD,GAAUA,EAAO,gBAAkB,IAAMA,EAAO,gBAAgB,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,EAAI,IAAM,KAAK,OAAM,EAAK,GAIhH,OAAS,CAAC,GAAG,EAAM,IAAM,IAAM,IAAM,MAAM,QAAQ,SAAUE,IAEzDA,GAAQD,EAAa,EAAK,KAASC,EAAM,GAAK,SAAS,EAAE,CAC/D,CACA,CAEA,SAASC,GAAkBtB,EAAO,CAChC,OAAOA,EAAM,WAAaA,EAAM,UAAU,OAASA,EAAM,UAAU,OAAO,CAAC,EAAI,MACjF,CAMA,SAASuB,GAAoBvB,EAAO,CAClC,KAAM,CAAE,QAAA3K,EAAS,SAAUmM,CAAO,EAAKxB,EACvC,GAAI3K,EACF,OAAOA,EAGT,MAAMoM,EAAiBH,GAAkBtB,CAAK,EAC9C,OAAIyB,EACEA,EAAe,MAAQA,EAAe,MACjC,GAAGA,EAAe,IAAI,KAAKA,EAAe,KAAK,GAEjDA,EAAe,MAAQA,EAAe,OAASD,GAAW,YAE5DA,GAAW,WACpB,CASA,SAASE,GAAsB1B,EAAO/H,EAAO+E,EAAM,CACjD,MAAMpD,EAAaoG,EAAM,UAAYA,EAAM,WAAa,GAClD2B,EAAU/H,EAAU,OAASA,EAAU,QAAU,GACjD6H,EAAkBE,EAAO,CAAC,EAAIA,EAAO,CAAC,GAAK,GAC5CF,EAAe,QAClBA,EAAe,MAAQxJ,GAAS,IAE7BwJ,EAAe,OAClBA,EAAe,KAAOzE,GAAQ,QAElC,CASA,SAAS4E,GAAsB5B,EAAO6B,EAAc,CAClD,MAAMJ,EAAiBH,GAAkBtB,CAAK,EAC9C,GAAI,CAACyB,EACH,OAGF,MAAMK,EAAmB,CAAE,KAAM,UAAW,QAAS,EAAI,EACnDC,EAAmBN,EAAe,UAGxC,GAFAA,EAAe,UAAY,CAAE,GAAGK,EAAkB,GAAGC,EAAkB,GAAGF,GAEtEA,GAAgB,SAAUA,EAAc,CAC1C,MAAMG,EAAa,CAAE,GAAID,GAAoBA,EAAiB,KAAO,GAAGF,EAAa,MACrFJ,EAAe,UAAU,KAAOO,CACjC,CACH,CA4EA,SAASC,GAAwBrI,EAAW,CAE1C,GAAIA,GAAcA,EAAY,oBAC5B,MAAO,GAGT,GAAI,CAGFd,GAAyBc,EAAY,sBAAuB,EAAI,CACjE,MAAa,CAEb,CAED,MAAO,EACT,CAQA,SAASsI,GAASC,EAAY,CAC5B,OAAO,MAAM,QAAQA,CAAU,EAAIA,EAAa,CAACA,CAAU,CAC7D,CC7KA,SAASC,IAAkB,CACzB,OAAO,OAAO,0BAA8B,KAAe,CAAC,CAAC,yBAC/D,CAKA,SAASC,IAAe,CAEtB,MAAO,KACT,CChBA,SAASC,IAAY,CAGnB,MACE,CAACF,GAAiB,GAClB,OAAO,UAAU,SAAS,KAAK,OAAO,QAAY,IAAc,QAAU,CAAC,IAAM,kBAErF,CAQA,SAASG,GAAeC,EAAKC,EAAS,CAEpC,OAAOD,EAAI,QAAQC,CAAO,CAC5B,CCPA,SAASC,GAAU5K,EAAO6K,EAAQ,IAAWC,EAAgB,IAAW,CACtE,GAAI,CAEF,OAAOC,GAAM,GAAI/K,EAAO6K,EAAOC,CAAa,CAC7C,OAAQrG,EAAK,CACZ,MAAO,CAAE,MAAO,yBAAyBA,CAAG,GAAG,CAChD,CACH,CAGA,SAASuG,GAEP3J,EAEAwJ,EAAQ,EAERI,EAAU,IAAM,KAChB,CACA,MAAMC,EAAaN,GAAUvJ,EAAQwJ,CAAK,EAE1C,OAAIM,GAASD,CAAU,EAAID,EAClBD,GAAgB3J,EAAQwJ,EAAQ,EAAGI,CAAO,EAG5CC,CACT,CAWA,SAASH,GACPnO,EACAuD,EACA0K,EAAQ,IACRC,EAAgB,IAChBM,EAAOrC,GAAa,EACpB,CACA,KAAM,CAACG,EAASC,CAAS,EAAIiC,EAG7B,GAAIjL,IAAU,MAAS,CAAC,SAAU,UAAW,QAAQ,EAAE,SAAS,OAAOA,CAAK,GAAK,CAACpF,GAAMoF,CAAK,EAC3F,OAAOA,EAGT,MAAMkL,EAAcC,GAAe1O,EAAKuD,CAAK,EAI7C,GAAI,CAACkL,EAAY,WAAW,UAAU,EACpC,OAAOA,EAQT,GAAKlL,EAAQ,8BACX,OAAOA,EAMT,IAAIoL,EAAkBV,EAOtB,GALI,OAAQ1K,EAAQ,yCAA+C,WACjEoL,EAAmBpL,EAAQ,yCAIzBoL,IAAoB,EAEtB,OAAOF,EAAY,QAAQ,UAAW,EAAE,EAI1C,GAAInC,EAAQ/I,CAAK,EACf,MAAO,eAIT,MAAMqL,EAAkBrL,EACxB,GAAIqL,GAAmB,OAAOA,EAAgB,QAAW,WACvD,GAAI,CACF,MAAMC,EAAYD,EAAgB,SAElC,OAAOT,GAAM,GAAIU,EAAWF,EAAkB,EAAGT,EAAeM,CAAI,CACrE,MAAa,CAEb,CAMH,MAAMF,EAAc,MAAM,QAAQ/K,CAAK,EAAI,GAAK,GAChD,IAAIuL,EAAW,EAIf,MAAMC,EAAYrK,GAAqBnB,GAEvC,UAAWyL,KAAYD,EAAW,CAEhC,GAAI,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAWC,CAAQ,EAC3D,SAGF,GAAIF,GAAYZ,EAAe,CAC7BI,EAAWU,CAAQ,EAAI,oBACvB,KACD,CAGD,MAAMC,EAAaF,EAAUC,CAAQ,EACrCV,EAAWU,CAAQ,EAAIb,GAAMa,EAAUC,EAAYN,EAAkB,EAAGT,EAAeM,CAAI,EAE3FM,GACD,CAGD,OAAAvC,EAAUhJ,CAAK,EAGR+K,CACT,CAWA,SAASI,GACP1O,EAGAuD,EACA,CACA,GAAI,CACF,OAAIvD,IAAQ,UAAYuD,GAAS,OAAOA,GAAU,UAAaA,EAAQ,QAC9D,WAGLvD,IAAQ,gBACH,kBAML,OAAO,OAAW,KAAeuD,IAAU,OACtC,WAIL,OAAO,OAAW,KAAeA,IAAU,OACtC,WAIL,OAAO,SAAa,KAAeA,IAAU,SACxC,aAILrF,GAAiBqF,CAAK,EACjB,mBAGL,OAAOA,GAAU,UAAYA,IAAUA,EAClC,QAILA,IAAU,OACL,cAGL,OAAOA,GAAU,WACZ,cAAc8D,GAAgB9D,CAAK,CAAC,IAGzC,OAAOA,GAAU,SACZ,IAAI,OAAOA,CAAK,CAAC,IAItB,OAAOA,GAAU,SACZ,YAAY,OAAOA,CAAK,CAAC,IAO3B,WAAW2L,GAAmB3L,CAAK,CAAC,GAC5C,OAAQsE,EAAK,CACZ,MAAO,yBAAyBA,CAAG,GACpC,CACH,CAEA,SAASqH,GAAmB3L,EAAO,CACjC,MAAM4L,EAAY,OAAO,eAAe5L,CAAK,EAE7C,OAAO4L,EAAYA,EAAU,YAAY,KAAO,gBAClD,CAGA,SAASC,GAAW7L,EAAO,CAEzB,MAAO,CAAC,CAAC,UAAUA,CAAK,EAAE,MAAM,OAAO,EAAE,MAC3C,CAIA,SAASgL,GAAShL,EAAO,CACvB,OAAO6L,GAAW,KAAK,UAAU7L,CAAK,CAAC,CACzC,CCxPA,IAAI8L,IAAS,SAAUA,EAAQ,CAEVA,EAAOA,EAAO,QAAa,CAAO,EAAI,UAEzD,MAAMC,EAAW,EAAGD,EAAOA,EAAO,SAAcC,CAAQ,EAAI,WAE5D,MAAMC,EAAW,EAAGF,EAAOA,EAAO,SAAcE,CAAQ,EAAI,UAC9D,GAAGF,KAAWA,GAAS,CAAE,EAAC,EAU1B,SAASG,GAAoBjM,EAAO,CAClC,OAAO,IAAIkM,GAAYC,GAAW,CAChCA,EAAQnM,CAAK,CACjB,CAAG,CACH,CAQA,SAASoM,GAAoBC,EAAQ,CACnC,OAAO,IAAIH,GAAY,CAACI,EAAGC,IAAW,CACpCA,EAAOF,CAAM,CACjB,CAAG,CACH,CAMA,MAAMH,EAAY,CACf,QAAS,CAAC,KAAK,OAASJ,GAAO,OAAQ,CACvC,SAAU,CAAC,KAAK,UAAY,CAAE,CAAC,CAE/B,YACCU,EACA,CAACN,GAAY,UAAU,OAAO,KAAK,IAAI,EAAEA,GAAY,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAY,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAY,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAY,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAY,UAAU,QAAQ,KAAK,IAAI,EACpP,GAAI,CACFM,EAAS,KAAK,SAAU,KAAK,OAAO,CACrC,OAAQ7G,EAAG,CACV,KAAK,QAAQA,CAAC,CACf,CACF,CAGA,KACC8G,EACAC,EACA,CACA,OAAO,IAAIR,GAAY,CAACC,EAASI,IAAW,CAC1C,KAAK,UAAU,KAAK,CAClB,GACApI,GAAU,CACR,GAAI,CAACsI,EAGHN,EAAQhI,CAAM,MAEd,IAAI,CACFgI,EAAQM,EAAYtI,CAAM,CAAC,CAC5B,OAAQwB,EAAG,CACV4G,EAAO5G,CAAC,CACT,CAEJ,EACD0G,GAAU,CACR,GAAI,CAACK,EACHH,EAAOF,CAAM,MAEb,IAAI,CACFF,EAAQO,EAAWL,CAAM,CAAC,CAC3B,OAAQ1G,EAAG,CACV4G,EAAO5G,CAAC,CACT,CAEJ,CACT,CAAO,EACD,KAAK,iBAAgB,CAC3B,CAAK,CACF,CAGA,MACC+G,EACA,CACA,OAAO,KAAK,KAAKC,GAAOA,EAAKD,CAAU,CACxC,CAGA,QAAQE,EAAW,CAClB,OAAO,IAAIV,GAAY,CAACC,EAASI,IAAW,CAC1C,IAAII,EACAE,EAEJ,OAAO,KAAK,KACV7M,GAAS,CACP6M,EAAa,GACbF,EAAM3M,EACF4M,GACFA,GAEH,EACDP,GAAU,CACRQ,EAAa,GACbF,EAAMN,EACFO,GACFA,GAEH,CACF,EAAC,KAAK,IAAM,CACX,GAAIC,EAAY,CACdN,EAAOI,CAAG,EACV,MACD,CAEDR,EAAQQ,CAAG,CACnB,CAAO,CACP,CAAK,CACF,CAGC,SAAU,CAAC,KAAK,SAAY3M,GAAU,CACtC,KAAK,WAAW8L,GAAO,SAAU9L,CAAK,CAC1C,CAAI,CAGA,SAAU,CAAC,KAAK,QAAWqM,GAAW,CACtC,KAAK,WAAWP,GAAO,SAAUO,CAAM,CAC3C,CAAI,CAGA,SAAU,CAAC,KAAK,WAAa,CAACS,EAAO9M,IAAU,CAC/C,GAAI,KAAK,SAAW8L,GAAO,QAI3B,IAAIpR,GAAWsF,CAAK,EAAG,CACfA,EAAQ,KAAK,KAAK,SAAU,KAAK,OAAO,EAC9C,MACD,CAED,KAAK,OAAS8M,EACd,KAAK,OAAS9M,EAEd,KAAK,iBAAgB,EACzB,CAAI,CAGA,SAAU,CAAC,KAAK,iBAAmB,IAAM,CACzC,GAAI,KAAK,SAAW8L,GAAO,QACzB,OAGF,MAAMiB,EAAiB,KAAK,UAAU,MAAK,EAC3C,KAAK,UAAY,GAEjBA,EAAe,QAAQrH,GAAW,CAC5BA,EAAQ,CAAC,IAIT,KAAK,SAAWoG,GAAO,UAEzBpG,EAAQ,CAAC,EAAE,KAAK,MAAM,EAGpB,KAAK,SAAWoG,GAAO,UACzBpG,EAAQ,CAAC,EAAE,KAAK,MAAM,EAGxBA,EAAQ,CAAC,EAAI,GACnB,CAAK,CACL,CAAI,CACJ,CCpLA,SAASsH,GAAkBC,EAAO,CAChC,MAAMC,EAAS,GAEf,SAASC,GAAU,CACjB,OAAOF,IAAU,QAAaC,EAAO,OAASD,CAC/C,CAQD,SAASG,EAAOC,EAAM,CACpB,OAAOH,EAAO,OAAOA,EAAO,QAAQG,CAAI,EAAG,CAAC,EAAE,CAAC,CAChD,CAYD,SAASC,EAAIC,EAAc,CACzB,GAAI,CAACJ,EAAO,EACV,OAAOf,GAAoB,IAAIjP,GAAY,sDAAsD,CAAC,EAIpG,MAAMkQ,EAAOE,IACb,OAAIL,EAAO,QAAQG,CAAI,IAAM,IAC3BH,EAAO,KAAKG,CAAI,EAEbA,EACF,KAAK,IAAMD,EAAOC,CAAI,CAAC,EAIvB,KAAK,KAAM,IACVD,EAAOC,CAAI,EAAE,KAAK,KAAM,IAAM,CAEtC,CAAS,CACT,EACWA,CACR,CAWD,SAASG,EAAMC,EAAS,CACtB,OAAO,IAAIvB,GAAY,CAACC,EAASI,IAAW,CAC1C,IAAImB,EAAUR,EAAO,OAErB,GAAI,CAACQ,EACH,OAAOvB,EAAQ,EAAI,EAIrB,MAAMwB,EAAqB,WAAW,IAAM,CACtCF,GAAWA,EAAU,GACvBtB,EAAQ,EAAK,CAEhB,EAAEsB,CAAO,EAGVP,EAAO,QAAQ5K,GAAQ,CAChB2J,GAAoB3J,CAAI,EAAE,KAAK,IAAM,CACnC,EAAEoL,IACL,aAAaC,CAAkB,EAC/BxB,EAAQ,EAAI,EAEf,EAAEI,CAAM,CACjB,CAAO,CACP,CAAK,CACF,CAED,MAAO,CACL,EAAGW,EACH,IAAAI,EACA,MAAAE,CACJ,CACA,CC3FA,SAASI,GAAS7H,EAAK,CACrB,GAAI,CAACA,EACH,MAAO,GAGT,MAAM3H,EAAQ2H,EAAI,MAAM,8DAA8D,EAEtF,GAAI,CAAC3H,EACH,MAAO,GAIT,MAAMyP,EAAQzP,EAAM,CAAC,GAAK,GACpB0P,EAAW1P,EAAM,CAAC,GAAK,GAC7B,MAAO,CACL,KAAMA,EAAM,CAAC,EACb,KAAMA,EAAM,CAAC,EACb,SAAUA,EAAM,CAAC,EACjB,OAAQyP,EACR,KAAMC,EACN,SAAU1P,EAAM,CAAC,EAAIyP,EAAQC,CACjC,CACA,CCnBA,MAAMC,GAAsB,CAAC,QAAS,QAAS,UAAW,MAAO,OAAQ,OAAO,EAoBhF,SAASC,GAAwB5O,EAAO,CACtC,OAAQA,IAAU,OAAS,UAAY2O,GAAoB,SAAS3O,CAAK,EAAIA,EAAQ,KACvF,CC1BA,MAAM7D,GAASN,GAAe,EAaxBgT,GAAsB,CAC1B,WAAY,IAAM,KAAK,IAAG,EAAK,GACjC,EAaA,SAASC,IAAwB,CAC/B,KAAM,CAAE,YAAAC,CAAa,EAAG5S,GACxB,GAAI,CAAC4S,GAAe,CAACA,EAAY,IAC/B,OAwBF,MAAMC,EAAa,KAAK,IAAK,EAAGD,EAAY,IAAG,EAE/C,MAAO,CACL,IAAK,IAAMA,EAAY,IAAK,EAC5B,WAAAC,CACJ,CACA,CAMA,SAASC,IAAqB,CAC5B,GAAI,CAEF,OADkB/D,GAAegE,GAAQ,YAAY,EACpC,WAClB,MAAW,CACV,MACD,CACH,CAKA,MAAMC,GAAsBlE,GAAW,EAAGgE,GAAoB,EAAGH,GAAqB,EAEhFM,GACJD,KAAwB,OACpBN,GACA,CACE,WAAY,KAAOM,GAAoB,WAAaA,GAAoB,IAAG,GAAM,GACzF,EAKME,GAAyBR,GAAoB,WAAW,KAAKA,EAAmB,EAahFS,GAAqBF,GAAgB,WAAW,KAAKA,EAAe,EAGpEG,GAAkBD,GAgBlBE,IAAgC,IAAM,CAK1C,KAAM,CAAE,YAAAT,CAAa,EAAG5S,GACxB,GAAI,CAAC4S,GAAe,CAACA,EAAY,IAE/B,OAGF,MAAMU,EAAY,KAAO,IACnBC,EAAiBX,EAAY,MAC7BY,EAAU,KAAK,MAGfC,EAAkBb,EAAY,WAChC,KAAK,IAAIA,EAAY,WAAaW,EAAiBC,CAAO,EAC1DF,EACEI,EAAuBD,EAAkBH,EAQzCK,EAAkBf,EAAY,QAAUA,EAAY,OAAO,gBAG3DgB,EAFqB,OAAOD,GAAoB,SAEJ,KAAK,IAAIA,EAAkBJ,EAAiBC,CAAO,EAAIF,EACnGO,EAA4BD,EAAuBN,EAEzD,OAAII,GAAwBG,EAEtBJ,GAAmBG,EAEdhB,EAAY,WAGZe,EAMJH,CACT,GAAI,EChLEM,GAAqB,IAAI,OAC7B,2DAKF,EASA,SAASC,GAAuBC,EAAa,CAC3C,MAAMC,EAAUD,EAAY,MAAMF,EAAkB,EAEpD,GAAI,CAACE,GAAe,CAACC,EAEnB,OAGF,IAAIC,EACJ,OAAID,EAAQ,CAAC,IAAM,IACjBC,EAAgB,GACPD,EAAQ,CAAC,IAAM,MACxBC,EAAgB,IAGX,CACL,QAASD,EAAQ,CAAC,EAClB,cAAAC,EACA,aAAcD,EAAQ,CAAC,CAC3B,CACA,CC1BA,SAASE,GAAeC,EAASC,EAAQ,GAAI,CAC3C,MAAO,CAACD,EAASC,CAAK,CACxB,CAOA,SAASC,GAAkBC,EAAUC,EAAS,CAC5C,KAAM,CAACJ,EAASC,CAAK,EAAIE,EACzB,MAAO,CAACH,EAAS,CAAC,GAAGC,EAAOG,CAAO,CAAC,CACtC,CAQA,SAASC,GACPF,EACA7Q,EACA,CACA,MAAMgR,EAAgBH,EAAS,CAAC,EAEhC,UAAWI,KAAgBD,EAAe,CACxC,MAAME,EAAmBD,EAAa,CAAC,EAAE,KAGzC,GAFejR,EAASiR,EAAcC,CAAgB,EAGpD,MAAO,EAEV,CAED,MAAO,EACT,CAYA,SAASC,GAAWvQ,EAAOwQ,EAAa,CAEtC,OADaA,GAAe,IAAI,aACpB,OAAOxQ,CAAK,CAC1B,CAKA,SAASyQ,GAAkBR,EAAUO,EAAa,CAChD,KAAM,CAACE,EAAYX,CAAK,EAAIE,EAG5B,IAAIU,EAAQ,KAAK,UAAUD,CAAU,EAErC,SAASE,EAAOC,EAAM,CAChB,OAAOF,GAAU,SACnBA,EAAQ,OAAOE,GAAS,SAAWF,EAAQE,EAAO,CAACN,GAAWI,EAAOH,CAAW,EAAGK,CAAI,EAEvFF,EAAM,KAAK,OAAOE,GAAS,SAAWN,GAAWM,EAAML,CAAW,EAAIK,CAAI,CAE7E,CAED,UAAWpO,KAAQsN,EAAO,CACxB,KAAM,CAACe,EAAaC,CAAO,EAAItO,EAI/B,GAFAmO,EAAO;AAAA,EAAK,KAAK,UAAUE,CAAW,CAAC;AAAA,CAAI,EAEvC,OAAOC,GAAY,UAAYA,aAAmB,WACpDH,EAAOG,CAAO,MACT,CACL,IAAIC,EACJ,GAAI,CACFA,EAAqB,KAAK,UAAUD,CAAO,CAC5C,MAAW,CAIVC,EAAqB,KAAK,UAAUpG,GAAUmG,CAAO,CAAC,CACvD,CACDH,EAAOI,CAAkB,CAC1B,CACF,CAED,OAAO,OAAOL,GAAU,SAAWA,EAAQM,GAAcN,CAAK,CAChE,CAEA,SAASM,GAAcC,EAAS,CAC9B,MAAMC,EAAcD,EAAQ,OAAO,CAACE,EAAKC,IAAQD,EAAMC,EAAI,OAAQ,CAAC,EAE9DC,EAAS,IAAI,WAAWH,CAAW,EACzC,IAAII,EAAS,EACb,UAAWlE,KAAU6D,EACnBI,EAAO,IAAIjE,EAAQkE,CAAM,EACzBA,GAAUlE,EAAO,OAGnB,OAAOiE,CACT,CA8CA,SAASE,GACPC,EACAjB,EACA,CACA,MAAMnD,EAAS,OAAOoE,EAAW,MAAS,SAAWlB,GAAWkB,EAAW,KAAMjB,CAAW,EAAIiB,EAAW,KAE3G,MAAO,CACLtP,GAAkB,CAChB,KAAM,aACN,OAAQkL,EAAO,OACf,SAAUoE,EAAW,SACrB,aAAcA,EAAW,YACzB,gBAAiBA,EAAW,cAClC,CAAK,EACDpE,CACJ,CACA,CAEA,MAAMqE,GAAiC,CACrC,QAAS,UACT,SAAU,UACV,WAAY,aACZ,YAAa,cACb,MAAO,QACP,cAAe,WACf,YAAa,UACb,QAAS,UACT,aAAc,SACd,iBAAkB,SAClB,SAAU,SACZ,EAKA,SAASC,GAA+BzM,EAAM,CAC5C,OAAOwM,GAA+BxM,CAAI,CAC5C,CAGA,SAAS0M,GAAgCC,EAAiB,CACxD,GAAI,CAACA,GAAmB,CAACA,EAAgB,IACvC,OAEF,KAAM,CAAE,KAAAvW,EAAM,QAAAwW,GAAYD,EAAgB,IAC1C,MAAO,CAAE,KAAAvW,EAAM,QAAAwW,EACjB,CAMA,SAASC,GACP7J,EACA8J,EACAC,EACApU,EACA,CACA,MAAMqU,EAAyBhK,EAAM,uBAAyBA,EAAM,sBAAsB,uBAC1F,MAAO,CACL,SAAUA,EAAM,SAChB,QAAS,IAAI,KAAM,EAAC,YAAa,EACjC,GAAI8J,GAAW,CAAE,IAAKA,GACtB,GAAI,CAAC,CAACC,GAAU,CAAE,IAAKrU,GAAYC,CAAG,GACtC,GAAIqU,GAA0B,CAC5B,MAAO/P,GAAkB,CAAE,GAAG+P,EAAwB,CAC5D,CACA,CACA,CC5NA,SAASC,GACPC,EACAvU,EACAwU,EACA,CACA,MAAMC,EAAmB,CACvB,CAAE,KAAM,eAAiB,EACzB,CACE,UAAWD,GAAazD,GAAwB,EAChD,iBAAAwD,CACD,CACL,EACE,OAAOvC,GAAehS,EAAM,CAAE,IAAAA,CAAK,EAAG,GAAI,CAACyU,CAAgB,CAAC,CAC9D,CCnBA,MAAMC,GAAsB,GAAK,IAQjC,SAASC,GAAsBrL,EAAQsL,EAAM,KAAK,IAAG,EAAI,CACvD,MAAMC,EAAc,SAAS,GAAGvL,CAAM,GAAI,EAAE,EAC5C,GAAI,CAAC,MAAMuL,CAAW,EACpB,OAAOA,EAAc,IAGvB,MAAMC,EAAa,KAAK,MAAM,GAAGxL,CAAM,EAAE,EACzC,OAAK,MAAMwL,CAAU,EAIdJ,GAHEI,EAAaF,CAIxB,CASA,SAASG,GAAcC,EAAQC,EAAU,CACvC,OAAOD,EAAOC,CAAQ,GAAKD,EAAO,KAAO,CAC3C,CAKA,SAASE,GAAcF,EAAQC,EAAUL,EAAM,KAAK,IAAG,EAAI,CACzD,OAAOG,GAAcC,EAAQC,CAAQ,EAAIL,CAC3C,CAOA,SAASO,GACPH,EACA,CAAE,WAAAI,EAAY,QAAAnD,CAAS,EACvB2C,EAAM,KAAK,IAAK,EAChB,CACA,MAAMS,EAAoB,CACxB,GAAGL,CACP,EAIQM,EAAkBrD,GAAWA,EAAQ,sBAAsB,EAC3DsD,EAAmBtD,GAAWA,EAAQ,aAAa,EAEzD,GAAIqD,EAaF,UAAW/F,KAAS+F,EAAgB,KAAI,EAAG,MAAM,GAAG,EAAG,CACrD,KAAM,CAACE,EAAYC,CAAU,EAAIlG,EAAM,MAAM,IAAK,CAAC,EAC7CsF,EAAc,SAASW,EAAY,EAAE,EACrCE,GAAU,MAAMb,CAAW,EAAkB,GAAdA,GAAoB,IACzD,GAAI,CAACY,EACHJ,EAAkB,IAAMT,EAAMc,MAE9B,WAAWT,KAAYQ,EAAW,MAAM,GAAG,EACzCJ,EAAkBJ,CAAQ,EAAIL,EAAMc,CAGzC,MACQH,EACTF,EAAkB,IAAMT,EAAMD,GAAsBY,EAAkBX,CAAG,EAChEQ,IAAe,MACxBC,EAAkB,IAAMT,EAAM,GAAK,KAGrC,OAAOS,CACT,CC1FA,MAAMM,GAAsB,UAEtBC,GAA4B,UAE5BC,GAAkC,WAOlCC,GAA4B,KASlC,SAASC,GAEPC,EACA,CACA,GAAI,CAACtZ,GAASsZ,CAAa,GAAK,CAAC,MAAM,QAAQA,CAAa,EAC1D,OAKF,IAAIC,EAAgB,GAEpB,GAAI,MAAM,QAAQD,CAAa,EAE7BC,EAAgBD,EAAc,OAAO,CAACzC,EAAK2C,IAAS,CAClD,MAAMC,EAAoBC,GAAsBF,CAAI,EACpD,MAAO,CACL,GAAG3C,EACH,GAAG4C,CACX,CACK,EAAE,CAAE,OACA,CAGL,GAAI,CAACH,EACH,OAGFC,EAAgBG,GAAsBJ,CAAa,CACpD,CAGD,MAAM3B,EAAyB,OAAO,QAAQ4B,CAAa,EAAE,OAAO,CAAC1C,EAAK,CAACxU,EAAKuD,CAAK,IAAM,CACzF,GAAIvD,EAAI,MAAM8W,EAA+B,EAAG,CAC9C,MAAMQ,EAAiBtX,EAAI,MAAM6W,GAA0B,MAAM,EACjErC,EAAI8C,CAAc,EAAI/T,CACvB,CACD,OAAOiR,CACR,EAAE,CAAE,GAIL,GAAI,OAAO,KAAKc,CAAsB,EAAE,OAAS,EAC/C,OAAOA,CAIX,CAWA,SAASiC,GAEPjC,EACA,CAEA,MAAMkC,EAAoB,OAAO,QAAQlC,CAAsB,EAAE,OAC/D,CAACd,EAAK,CAACiD,EAAQC,CAAQ,KACjBA,IACFlD,EAAI,GAAGqC,EAAyB,GAAGY,CAAM,EAAE,EAAIC,GAE1ClD,GAET,CAAE,CACN,EAEE,OAAOmD,GAAsBH,CAAiB,CAChD,CAQA,SAASH,GAAsBJ,EAAe,CAC5C,OAAOA,EACJ,MAAM,GAAG,EACT,IAAIW,GAAgBA,EAAa,MAAM,GAAG,EAAE,IAAIC,GAAc,mBAAmBA,EAAW,KAAI,CAAE,CAAC,CAAC,EACpG,OAAO,CAACrD,EAAK,CAACxU,EAAKuD,CAAK,KACvBiR,EAAIxU,CAAG,EAAIuD,EACJiR,GACN,CAAE,EACT,CASA,SAASmD,GAAsBlT,EAAQ,CACrC,GAAI,OAAO,KAAKA,CAAM,EAAE,SAAW,EAKnC,OAAO,OAAO,QAAQA,CAAM,EAAE,OAAO,CAACwS,EAAe,CAACa,EAAWC,CAAW,EAAGC,IAAiB,CAC9F,MAAMJ,EAAe,GAAG,mBAAmBE,CAAS,CAAC,IAAI,mBAAmBC,CAAW,CAAC,GAClFE,EAAmBD,IAAiB,EAAIJ,EAAe,GAAGX,CAAa,IAAIW,CAAY,GAC7F,OAAIK,EAAiB,OAASlB,KAC3B,OAAO,iBAAqB,KAAe,mBAC1ChU,EAAO,KACL,mBAAmB+U,CAAS,cAAcC,CAAW,0DAC/D,EACad,GAEAgB,CAEV,EAAE,EAAE,CACP,CC7IA,MAAMC,GAAsB,aCU5B,SAASC,GAAYC,EAAS,CAE5B,MAAMC,EAAepG,KAEfqG,EAAU,CACd,IAAK9L,GAAO,EACZ,KAAM,GACN,UAAW6L,EACX,QAASA,EACT,SAAU,EACV,OAAQ,KACR,OAAQ,EACR,eAAgB,GAChB,OAAQ,IAAME,GAAcD,CAAO,CACvC,EAEE,OAAIF,GACFI,GAAcF,EAASF,CAAO,EAGzBE,CACT,CAcA,SAASE,GAAcF,EAASF,EAAU,GAAI,CA6B5C,GA5BIA,EAAQ,OACN,CAACE,EAAQ,WAAaF,EAAQ,KAAK,aACrCE,EAAQ,UAAYF,EAAQ,KAAK,YAG/B,CAACE,EAAQ,KAAO,CAACF,EAAQ,MAC3BE,EAAQ,IAAMF,EAAQ,KAAK,IAAMA,EAAQ,KAAK,OAASA,EAAQ,KAAK,WAIxEE,EAAQ,UAAYF,EAAQ,WAAanG,GAAkB,EAEvDmG,EAAQ,iBACVE,EAAQ,eAAiBF,EAAQ,gBAE/BA,EAAQ,MAEVE,EAAQ,IAAMF,EAAQ,IAAI,SAAW,GAAKA,EAAQ,IAAM5L,MAEtD4L,EAAQ,OAAS,SACnBE,EAAQ,KAAOF,EAAQ,MAErB,CAACE,EAAQ,KAAOF,EAAQ,MAC1BE,EAAQ,IAAM,GAAGF,EAAQ,GAAG,IAE1B,OAAOA,EAAQ,SAAY,WAC7BE,EAAQ,QAAUF,EAAQ,SAExBE,EAAQ,eACVA,EAAQ,SAAW,eACV,OAAOF,EAAQ,UAAa,SACrCE,EAAQ,SAAWF,EAAQ,aACtB,CACL,MAAMK,EAAWH,EAAQ,UAAYA,EAAQ,QAC7CA,EAAQ,SAAWG,GAAY,EAAIA,EAAW,CAC/C,CACGL,EAAQ,UACVE,EAAQ,QAAUF,EAAQ,SAExBA,EAAQ,cACVE,EAAQ,YAAcF,EAAQ,aAE5B,CAACE,EAAQ,WAAaF,EAAQ,YAChCE,EAAQ,UAAYF,EAAQ,WAE1B,CAACE,EAAQ,WAAaF,EAAQ,YAChCE,EAAQ,UAAYF,EAAQ,WAE1B,OAAOA,EAAQ,QAAW,WAC5BE,EAAQ,OAASF,EAAQ,QAEvBA,EAAQ,SACVE,EAAQ,OAASF,EAAQ,OAE7B,CAaA,SAASM,GAAaJ,EAASK,EAAQ,CACrC,IAAIP,EAAU,GACVO,EACFP,EAAU,CAAE,OAAAO,GACHL,EAAQ,SAAW,OAC5BF,EAAU,CAAE,OAAQ,WAGtBI,GAAcF,EAASF,CAAO,CAChC,CAWA,SAASG,GAAcD,EAAS,CAC9B,OAAO/S,GAAkB,CACvB,IAAK,GAAG+S,EAAQ,GAAG,GACnB,KAAMA,EAAQ,KAEd,QAAS,IAAI,KAAKA,EAAQ,QAAU,GAAI,EAAE,YAAa,EACvD,UAAW,IAAI,KAAKA,EAAQ,UAAY,GAAI,EAAE,YAAa,EAC3D,OAAQA,EAAQ,OAChB,OAAQA,EAAQ,OAChB,IAAK,OAAOA,EAAQ,KAAQ,UAAY,OAAOA,EAAQ,KAAQ,SAAW,GAAGA,EAAQ,GAAG,GAAK,OAC7F,SAAUA,EAAQ,SAClB,MAAO,CACL,QAASA,EAAQ,QACjB,YAAaA,EAAQ,YACrB,WAAYA,EAAQ,UACpB,WAAYA,EAAQ,SACrB,CACL,CAAG,CACH,CCjJA,MAAMM,GAA0B,IAMhC,MAAMC,EAAO,CAuCV,aAAc,CACb,KAAK,oBAAsB,GAC3B,KAAK,gBAAkB,GACvB,KAAK,iBAAmB,GACxB,KAAK,aAAe,GACpB,KAAK,aAAe,GACpB,KAAK,MAAQ,GACb,KAAK,MAAQ,GACb,KAAK,OAAS,GACd,KAAK,UAAY,GACjB,KAAK,uBAAyB,EAC/B,CAMA,OAAO,MAAMC,EAAO,CACnB,MAAMC,EAAW,IAAIF,GACrB,OAAIC,IACFC,EAAS,aAAe,CAAC,GAAGD,EAAM,YAAY,EAC9CC,EAAS,MAAQ,CAAE,GAAGD,EAAM,KAAK,EACjCC,EAAS,OAAS,CAAE,GAAGD,EAAM,MAAM,EACnCC,EAAS,UAAY,CAAE,GAAGD,EAAM,SAAS,EACzCC,EAAS,MAAQD,EAAM,MACvBC,EAAS,OAASD,EAAM,OACxBC,EAAS,MAAQD,EAAM,MACvBC,EAAS,SAAWD,EAAM,SAC1BC,EAAS,iBAAmBD,EAAM,iBAClCC,EAAS,aAAeD,EAAM,aAC9BC,EAAS,iBAAmB,CAAC,GAAGD,EAAM,gBAAgB,EACtDC,EAAS,gBAAkBD,EAAM,gBACjCC,EAAS,aAAe,CAAC,GAAGD,EAAM,YAAY,EAC9CC,EAAS,uBAAyB,CAAE,GAAGD,EAAM,sBAAsB,GAE9DC,CACR,CAMA,iBAAiBvW,EAAU,CAC1B,KAAK,gBAAgB,KAAKA,CAAQ,CACnC,CAKA,kBAAkBA,EAAU,CAC3B,YAAK,iBAAiB,KAAKA,CAAQ,EAC5B,IACR,CAKA,QAAQwW,EAAM,CACb,YAAK,MAAQA,GAAQ,GACjB,KAAK,UACPR,GAAc,KAAK,SAAU,CAAE,KAAAQ,CAAM,GAEvC,KAAK,sBAAqB,EACnB,IACR,CAKA,SAAU,CACT,OAAO,KAAK,KACb,CAKA,mBAAoB,CACnB,OAAO,KAAK,eACb,CAKA,kBAAkBC,EAAgB,CACjC,YAAK,gBAAkBA,EAChB,IACR,CAKA,QAAQC,EAAM,CACb,YAAK,MAAQ,CACX,GAAG,KAAK,MACR,GAAGA,CACT,EACI,KAAK,sBAAqB,EACnB,IACR,CAKA,OAAOlZ,EAAKuD,EAAO,CAClB,YAAK,MAAQ,CAAE,GAAG,KAAK,MAAO,CAACvD,CAAG,EAAGuD,GACrC,KAAK,sBAAqB,EACnB,IACR,CAKA,UAAU4V,EAAQ,CACjB,YAAK,OAAS,CACZ,GAAG,KAAK,OACR,GAAGA,CACT,EACI,KAAK,sBAAqB,EACnB,IACR,CAKA,SAASnZ,EAAKoZ,EAAO,CACpB,YAAK,OAAS,CAAE,GAAG,KAAK,OAAQ,CAACpZ,CAAG,EAAGoZ,GACvC,KAAK,sBAAqB,EACnB,IACR,CAKA,eAAeC,EAAa,CAC3B,YAAK,aAAeA,EACpB,KAAK,sBAAqB,EACnB,IACR,CAKA,SAEC1W,EACA,CACA,YAAK,OAASA,EACd,KAAK,sBAAqB,EACnB,IACR,CAKA,mBAAmBjE,EAAM,CACxB,YAAK,iBAAmBA,EACxB,KAAK,sBAAqB,EACnB,IACR,CAKA,WAAWsB,EAAKoY,EAAS,CACxB,OAAIA,IAAY,KAEd,OAAO,KAAK,UAAUpY,CAAG,EAEzB,KAAK,UAAUA,CAAG,EAAIoY,EAGxB,KAAK,sBAAqB,EACnB,IACR,CAKA,QAAQkB,EAAM,CACb,YAAK,MAAQA,EACb,KAAK,sBAAqB,EACnB,IACR,CAKA,SAAU,CACT,OAAO,KAAK,KACb,CAKA,gBAAiB,CAGhB,MAAMA,EAAO,KAAK,UAClB,OAAOA,GAAQA,EAAK,WACrB,CAKA,WAAWhB,EAAS,CACnB,OAAKA,EAGH,KAAK,SAAWA,EAFhB,OAAO,KAAK,SAId,KAAK,sBAAqB,EACnB,IACR,CAKA,YAAa,CACZ,OAAO,KAAK,QACb,CAKA,OAAOiB,EAAgB,CACtB,GAAI,CAACA,EACH,OAAO,KAGT,GAAI,OAAOA,GAAmB,WAAY,CACxC,MAAMC,EAAgBD,EAAiB,IAAI,EAC3C,OAAOC,aAAwBX,GAAQW,EAAe,IACvD,CAED,OAAID,aAA0BV,IAC5B,KAAK,MAAQ,CAAE,GAAG,KAAK,MAAO,GAAGU,EAAe,OAChD,KAAK,OAAS,CAAE,GAAG,KAAK,OAAQ,GAAGA,EAAe,QAClD,KAAK,UAAY,CAAE,GAAG,KAAK,UAAW,GAAGA,EAAe,WACpDA,EAAe,OAAS,OAAO,KAAKA,EAAe,KAAK,EAAE,SAC5D,KAAK,MAAQA,EAAe,OAE1BA,EAAe,SACjB,KAAK,OAASA,EAAe,QAE3BA,EAAe,eACjB,KAAK,aAAeA,EAAe,cAEjCA,EAAe,kBACjB,KAAK,gBAAkBA,EAAe,kBAE/B1b,GAAc0b,CAAc,IAErCA,EAAiBA,EACjB,KAAK,MAAQ,CAAE,GAAG,KAAK,MAAO,GAAGA,EAAe,MAChD,KAAK,OAAS,CAAE,GAAG,KAAK,OAAQ,GAAGA,EAAe,OAClD,KAAK,UAAY,CAAE,GAAG,KAAK,UAAW,GAAGA,EAAe,UACpDA,EAAe,OACjB,KAAK,MAAQA,EAAe,MAE1BA,EAAe,QACjB,KAAK,OAASA,EAAe,OAE3BA,EAAe,cACjB,KAAK,aAAeA,EAAe,aAEjCA,EAAe,iBACjB,KAAK,gBAAkBA,EAAe,iBAInC,IACR,CAKA,OAAQ,CACP,YAAK,aAAe,GACpB,KAAK,MAAQ,GACb,KAAK,OAAS,GACd,KAAK,MAAQ,GACb,KAAK,UAAY,GACjB,KAAK,OAAS,OACd,KAAK,iBAAmB,OACxB,KAAK,aAAe,OACpB,KAAK,gBAAkB,OACvB,KAAK,MAAQ,OACb,KAAK,SAAW,OAChB,KAAK,sBAAqB,EAC1B,KAAK,aAAe,GACb,IACR,CAKA,cAAcE,EAAYC,EAAgB,CACzC,MAAMC,EAAY,OAAOD,GAAmB,SAAWA,EAAiBd,GAGxE,GAAIe,GAAa,EACf,OAAO,KAGT,MAAMC,EAAmB,CACvB,UAAW5H,GAAwB,EACnC,GAAGyH,CACT,EACI,YAAK,aAAe,CAAC,GAAG,KAAK,aAAcG,CAAgB,EAAE,MAAM,CAACD,CAAS,EAC7E,KAAK,sBAAqB,EAEnB,IACR,CAKA,mBAAoB,CACnB,OAAO,KAAK,aAAa,KAAK,aAAa,OAAS,CAAC,CACtD,CAKA,kBAAmB,CAClB,YAAK,aAAe,GACpB,KAAK,sBAAqB,EACnB,IACR,CAKA,cAAc9E,EAAY,CACzB,YAAK,aAAa,KAAKA,CAAU,EAC1B,IACR,CAKA,gBAAiB,CAChB,OAAO,KAAK,YACb,CAKA,kBAAmB,CAClB,YAAK,aAAe,GACb,IACR,CASA,aAAavJ,EAAOuO,EAAO,GAAI,CAuB9B,GAtBI,KAAK,QAAU,OAAO,KAAK,KAAK,MAAM,EAAE,SAC1CvO,EAAM,MAAQ,CAAE,GAAG,KAAK,OAAQ,GAAGA,EAAM,QAEvC,KAAK,OAAS,OAAO,KAAK,KAAK,KAAK,EAAE,SACxCA,EAAM,KAAO,CAAE,GAAG,KAAK,MAAO,GAAGA,EAAM,OAErC,KAAK,OAAS,OAAO,KAAK,KAAK,KAAK,EAAE,SACxCA,EAAM,KAAO,CAAE,GAAG,KAAK,MAAO,GAAGA,EAAM,OAErC,KAAK,WAAa,OAAO,KAAK,KAAK,SAAS,EAAE,SAChDA,EAAM,SAAW,CAAE,GAAG,KAAK,UAAW,GAAGA,EAAM,WAE7C,KAAK,SACPA,EAAM,MAAQ,KAAK,QAEjB,KAAK,mBACPA,EAAM,YAAc,KAAK,kBAMvB,KAAK,MAAO,CACdA,EAAM,SAAW,CAAE,MAAO,KAAK,MAAM,kBAAmB,GAAGA,EAAM,UACjE,MAAMwO,EAAc,KAAK,MAAM,YAC/B,GAAIA,EAAa,CACfxO,EAAM,sBAAwB,CAC5B,uBAAwBwO,EAAY,0BAA2B,EAC/D,GAAGxO,EAAM,qBACnB,EACQ,MAAMyO,EAAkBD,EAAY,KAChCC,IACFzO,EAAM,KAAO,CAAE,YAAayO,EAAiB,GAAGzO,EAAM,MAEzD,CACF,CAED,YAAK,kBAAkBA,CAAK,EAE5BA,EAAM,YAAc,CAAC,GAAIA,EAAM,aAAe,GAAK,GAAG,KAAK,YAAY,EACvEA,EAAM,YAAcA,EAAM,YAAY,OAAS,EAAIA,EAAM,YAAc,OAEvEA,EAAM,sBAAwB,CAAE,GAAGA,EAAM,sBAAuB,GAAG,KAAK,wBAEjE,KAAK,uBAAuB,CAAC,GAAG0O,GAA0B,EAAE,GAAG,KAAK,gBAAgB,EAAG1O,EAAOuO,CAAI,CAC1G,CAKA,yBAAyBI,EAAS,CACjC,YAAK,uBAAyB,CAAE,GAAG,KAAK,uBAAwB,GAAGA,GAE5D,IACR,CAKA,uBACCC,EACA5O,EACAuO,EACAM,EAAQ,EACR,CACA,OAAO,IAAI1K,GAAY,CAACC,EAASI,IAAW,CAC1C,MAAMsK,EAAYF,EAAWC,CAAK,EAClC,GAAI7O,IAAU,MAAQ,OAAO8O,GAAc,WACzC1K,EAAQpE,CAAK,MACR,CACL,MAAM5D,EAAS0S,EAAU,CAAE,GAAG9O,CAAO,EAAEuO,CAAI,GAE1C,OAAO,iBAAqB,KAAe,mBAC1CO,EAAU,IACV1S,IAAW,MACX3E,EAAO,IAAI,oBAAoBqX,EAAU,EAAE,iBAAiB,EAE1Dnc,GAAWyJ,CAAM,EACdA,EACF,KAAK2S,GAAS,KAAK,uBAAuBH,EAAYG,EAAOR,EAAMM,EAAQ,CAAC,EAAE,KAAKzK,CAAO,CAAC,EAC3F,KAAK,KAAMI,CAAM,EAEf,KAAK,uBAAuBoK,EAAYxS,EAAQmS,EAAMM,EAAQ,CAAC,EACjE,KAAKzK,CAAO,EACZ,KAAK,KAAMI,CAAM,CAEvB,CACP,CAAK,CACF,CAKA,uBAAwB,CAIlB,KAAK,sBACR,KAAK,oBAAsB,GAC3B,KAAK,gBAAgB,QAAQtN,GAAY,CACvCA,EAAS,IAAI,CACrB,CAAO,EACD,KAAK,oBAAsB,GAE9B,CAMA,kBAAkB8I,EAAO,CAExBA,EAAM,YAAcA,EAAM,YAAckC,GAASlC,EAAM,WAAW,EAAI,GAGlE,KAAK,eACPA,EAAM,YAAcA,EAAM,YAAY,OAAO,KAAK,YAAY,GAI5DA,EAAM,aAAe,CAACA,EAAM,YAAY,QAC1C,OAAOA,EAAM,WAEhB,CACH,CAKA,SAAS0O,IAA2B,CAClC,OAAOvb,GAAmB,wBAAyB,IAAM,EAAE,CAC7D,CAMA,SAAS6b,GAAwB9X,EAAU,CACzCwX,GAA0B,EAAC,KAAKxX,CAAQ,CAC1C,CC1hBA,MAAM+X,GAAc,EAMdC,GAAsB,IAK5B,MAAMC,EAAK,CAaR,YAAYC,EAAQ5B,EAAQ,IAAID,GAAW8B,EAAWJ,GAAa,CAAC,KAAK,SAAWI,EACnF,KAAK,OAAS,CAAC,CAAE,MAAA7B,CAAO,GACpB4B,GACF,KAAK,WAAWA,CAAM,CAEzB,CAKA,YAAYxF,EAAS,CACpB,OAAO,KAAK,SAAWA,CACxB,CAKA,WAAWwF,EAAQ,CAClB,MAAME,EAAM,KAAK,cACjBA,EAAI,OAASF,EACTA,GAAUA,EAAO,mBACnBA,EAAO,kBAAiB,CAE3B,CAKA,WAAY,CAEX,MAAM5B,EAAQD,GAAM,MAAM,KAAK,SAAU,GACzC,YAAK,SAAU,EAAC,KAAK,CACnB,OAAQ,KAAK,UAAW,EACxB,MAAAC,CACN,CAAK,EACMA,CACR,CAKA,UAAW,CACV,OAAI,KAAK,SAAU,EAAC,QAAU,EAAU,GACjC,CAAC,CAAC,KAAK,SAAU,EAAC,IAAG,CAC7B,CAKA,UAAUtW,EAAU,CACnB,MAAMsW,EAAQ,KAAK,YACnB,GAAI,CACFtW,EAASsW,CAAK,CACpB,QAAc,CACR,KAAK,SAAQ,CACd,CACF,CAKA,WAAY,CACX,OAAO,KAAK,YAAa,EAAC,MAC3B,CAGA,UAAW,CACV,OAAO,KAAK,YAAa,EAAC,KAC3B,CAGA,UAAW,CACV,OAAO,KAAK,MACb,CAGA,aAAc,CACb,OAAO,KAAK,OAAO,KAAK,OAAO,OAAS,CAAC,CAC1C,CAKA,iBAAiB5T,EAAW2U,EAAM,CACjC,MAAM/M,EAAW,KAAK,aAAe+M,GAAQA,EAAK,SAAWA,EAAK,SAAWrN,GAAK,EAC5EqO,EAAqB,IAAI,MAAM,2BAA2B,EAChE,YAAK,YAAY,CAACH,EAAQ5B,IAAU,CAClC4B,EAAO,iBACLxV,EACA,CACE,kBAAmBA,EACnB,mBAAA2V,EACA,GAAGhB,EACH,SAAU/M,CACX,EACDgM,CACR,CACA,CAAK,EACMhM,CACR,CAKA,eACCnM,EAEAgC,EACAkX,EACA,CACA,MAAM/M,EAAW,KAAK,aAAe+M,GAAQA,EAAK,SAAWA,EAAK,SAAWrN,GAAK,EAC5EqO,EAAqB,IAAI,MAAMla,CAAO,EAC5C,YAAK,YAAY,CAAC+Z,EAAQ5B,IAAU,CAClC4B,EAAO,eACL/Z,EACAgC,EACA,CACE,kBAAmBhC,EACnB,mBAAAka,EACA,GAAGhB,EACH,SAAU/M,CACX,EACDgM,CACR,CACA,CAAK,EACMhM,CACR,CAKA,aAAaxB,EAAOuO,EAAM,CACzB,MAAM/M,EAAU+M,GAAQA,EAAK,SAAWA,EAAK,SAAWrN,KACxD,OAAKlB,EAAM,OACT,KAAK,aAAewB,GAGtB,KAAK,YAAY,CAAC4N,EAAQ5B,IAAU,CAClC4B,EAAO,aAAapP,EAAO,CAAE,GAAGuO,EAAM,SAAU/M,GAAWgM,CAAK,CACtE,CAAK,EACMhM,CACR,CAKA,aAAc,CACb,OAAO,KAAK,YACb,CAKA,cAAc2M,EAAYI,EAAM,CAC/B,KAAM,CAAE,MAAAf,EAAO,OAAA4B,CAAQ,EAAG,KAAK,YAAW,EAE1C,GAAI,CAACA,EAAQ,OAEb,KAAM,CAAE,iBAAAI,EAAmB,KAAM,eAAApB,EAAiBc,EAAqB,EACpEE,EAAO,YAAcA,EAAO,WAAU,GAAO,GAEhD,GAAIhB,GAAkB,EAAG,OAGzB,MAAME,EAAmB,CAAE,UADT5H,KACoB,GAAGyH,CAAU,EAC7CsB,EAAkBD,EACnBvY,GAAe,IAAMuY,EAAiBlB,EAAkBC,CAAI,CAAC,EAC9DD,EAEAmB,IAAoB,OAEpBL,EAAO,MACTA,EAAO,KAAK,sBAAuBK,EAAiBlB,CAAI,EAG1Df,EAAM,cAAciC,EAAiBrB,CAAc,EACpD,CAKA,QAAQV,EAAM,CACb,KAAK,SAAQ,EAAG,QAAQA,CAAI,CAC7B,CAKA,QAAQE,EAAM,CACb,KAAK,SAAQ,EAAG,QAAQA,CAAI,CAC7B,CAKA,UAAUC,EAAQ,CACjB,KAAK,SAAQ,EAAG,UAAUA,CAAM,CACjC,CAKA,OAAOnZ,EAAKuD,EAAO,CAClB,KAAK,SAAU,EAAC,OAAOvD,EAAKuD,CAAK,CAClC,CAKA,SAASvD,EAAKoZ,EAAO,CACpB,KAAK,SAAU,EAAC,SAASpZ,EAAKoZ,CAAK,CACpC,CAMA,WAAW1a,EAAM0Z,EAAS,CACzB,KAAK,SAAU,EAAC,WAAW1Z,EAAM0Z,CAAO,CACzC,CAKA,eAAe5V,EAAU,CACxB,KAAM,CAAE,MAAAsW,EAAO,OAAA4B,CAAQ,EAAG,KAAK,YAAW,EACtCA,GACFlY,EAASsW,CAAK,CAEjB,CAKA,IAAItW,EAAU,CACb,MAAMwY,EAASC,GAAS,IAAI,EAC5B,GAAI,CACFzY,EAAS,IAAI,CACnB,QAAc,CACRyY,GAASD,CAAM,CAChB,CACF,CAKA,eAAeE,EAAa,CAC3B,MAAMR,EAAS,KAAK,YACpB,GAAI,CAACA,EAAQ,OAAO,KACpB,GAAI,CACF,OAAOA,EAAO,eAAeQ,CAAW,CACzC,MAAa,CACZ,OAAC,OAAO,iBAAqB,KAAe,mBAAqBnY,EAAO,KAAK,+BAA+BmY,EAAY,EAAE,uBAAuB,EAC1I,IACR,CACF,CAKA,iBAAiB9C,EAAS+C,EAAuB,CAChD,MAAMzT,EAAS,KAAK,qBAAqB,mBAAoB0Q,EAAS+C,CAAqB,EAE3F,OAAK,OAAO,iBAAqB,KAAe,mBAAqB,CAACzT,GAEpE,QAAQ,KAAK;AAAA;AAAA;AAAA,CAGlB,EAGUA,CACR,CAKA,cAAe,CACd,OAAO,KAAK,qBAAqB,cAAc,CAChD,CAKA,eAAe0T,EAAa,GAAO,CAElC,GAAIA,EACF,OAAO,KAAK,aAId,KAAK,mBAAkB,CACxB,CAKA,YAAa,CAEZ,MAAMtC,EADQ,KAAK,cACC,MACdR,EAAUQ,EAAM,aAClBR,GACFI,GAAaJ,CAAO,EAEtB,KAAK,mBAAkB,EAGvBQ,EAAM,WAAU,CACjB,CAKA,aAAaV,EAAS,CACrB,KAAM,CAAE,MAAAU,EAAO,OAAA4B,CAAQ,EAAG,KAAK,YAAW,EACpC,CAAE,QAAAW,EAAS,YAAAC,EAAcpD,EAAqB,EAAIwC,GAAUA,EAAO,WAAY,GAAK,GAGpF,CAAE,UAAAa,CAAW,EAAGhd,GAAW,WAAa,GAExC+Z,EAAUH,GAAY,CAC1B,QAAAkD,EACA,YAAAC,EACA,KAAMxC,EAAM,QAAS,EACrB,GAAIyC,GAAa,CAAE,UAAAA,GACnB,GAAGnD,CACT,CAAK,EAGKoD,EAAiB1C,EAAM,YAAcA,EAAM,WAAU,EAC3D,OAAI0C,GAAkBA,EAAe,SAAW,MAC9ChD,GAAcgD,EAAgB,CAAE,OAAQ,QAAU,GAEpD,KAAK,WAAU,EAGf1C,EAAM,WAAWR,CAAO,EAEjBA,CACR,CAMA,sBAAuB,CACtB,MAAMoC,EAAS,KAAK,YACdxb,EAAUwb,GAAUA,EAAO,WAAU,EAC3C,MAAO,GAAQxb,GAAWA,EAAQ,eACnC,CAKA,oBAAqB,CACpB,KAAM,CAAE,MAAA4Z,EAAO,OAAA4B,CAAQ,EAAG,KAAK,YAAW,EAEpCpC,EAAUQ,EAAM,aAClBR,GAAWoC,GAAUA,EAAO,gBAC9BA,EAAO,eAAepC,CAAO,CAEhC,CAQA,YAAY9V,EAAU,CACrB,KAAM,CAAE,MAAAsW,EAAO,OAAA4B,CAAQ,EAAG,KAAK,YAAW,EACtCA,GACFlY,EAASkY,EAAQ5B,CAAK,CAEzB,CAOA,qBAAqBzP,KAAWrG,EAAM,CAErC,MAAMyY,EADUC,KACO,WACvB,GAAID,GAAUA,EAAO,YAAc,OAAOA,EAAO,WAAWpS,CAAM,GAAM,WACtE,OAAOoS,EAAO,WAAWpS,CAAM,EAAE,MAAM,KAAMrG,CAAI,GAElD,OAAO,iBAAqB,KAAe,mBAAqBD,EAAO,KAAK,oBAAoBsG,CAAM,oCAAoC,CAC5I,CACH,CASA,SAASqS,IAAiB,CACxB,OAAAnd,GAAW,WAAaA,GAAW,YAAc,CAC/C,WAAY,CAAE,EACd,IAAK,MACT,EACSA,EACT,CAOA,SAAS0c,GAASU,EAAK,CACrB,MAAMC,EAAWF,KACXV,EAASa,GAAkBD,CAAQ,EACzC,OAAAE,GAAgBF,EAAUD,CAAG,EACtBX,CACT,CASA,SAASe,IAAgB,CAEvB,MAAMH,EAAWF,KAEjB,GAAIE,EAAS,YAAcA,EAAS,WAAW,IAAK,CAClD,MAAMD,EAAMC,EAAS,WAAW,IAAI,cAAa,EAEjD,GAAID,EACF,OAAOA,CAEV,CAGD,OAAOK,GAAaJ,CAAQ,CAC9B,CAEA,SAASI,GAAaJ,EAAWF,KAAkB,CAEjD,OAAI,CAACO,GAAgBL,CAAQ,GAAKC,GAAkBD,CAAQ,EAAE,YAAYrB,EAAW,IACnFuB,GAAgBF,EAAU,IAAInB,EAAK,EAI9BoB,GAAkBD,CAAQ,CACnC,CAiDA,SAASK,GAAgBC,EAAS,CAChC,MAAO,CAAC,EAAEA,GAAWA,EAAQ,YAAcA,EAAQ,WAAW,IAChE,CAQA,SAASL,GAAkBK,EAAS,CAClC,OAAOzd,GAAmB,MAAO,IAAM,IAAIgc,GAAOyB,CAAO,CAC3D,CAQA,SAASJ,GAAgBI,EAASP,EAAK,CACrC,GAAI,CAACO,EAAS,MAAO,GACrB,MAAMrd,EAAcqd,EAAQ,WAAaA,EAAQ,YAAc,GAC/D,OAAArd,EAAW,IAAM8c,EACV,EACT,CCviBA,SAASQ,GACPC,EACA,CACA,GAAI,OAAO,oBAAuB,WAAa,CAAC,mBAC9C,MAAO,GAGT,MAAM1B,EAASqB,KAAgB,YACzB7c,EAAUkd,GAAiB1B,GAAUA,EAAO,WAAY,EAC9D,MAAO,CAAC,CAACxb,IAAYA,EAAQ,eAAiB,qBAAsBA,GAAW,kBAAmBA,EACpG,CCfA,SAASmd,GAAqBC,EAAU,CAGtC,OAFYA,GAAYP,MACN,WACL,gBACf,CCLA,IAAIQ,GAAqB,GAKzB,SAASC,IAA+B,CAClCD,KAIJA,GAAqB,GACrBzT,GAA0B,QAAS2T,EAAa,EAChD3T,GAA0B,qBAAsB2T,EAAa,EAC/D,CAKA,SAASA,IAAgB,CACvB,MAAMC,EAAoBL,KAC1B,GAAIK,EAAmB,CACrB,MAAM/D,EAAS,kBACd,OAAO,iBAAqB,KAAe,mBAAqB5V,EAAO,IAAI,0BAA0B4V,CAAM,0BAA0B,EACtI+D,EAAkB,UAAU/D,CAAM,CACnC,CACH,CAIA8D,GAAc,IAAM,8BCxBpB,MAAME,EAAa,CAChB,QAAS,CAAC,KAAK,MAAQ,CAAE,CAAC,CAE1B,YAAYC,EAAS,IAAM,CAACD,GAAa,UAAU,OAAO,KAAK,IAAI,EAClE,KAAK,QAAUC,CAChB,CAQA,IAAItD,EAAM,CACL,KAAK,MAAM,OAAS,KAAK,QAC3BA,EAAK,aAAe,OAEpB,KAAK,MAAM,KAAKA,CAAI,CAEvB,CACH,CAKA,MAAMuD,EAAM,CAIT,SAAU,CAAC,KAAK,QAAUrQ,GAAO,CAAC,CAKlC,SAAU,CAAC,KAAK,OAASA,GAAK,EAAG,UAAU,EAAE,CAAE,CAiB/C,SAAU,CAAC,KAAK,eAAiB0F,GAAiB,CAAC,CAiBnD,SAAU,CAAC,KAAK,KAAO,CAAE,CAAC,CAM1B,SAAU,CAAC,KAAK,KAAO,CAAE,CAAC,CAa1B,SAAU,CAAC,KAAK,aAAe,QAAS,CASxC,YAAY4K,EAAa,CACxB,GADyBD,GAAK,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAK,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAK,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAK,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAK,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAK,UAAU,QAAQ,KAAK,IAAI,EAC/N,CAACC,EACH,OAAO,KAELA,EAAY,UACd,KAAK,QAAUA,EAAY,SAEzBA,EAAY,SACd,KAAK,OAASA,EAAY,QAExBA,EAAY,eACd,KAAK,aAAeA,EAAY,cAG9B,YAAaA,IACf,KAAK,QAAUA,EAAY,SAEzBA,EAAY,KACd,KAAK,GAAKA,EAAY,IAEpBA,EAAY,cACd,KAAK,YAAcA,EAAY,aAE7BA,EAAY,OACd,KAAK,KAAOA,EAAY,MAEtBA,EAAY,OACd,KAAK,KAAOA,EAAY,MAEtBA,EAAY,SACd,KAAK,OAASA,EAAY,QAExBA,EAAY,iBACd,KAAK,eAAiBA,EAAY,gBAEhCA,EAAY,eACd,KAAK,aAAeA,EAAY,cAE9BA,EAAY,eACd,KAAK,aAAeA,EAAY,aAEnC,CAKA,WACCA,EACA,CACA,MAAMC,EAAY,IAAIF,GAAK,CACzB,GAAGC,EACH,aAAc,KAAK,OACnB,QAAS,KAAK,QACd,QAAS,KAAK,OACpB,CAAK,EASD,GAPAC,EAAU,aAAe,KAAK,aAC1BA,EAAU,cACZA,EAAU,aAAa,IAAIA,CAAS,EAGtCA,EAAU,YAAc,KAAK,aAExB,OAAO,iBAAqB,KAAe,mBAAqBA,EAAU,YAAa,CAC1F,MAAMC,EAASF,GAAeA,EAAY,IAAO,iBAC3CG,EAAUF,EAAU,YAAY,MAAQ,mBACxCG,EAAQH,EAAU,YAAY,OAE9BI,EAAa,uBAAuBH,CAAK,0BAA0BC,CAAO,MAAMC,CAAK,KAC3FH,EAAU,YAAY,SAAS,aAAaA,EAAU,MAAM,EAAI,CAAE,WAAAI,GAClEpa,EAAO,IAAIoa,CAAU,CACtB,CAED,OAAOJ,CACR,CAKA,OAAO/c,EAAKuD,EAAO,CAClB,YAAK,KAAO,CAAE,GAAG,KAAK,KAAM,CAACvD,CAAG,EAAGuD,GAC5B,IACR,CAMA,QAAQvD,EAAKuD,EAAO,CACnB,YAAK,KAAO,CAAE,GAAG,KAAK,KAAM,CAACvD,CAAG,EAAGuD,GAC5B,IACR,CAKA,UAAUA,EAAO,CAChB,YAAK,OAASA,EACP,IACR,CAKA,cAAc6Z,EAAY,CACzB,KAAK,OAAO,mBAAoB,OAAOA,CAAU,CAAC,EAClD,MAAMC,EAAaC,GAAuBF,CAAU,EACpD,OAAIC,IAAe,iBACjB,KAAK,UAAUA,CAAU,EAEpB,IACR,CAKA,WAAY,CACX,OAAO,KAAK,SAAW,IACxB,CAKA,OAAOE,EAAc,CACpB,IACG,OAAO,iBAAqB,KAAe,mBAE5C,KAAK,aACL,KAAK,YAAY,SAAW,KAAK,OACjC,CACA,KAAM,CAAE,WAAAJ,CAAY,EAAG,KAAK,YAAY,SAAS,aAAa,KAAK,MAAM,EACrEA,GACFpa,EAAO,IAAKoa,EAAa,QAAQ,WAAY,WAAW,CAAC,CAE5D,CAED,KAAK,aAAe,OAAOI,GAAiB,SAAWA,EAAerL,IACvE,CAKA,eAAgB,CACf,IAAIsL,EAAgB,GACpB,OAAI,KAAK,UAAY,SACnBA,EAAgB,KAAK,QAAU,KAAO,MAEjC,GAAG,KAAK,OAAO,IAAI,KAAK,MAAM,GAAGA,CAAa,EACtD,CAKA,WAAY,CACX,OAAOjY,GAAkB,CACvB,KAAM,KAAK,KACX,YAAa,KAAK,YAClB,aAAc,KAAK,aACnB,GAAI,KAAK,GACT,aAAc,KAAK,aACnB,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,eAAgB,KAAK,eACrB,OAAQ,KAAK,OACb,KAAM,KAAK,KACX,QAAS,KAAK,OACpB,CAAK,CACF,CAKA,kBAAkBuX,EAAa,CAC9B,YAAK,KAAOA,EAAY,MAAQ,GAChC,KAAK,YAAcA,EAAY,YAC/B,KAAK,aAAeA,EAAY,aAChC,KAAK,GAAKA,EAAY,GACtB,KAAK,aAAeA,EAAY,aAChC,KAAK,QAAUA,EAAY,QAC3B,KAAK,OAASA,EAAY,QAAU,KAAK,OACzC,KAAK,eAAiBA,EAAY,gBAAkB,KAAK,eACzD,KAAK,OAASA,EAAY,OAC1B,KAAK,KAAOA,EAAY,MAAQ,GAChC,KAAK,QAAUA,EAAY,SAAW,KAAK,QAEpC,IACR,CAKA,iBAAkB,CACjB,OAAOvX,GAAkB,CACvB,KAAM,OAAO,KAAK,KAAK,IAAI,EAAE,OAAS,EAAI,KAAK,KAAO,OACtD,YAAa,KAAK,YAClB,GAAI,KAAK,GACT,eAAgB,KAAK,aACrB,QAAS,KAAK,OACd,OAAQ,KAAK,OACb,KAAM,OAAO,KAAK,KAAK,IAAI,EAAE,OAAS,EAAI,KAAK,KAAO,OACtD,SAAU,KAAK,OACrB,CAAK,CACF,CAKA,QAEF,CACG,OAAOA,GAAkB,CACvB,KAAM,OAAO,KAAK,KAAK,IAAI,EAAE,OAAS,EAAI,KAAK,KAAO,OACtD,YAAa,KAAK,YAClB,GAAI,KAAK,GACT,eAAgB,KAAK,aACrB,QAAS,KAAK,OACd,gBAAiB,KAAK,eACtB,OAAQ,KAAK,OACb,KAAM,OAAO,KAAK,KAAK,IAAI,EAAE,OAAS,EAAI,KAAK,KAAO,OACtD,UAAW,KAAK,aAChB,SAAU,KAAK,OACrB,CAAK,CACF,CACH,CAQA,SAAS+X,GAAuBF,EAAY,CAC1C,GAAIA,EAAa,KAAOA,GAAc,IACpC,MAAO,KAGT,GAAIA,GAAc,KAAOA,EAAa,IACpC,OAAQA,EAAU,CAChB,IAAK,KACH,MAAO,kBACT,IAAK,KACH,MAAO,oBACT,IAAK,KACH,MAAO,YACT,IAAK,KACH,MAAO,iBACT,IAAK,KACH,MAAO,sBACT,IAAK,KACH,MAAO,qBACT,QACE,MAAO,kBACV,CAGH,GAAIA,GAAc,KAAOA,EAAa,IACpC,OAAQA,EAAU,CAChB,IAAK,KACH,MAAO,gBACT,IAAK,KACH,MAAO,cACT,IAAK,KACH,MAAO,oBACT,QACE,MAAO,gBACV,CAGH,MAAO,eACT,CC/WA,MAAMK,WAAoBZ,EAAM,CAM7B,QAAS,CAAC,KAAK,cAAgB,CAAE,CAAC,CAElC,SAAU,CAAC,KAAK,UAAY,CAAE,CAAC,CAE/B,SAAU,CAAC,KAAK,8BAAgC,MAAU,CAS1D,YAAYa,EAAoB/B,EAAK,CACpC,MAAM+B,CAAkB,EAAED,GAAY,UAAU,OAAO,KAAK,IAAI,EAAEA,GAAY,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAY,UAAU,QAAQ,KAAK,IAAI,EAClJ,KAAK,KAAO9B,GAAOI,KAEnB,KAAK,MAAQ2B,EAAmB,MAAQ,GAExC,KAAK,SAAW,CACd,OAAQ,SACR,GAAGA,EAAmB,SACtB,aAAc,CAAE,CACtB,EAEI,KAAK,SAAWA,EAAmB,QAGnC,KAAK,YAAc,KAInB,MAAMC,EAAiC,KAAK,SAAS,uBACjDA,IAEF,KAAK,8BAAgC,CAAE,GAAGA,GAE7C,CAGA,IAAI,MAAO,CACV,OAAO,KAAK,KACb,CAGA,IAAI,KAAKC,EAAS,CACjB,KAAK,QAAQA,CAAO,CACrB,CAKA,QAAQlf,EAAMqF,EAAS,SAAU,CAChC,KAAK,MAAQrF,EACb,KAAK,SAAS,OAASqF,CACxB,CAMA,iBAAiB6Y,EAAS,IAAM,CAC1B,KAAK,eACR,KAAK,aAAe,IAAID,GAAaC,CAAM,GAE7C,KAAK,aAAa,IAAI,IAAI,CAC3B,CAKA,WAAW5c,EAAKoY,EAAS,CACpBA,IAAY,KAEd,OAAO,KAAK,UAAUpY,CAAG,EAEzB,KAAK,UAAUA,CAAG,EAAIoY,CAEzB,CAKA,eAAe1Z,EAAM6E,EAAOsa,EAAO,GAAI,CACtC,KAAK,cAAcnf,CAAI,EAAI,CAAE,MAAA6E,EAAO,KAAAsa,CAAI,CACzC,CAKA,YAAYC,EAAa,CACxB,KAAK,SAAW,CAAE,GAAG,KAAK,SAAU,GAAGA,EACxC,CAKA,OAAOP,EAAc,CAEpB,GAAI,KAAK,eAAiB,OACxB,OAGG,KAAK,QACP,OAAO,iBAAqB,KAAe,mBAAqBxa,EAAO,KAAK,qEAAqE,EAClJ,KAAK,KAAO,2BAId,MAAM,OAAOwa,CAAY,EAEzB,MAAM7C,EAAS,KAAK,KAAK,UAAS,EAKlC,GAJIA,GAAUA,EAAO,MACnBA,EAAO,KAAK,oBAAqB,IAAI,EAGnC,KAAK,UAAY,GAAM,EAExB,OAAO,iBAAqB,KAAe,mBAAqB3X,EAAO,IAAI,kFAAkF,EAE1J2X,GACFA,EAAO,mBAAmB,cAAe,aAAa,EAGxD,MACD,CAED,MAAMqD,EAAgB,KAAK,aAAe,KAAK,aAAa,MAAM,OAAOC,GAAKA,IAAM,MAAQA,EAAE,YAAY,EAAI,GAE1G,KAAK,UAAYD,EAAc,OAAS,IAC1C,KAAK,aAAeA,EAAc,OAAO,CAACE,EAAM7S,IAC1C6S,EAAK,cAAgB7S,EAAQ,aACxB6S,EAAK,aAAe7S,EAAQ,aAAe6S,EAAO7S,EAEpD6S,CACR,EAAE,cAGL,MAAMC,EAAW,KAAK,SAEhBpE,EAAc,CAClB,SAAU,CACR,GAAG,KAAK,UAER,MAAO,KAAK,gBAAiB,CAC9B,EACD,MAAOiE,EACP,gBAAiB,KAAK,eACtB,KAAM,KAAK,KACX,UAAW,KAAK,aAChB,YAAa,KAAK,KAClB,KAAM,cACN,sBAAuB,CACrB,GAAGG,EACH,uBAAwB,KAAK,0BAA2B,CACzD,EACD,GAAIA,EAAS,QAAU,CACrB,iBAAkB,CAChB,OAAQA,EAAS,MAClB,CACT,CACA,EAII,OAFwB,OAAO,KAAK,KAAK,aAAa,EAAE,OAAS,KAG9D,OAAO,iBAAqB,KAAe,mBAC1Cnb,EAAO,IACL,oDACA,KAAK,UAAU,KAAK,cAAe,OAAW,CAAC,CACzD,EACM+W,EAAY,aAAe,KAAK,gBAGjC,OAAO,iBAAqB,KAAe,mBAAqB/W,EAAO,IAAI,uBAAuB,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,EAEhI,KAAK,KAAK,aAAa+W,CAAW,CAC1C,CAKA,WAAY,CACX,MAAMgD,EAAc,MAAM,YAE1B,OAAOvX,GAAkB,CACvB,GAAGuX,EACH,KAAM,KAAK,KACX,QAAS,KAAK,QACpB,CAAK,CACF,CAKA,kBAAkBY,EAAoB,CACrC,aAAM,kBAAkBA,CAAkB,EAE1C,KAAK,KAAOA,EAAmB,MAAQ,GAEvC,KAAK,SAAWA,EAAmB,QAE5B,IACR,CAOA,2BAA4B,CAC3B,GAAI,KAAK,8BACP,OAAO,KAAK,8BAGd,MAAM/B,EAAM,KAAK,MAAQI,GAAa,EAChCrB,EAASiB,GAAOA,EAAI,UAAS,EAEnC,GAAI,CAACjB,EAAQ,MAAO,GAEpB,KAAM,CAAE,YAAAY,EAAa,QAAAD,CAAO,EAAKX,EAAO,WAAY,GAAI,GAClD,CAAE,UAAWyD,CAAU,EAAKzD,EAAO,OAAQ,GAAI,GAE/C0D,EAAkB,KAAK,SAAS,WAChCC,EAAcD,IAAoB,OAAYA,EAAgB,SAAU,EAAG,OAE3E,CAAE,QAASE,GAAiB3C,EAAI,WAAW,QAAS,GAAI,GAExD5X,EAAS,KAAK,SAAS,OAGvB+V,EAAc/V,GAAUA,IAAW,MAAQ,KAAK,KAAO,OAEvDwa,EAAMhZ,GAAkB,CAC5B,YAAa+V,GAAepD,GAC5B,QAAAmD,EACA,YAAAvB,EACA,aAAAwE,EACA,WAAAH,EACA,SAAU,KAAK,QACf,YAAAE,CACN,CAAK,EAKD,OAAA3D,EAAO,MAAQA,EAAO,KAAK,YAAa6D,CAAG,EAEpCA,CACR,CAQA,OAAO5C,EAAK,CACX,KAAK,KAAOA,CACb,CACH,CC5QA,MAAM6C,GAAmB,CACvB,YAAa,IACb,aAAc,IACd,kBAAmB,GACrB,EAEMC,GAAoB,eAEpBC,GAAkC,CACtC,kBACA,cACA,iBACA,eACA,iBACA,WACF,EAKA,MAAMC,WAAoChC,EAAa,CACpD,YACGiC,EACAC,EACDC,EACDlC,EACA,CACA,MAAMA,CAAM,EAAE,KAAK,cAAgBgC,EAAc,KAAK,aAAeC,EAAa,KAAK,kBAAoBC,CAAqB,CAKjI,IAAIxF,EAAM,CAGLA,EAAK,SAAW,KAAK,oBAEvBA,EAAK,OAAUiE,GAAiB,CAC9BjE,EAAK,aAAe,OAAOiE,GAAiB,SAAWA,EAAerL,KACtE,KAAK,aAAaoH,EAAK,MAAM,CACrC,EAGUA,EAAK,eAAiB,QACxB,KAAK,cAAcA,EAAK,MAAM,GAIlC,MAAM,IAAIA,CAAI,CACf,CACH,CAOA,MAAMyF,WAAwBtB,EAAY,CAEvC,QAAS,CAAC,KAAK,WAAa,CAAE,CAAC,CAK/B,SAAU,CAAC,KAAK,kBAAoB,CAAE,CAGtC,SAAU,CAAC,KAAK,UAAY,EAAM,CAGlC,SAAU,CAAC,KAAK,gCAAkC,EAAM,CAEvD,SAAU,CAAC,KAAK,uBAAyB,CAAE,CAAC,CAM7C,SAAU,CAAC,KAAK,cAAgBiB,GAAgC,CAAC,CAAE,CAEnE,YACChB,EACEsB,EAKAC,EAAeT,GAAiB,YAIhCU,EAAgBV,GAAiB,aACjCW,EAAqBX,GAAiB,kBAEtCY,EAAW,GACb,CACA,MAAM1B,EAAoBsB,CAAQ,EAAE,KAAK,SAAWA,EAAS,KAAK,aAAeC,EAAa,KAAK,cAAgBC,EAAc,KAAK,mBAAqBC,EAAmB,KAAK,SAAWC,EAASL,GAAgB,UAAU,OAAO,KAAK,IAAI,EAAEA,GAAgB,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAgB,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAgB,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAgB,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAgB,UAAU,QAAQ,KAAK,IAAI,EAC9cK,KAGD,OAAO,iBAAqB,KAAe,mBAAqBrc,EAAO,IAAI,+CAA+C,KAAK,MAAM,EAAE,EACxIic,EAAS,eAAelG,GAASA,EAAM,QAAQ,IAAI,CAAC,GAGtD,KAAK,oBAAmB,EACxB,WAAW,IAAM,CACV,KAAK,YACR,KAAK,UAAU,mBAAmB,EAClC,KAAK,cAAgB4F,GAAgC,CAAC,EACtD,KAAK,OAAM,EAEnB,EAAO,KAAK,aAAa,CACtB,CAGA,OAAOnB,EAAerL,KAAmB,CAQxC,GAPA,KAAK,UAAY,GACjB,KAAK,WAAa,GAEd,KAAK,KAAO,mBACd,KAAK,OAAOuM,GAAmB,KAAK,aAAa,EAG/C,KAAK,aAAc,EACpB,OAAO,iBAAqB,KAAe,mBAC1C1b,EAAO,IAAI,sCAAuC,IAAI,KAAKwa,EAAe,GAAI,EAAE,YAAW,EAAI,KAAK,EAAE,EAExG,UAAW/a,KAAY,KAAK,uBAC1BA,EAAS,KAAM+a,CAAY,EAG7B,KAAK,aAAa,MAAQ,KAAK,aAAa,MAAM,OAAQjE,GAAS,CAEjE,GAAIA,EAAK,SAAW,KAAK,OACvB,MAAO,GAIJA,EAAK,eACRA,EAAK,aAAeiE,EACpBjE,EAAK,UAAU,WAAW,GACzB,OAAO,iBAAqB,KAAe,mBAC1CvW,EAAO,IAAI,0DAA2D,KAAK,UAAUuW,EAAM,OAAW,CAAC,CAAC,GAG5G,MAAM+F,EAAW/F,EAAK,eAAiBiE,EACvC,OAAK8B,IACF,OAAO,iBAAqB,KAAe,mBAC1Ctc,EAAO,IACL,6EACA,KAAK,UAAUuW,EAAM,OAAW,CAAC,CAC/C,EAEe+F,CACf,CAAO,GAEA,OAAO,iBAAqB,KAAe,mBAAqBtc,EAAO,IAAI,oCAAoC,CACtH,MACO,OAAO,iBAAqB,KAAe,mBAAqBA,EAAO,IAAI,qCAAqC,EAInH,GAAI,KAAK,SAAU,CACjB,MAAM+V,EAAQ,KAAK,SAAS,SAAQ,EAChCA,EAAM,eAAgB,IAAK,MAC7BA,EAAM,QAAQ,MAAS,CAE1B,CAED,OAAO,MAAM,OAAOyE,CAAY,CACjC,CASA,6BAA6B/a,EAAU,CACtC,KAAK,uBAAuB,KAAKA,CAAQ,CAC1C,CAKA,iBAAiBoa,EAAQ,CACxB,GAAI,CAAC,KAAK,aAAc,CACtB,MAAM0C,EAAgBC,GAAO,CACvB,KAAK,WAGT,KAAK,cAAcA,CAAE,CAC7B,EACYC,EAAeD,GAAO,CACtB,KAAK,WAGT,KAAK,aAAaA,CAAE,CAC5B,EAEM,KAAK,aAAe,IAAIZ,GAA4BW,EAAcE,EAAa,KAAK,OAAQ5C,CAAM,GAGjG,OAAO,iBAAqB,KAAe,mBAAqB7Z,EAAO,IAAI,oBAAoB,EAChG,KAAK,eAAc,CACpB,CACD,KAAK,aAAa,IAAI,IAAI,CAC3B,CAQA,kBACCwa,EACA,CACE,yBAAAkC,CACD,EAEF,CACG,yBAA0B,EAC3B,EACD,CACA,KAAK,gCAAkCA,IAA6B,GAChE,KAAK,iBACP,aAAa,KAAK,cAAc,EAChC,KAAK,eAAiB,OAElB,OAAO,KAAK,KAAK,UAAU,EAAE,SAAW,GAAK,KAAK,kCACpD,KAAK,cAAgBf,GAAgC,CAAC,EACtD,KAAK,OAAOnB,CAAY,GAG7B,CAWA,gBAAgB3N,EAAQ,CACvB,KAAK,cAAgBA,CACtB,CAKA,oBAAoB2N,EAAc,CACjC,KAAK,kBAAiB,EACtB,KAAK,eAAiB,WAAW,IAAM,CACjC,CAAC,KAAK,WAAa,OAAO,KAAK,KAAK,UAAU,EAAE,SAAW,IAC7D,KAAK,cAAgBmB,GAAgC,CAAC,EACtD,KAAK,OAAOnB,CAAY,EAEhC,EAAO,KAAK,YAAY,CACrB,CAMA,cAAcmC,EAAQ,CACrB,KAAK,kBAAkB,OAAW,CAAE,yBAA0B,CAAC,KAAK,+BAA+B,CAAE,GACpG,OAAO,iBAAqB,KAAe,mBAAqB3c,EAAO,IAAI,2BAA2B2c,CAAM,EAAE,EAC/G,KAAK,WAAWA,CAAM,EAAI,IACzB,OAAO,iBAAqB,KAAe,mBAAqB3c,EAAO,IAAI,iCAAkC,OAAO,KAAK,KAAK,UAAU,EAAE,MAAM,CAClJ,CAMA,aAAa2c,EAAQ,CAQpB,GAPI,KAAK,WAAWA,CAAM,KACvB,OAAO,iBAAqB,KAAe,mBAAqB3c,EAAO,IAAI,yBAAyB2c,CAAM,EAAE,EAE7G,OAAO,KAAK,WAAWA,CAAM,GAC5B,OAAO,iBAAqB,KAAe,mBAAqB3c,EAAO,IAAI,iCAAkC,OAAO,KAAK,KAAK,UAAU,EAAE,MAAM,GAG/I,OAAO,KAAK,KAAK,UAAU,EAAE,SAAW,EAAG,CAC7C,MAAMwa,EAAerL,KACjB,KAAK,iCACP,KAAK,cAAgBwM,GAAgC,CAAC,EACtD,KAAK,OAAOnB,CAAY,GAIxB,KAAK,oBAAoBA,EAAe,KAAK,aAAe,GAAI,CAEnE,CACF,CAMA,OAAQ,CAEP,GAAI,KAAK,UACP,OAGF,MAAMoC,EAAkB,OAAO,KAAK,KAAK,UAAU,EAAE,KAAK,EAAE,EAExDA,IAAoB,KAAK,qBAC3B,KAAK,oBAEL,KAAK,kBAAoB,EAG3B,KAAK,qBAAuBA,EAExB,KAAK,mBAAqB,IAC3B,OAAO,iBAAqB,KAAe,mBAAqB5c,EAAO,IAAI,uEAAuE,EACnJ,KAAK,UAAU,mBAAmB,EAClC,KAAK,cAAgB2b,GAAgC,CAAC,EACtD,KAAK,OAAM,GAEX,KAAK,eAAc,CAEtB,CAKA,gBAAiB,EACf,OAAO,iBAAqB,KAAe,mBAAqB3b,EAAO,IAAI,yCAAyC,KAAK,iBAAiB,EAAE,EAC7I,WAAW,IAAM,CACf,KAAK,MAAK,CAChB,EAAO,KAAK,kBAAkB,CAC3B,CACH,CC/UA,SAAS6c,IAAe,CAEtB,MAAMtG,EADQ,KAAK,WACA,UAEnB,OAAOA,EACH,CACE,eAAgBA,EAAK,cAAe,CACrC,EACD,EACN,CAcA,SAASuG,GACP/F,EACA5a,EACA4gB,EACA,CAEA,GAAI,CAAC3D,GAAkBjd,CAAO,EAC5B,OAAA4a,EAAY,QAAU,GACfA,EAIT,GAAIA,EAAY,UAAY,OAC1B,OAAAA,EAAY,YAAY,CACtB,WAAY,OAAOA,EAAY,OAAO,CAC5C,CAAK,EACMA,EAKT,IAAIiG,EAuBJ,OAtBI,OAAO7gB,EAAQ,eAAkB,YACnC6gB,EAAa7gB,EAAQ,cAAc4gB,CAAe,EAClDhG,EAAY,YAAY,CACtB,WAAY,OAAOiG,CAAU,CACnC,CAAK,GACQD,EAAgB,gBAAkB,OAC3CC,EAAaD,EAAgB,cACpB,OAAO5gB,EAAQ,iBAAqB,KAC7C6gB,EAAa7gB,EAAQ,iBACrB4a,EAAY,YAAY,CACtB,WAAY,OAAOiG,CAAU,CACnC,CAAK,IAGDA,EAAa,EACbjG,EAAY,YAAY,CACtB,WAAAiG,CACN,CAAK,GAKEC,GAAkBD,CAAU,EAO5BA,GAeLjG,EAAY,QAAU,KAAK,OAAQ,EAAIiG,EAGlCjG,EAAY,UAUhB,OAAO,iBAAqB,KAAe,mBAAqB/W,EAAO,IAAI,sBAAsB+W,EAAY,EAAE,kBAAkBA,EAAY,IAAI,EAAE,EAC7IA,KAVJ,OAAO,iBAAqB,KAAe,mBAC1C/W,EAAO,IACL,oGAAoG,OAClGgd,CACD,IACT,EACWjG,MAxBN,OAAO,iBAAqB,KAAe,mBAC1C/W,EAAO,IACL,4CACE,OAAO7D,EAAQ,eAAkB,WAC7B,oCACA,4EACd,EACA,EACI4a,EAAY,QAAU,GACfA,KAhBN,OAAO,iBAAqB,KAAe,mBAAqB/W,EAAO,KAAK,kEAAkE,EAC/I+W,EAAY,QAAU,GACfA,EAkCX,CAKA,SAASkG,GAAkBC,EAAM,CAG/B,OAAI9hB,GAAM8hB,CAAI,GAAK,EAAE,OAAOA,GAAS,UAAY,OAAOA,GAAS,aAC9D,OAAO,iBAAqB,KAAe,mBAC1Cld,EAAO,KACL,0GAA0G,KAAK,UAC7Gkd,CACV,CAAS,YAAY,KAAK,UAAU,OAAOA,CAAI,CAAC,GAChD,EACW,IAILA,EAAO,GAAKA,EAAO,IACpB,OAAO,iBAAqB,KAAe,mBAC1Cld,EAAO,KAAK,oFAAoFkd,CAAI,GAAG,EAClG,IAEF,EACT,CAiBA,SAASC,GAEPxC,EACAvC,EACA,CACA,MAAMT,EAAS,KAAK,YACdxb,EAAWwb,GAAUA,EAAO,WAAU,GAAO,GAE7CyF,EAAqBjhB,EAAQ,cAAgB,SAC7CkhB,EAA0B1C,EAAmB,cAAgB,SAE/DyC,IAAuBC,KACxB,OAAO,iBAAqB,KAAe,mBAC1Crd,EAAO,MACL,iDAAiDqd,CAAuB,4CAA4CD,CAAkB;AAAA,sDACxFA,CAAkB,yCACxE,EAEIzC,EAAmB,QAAU,IAG/B,IAAI5D,EAAc,IAAI2D,GAAYC,EAAoB,IAAI,EAC1D,OAAA5D,EAAc+F,GAAO/F,EAAa5a,EAAS,CACzC,cAAewe,EAAmB,cAClC,mBAAAA,EACA,GAAGvC,CACP,CAAG,EACGrB,EAAY,SACdA,EAAY,iBAAiB5a,EAAQ,cAAiBA,EAAQ,aAAa,QAAU,EAEnFwb,GAAUA,EAAO,MACnBA,EAAO,KAAK,mBAAoBZ,CAAW,EAEtCA,CACT,CAKA,SAASuG,GACP1E,EACA+B,EACA4C,EACAC,EACAC,EACArF,EACAsF,EACA,CACA,MAAM/F,EAASiB,EAAI,YACbzc,EAAWwb,GAAUA,EAAO,WAAU,GAAO,GAEnD,IAAIZ,EAAc,IAAIiF,GAAgBrB,EAAoB/B,EAAK2E,EAAaC,EAAcE,EAAmBD,CAAO,EACpH,OAAA1G,EAAc+F,GAAO/F,EAAa5a,EAAS,CACzC,cAAewe,EAAmB,cAClC,mBAAAA,EACA,GAAGvC,CACP,CAAG,EACGrB,EAAY,SACdA,EAAY,iBAAiB5a,EAAQ,cAAiBA,EAAQ,aAAa,QAAU,EAEnFwb,GAAUA,EAAO,MACnBA,EAAO,KAAK,mBAAoBZ,CAAW,EAEtCA,CACT,CAKA,SAAS4G,IAAuB,CAC9B,MAAMxE,EAAUR,KACXQ,EAAQ,aAGbA,EAAQ,WAAW,WAAaA,EAAQ,WAAW,YAAc,GAC5DA,EAAQ,WAAW,WAAW,mBACjCA,EAAQ,WAAW,WAAW,iBAAmBgE,IAE9ChE,EAAQ,WAAW,WAAW,eACjCA,EAAQ,WAAW,WAAW,aAAe0D,IAG/CpD,KACF,CC5NA,SAASmE,GAAiBzb,EAAWqU,EAAgB,CACnD,OAAOwC,GAAe,EAAC,iBAAiB7W,EAAW,CAAE,eAAAqU,CAAgB,EACvE,CASA,SAASqH,GACPjgB,EAEA4Y,EACA,CAGA,MAAM5W,EAAQ,OAAO4W,GAAmB,SAAWA,EAAiB,OAC9DnB,EAAU,OAAOmB,GAAmB,SAAW,CAAE,eAAAA,CAAgB,EAAG,OAC1E,OAAOwC,GAAe,EAAC,eAAepb,EAASgC,EAAOyV,CAAO,CAC/D,CA2EA,SAASyI,GAAO7gB,EAAKuD,EAAO,CAC1BwY,KAAgB,OAAO/b,EAAKuD,CAAK,CACnC,CAOA,SAASud,GAAQ9H,EAAM,CACrB+C,GAAe,EAAC,QAAQ/C,CAAI,CAC9B,CAeA,SAAS+H,GAAUve,EAAU,CAC3BuZ,GAAe,EAAC,UAAUvZ,CAAQ,CACpC,CC3IA,MAAMwe,GAAqB,IAG3B,SAASC,GAAmBhgB,EAAK,CAC/B,MAAMF,EAAWE,EAAI,SAAW,GAAGA,EAAI,QAAQ,IAAM,GAC/CK,EAAOL,EAAI,KAAO,IAAIA,EAAI,IAAI,GAAK,GACzC,MAAO,GAAGF,CAAQ,KAAKE,EAAI,IAAI,GAAGK,CAAI,GAAGL,EAAI,KAAO,IAAIA,EAAI,IAAI,GAAK,EAAE,OACzE,CAGA,SAASigB,GAAmBjgB,EAAK,CAC/B,MAAO,GAAGggB,GAAmBhgB,CAAG,CAAC,GAAGA,EAAI,SAAS,YACnD,CAGA,SAASkgB,GAAalgB,EAAKmU,EAAS,CAClC,OAAO5Q,GAAU,CAGf,WAAYvD,EAAI,UAChB,eAAgB+f,GAChB,GAAI5L,GAAW,CAAE,cAAe,GAAGA,EAAQ,IAAI,IAAIA,EAAQ,OAAO,GACtE,CAAG,CACH,CAOA,SAASgM,GACPngB,EAGAogB,EAAkB,CAAE,EACpB,CAKA,MAAMhM,EAAS,OAAOgM,GAAoB,SAAWA,EAAkBA,EAAgB,OACjFjM,EACJ,OAAOiM,GAAoB,UAAY,CAACA,EAAgB,UAAY,OAAYA,EAAgB,UAAU,IAE5G,OAAOhM,GAAkB,GAAG6L,GAAmBjgB,CAAG,CAAC,IAAIkgB,GAAalgB,EAAKmU,CAAO,CAAC,EACnF,CAGA,SAASkM,GACPC,EACAC,EAGA,CACA,MAAMvgB,EAAMkB,GAAQof,CAAO,EACrBE,EAAW,GAAGR,GAAmBhgB,CAAG,CAAC,oBAE3C,IAAIygB,EAAiB,OAAO1gB,GAAYC,CAAG,CAAC,GAC5C,UAAWjB,KAAOwhB,EAChB,GAAIxhB,IAAQ,MAIZ,GAAIA,IAAQ,OAAQ,CAClB,MAAMgZ,EAAOwI,EAAc,KAC3B,GAAI,CAACxI,EACH,SAEEA,EAAK,OACP0I,GAAkB,SAAS,mBAAmB1I,EAAK,IAAI,CAAC,IAEtDA,EAAK,QACP0I,GAAkB,UAAU,mBAAmB1I,EAAK,KAAK,CAAC,GAElE,MACM0I,GAAkB,IAAI,mBAAmB1hB,CAAG,CAAC,IAAI,mBAAmBwhB,EAAcxhB,CAAG,CAAC,CAAE,GAI5F,MAAO,GAAGyhB,CAAQ,IAAIC,CAAc,EACtC,CC5EA,SAASC,GAAwBrW,EAAO8J,EAAS,CAC/C,OAAKA,IAGL9J,EAAM,IAAMA,EAAM,KAAO,GACzBA,EAAM,IAAI,KAAOA,EAAM,IAAI,MAAQ8J,EAAQ,KAC3C9J,EAAM,IAAI,QAAUA,EAAM,IAAI,SAAW8J,EAAQ,QACjD9J,EAAM,IAAI,aAAe,CAAC,GAAIA,EAAM,IAAI,cAAgB,GAAK,GAAI8J,EAAQ,cAAgB,EAAG,EAC5F9J,EAAM,IAAI,SAAW,CAAC,GAAIA,EAAM,IAAI,UAAY,GAAK,GAAI8J,EAAQ,UAAY,EAAG,GACzE9J,CACT,CAGA,SAASsW,GACPtJ,EACArX,EACAid,EACA7I,EACA,CACA,MAAMD,EAAUJ,GAAgCkJ,CAAQ,EAClD2D,EAAkB,CACtB,QAAS,IAAI,KAAM,EAAC,YAAa,EACjC,GAAIzM,GAAW,CAAE,IAAKA,GACtB,GAAI,CAAC,CAACC,GAAU,CAAE,IAAKrU,GAAYC,CAAG,EAC1C,EAEQwS,EACJ,eAAgB6E,EAAU,CAAC,CAAE,KAAM,UAAY,EAAEA,CAAO,EAAI,CAAC,CAAE,KAAM,SAAW,EAAEA,CAAO,EAE3F,OAAOrF,GAAe4O,EAAiB,CAACpO,CAAY,CAAC,CACvD,CAKA,SAASqO,GACPxW,EACArK,EACAid,EACA7I,EACA,CACA,MAAMD,EAAUJ,GAAgCkJ,CAAQ,EASlD6D,EAAYzW,EAAM,MAAQA,EAAM,OAAS,eAAiBA,EAAM,KAAO,QAE7EqW,GAAwBrW,EAAO4S,GAAYA,EAAS,GAAG,EAEvD,MAAM2D,EAAkB1M,GAA2B7J,EAAO8J,EAASC,EAAQpU,CAAG,EAM9E,cAAOqK,EAAM,sBAGN2H,GAAe4O,EAAiB,CADrB,CAAC,CAAE,KAAME,CAAW,EAAEzW,CAAK,CACI,CAAC,CACpD,CClEA,MAAM0W,GAAwB,GAU9B,SAASC,GAAiBC,EAAc,CACtC,MAAMC,EAAqB,GAE3B,OAAAD,EAAa,QAAQE,GAAmB,CACtC,KAAM,CAAE,KAAA1jB,CAAM,EAAG0jB,EAEXC,EAAmBF,EAAmBzjB,CAAI,EAI5C2jB,GAAoB,CAACA,EAAiB,mBAAqBD,EAAgB,oBAI/ED,EAAmBzjB,CAAI,EAAI0jB,EAC/B,CAAG,EAEM,OAAO,KAAKD,CAAkB,EAAE,IAAIG,GAAKH,EAAmBG,CAAC,CAAC,CACvE,CAGA,SAASC,GAAuBrjB,EAAS,CACvC,MAAMsjB,EAAsBtjB,EAAQ,qBAAuB,GACrDujB,EAAmBvjB,EAAQ,aAGjCsjB,EAAoB,QAAQtH,GAAe,CACzCA,EAAY,kBAAoB,EACpC,CAAG,EAED,IAAIgH,EAEA,MAAM,QAAQO,CAAgB,EAChCP,EAAe,CAAC,GAAGM,EAAqB,GAAGC,CAAgB,EAClD,OAAOA,GAAqB,WACrCP,EAAe1U,GAASiV,EAAiBD,CAAmB,CAAC,EAE7DN,EAAeM,EAGjB,MAAME,EAAoBT,GAAiBC,CAAY,EAMjDS,EAAaC,GAAUF,EAAmBxH,GAAeA,EAAY,OAAS,OAAO,EAC3F,GAAIyH,IAAe,GAAI,CACrB,KAAM,CAACE,CAAa,EAAIH,EAAkB,OAAOC,EAAY,CAAC,EAC9DD,EAAkB,KAAKG,CAAa,CACrC,CAED,OAAOH,CACT,CAQA,SAASI,GAAkBZ,EAAc,CACvC,MAAMa,EAAmB,GAEzB,OAAAb,EAAa,QAAQhH,GAAe,CAE9BA,GACF8H,GAAiB9H,EAAa6H,CAAgB,CAEpD,CAAG,EAEMA,CACT,CAGA,SAASC,GAAiB9H,EAAa6H,EAAkB,CACvDA,EAAiB7H,EAAY,IAAI,EAAIA,EAEjC8G,GAAsB,QAAQ9G,EAAY,IAAI,IAAM,KACtDA,EAAY,UAAUZ,GAAyByB,EAAa,EAC5DiG,GAAsB,KAAK9G,EAAY,IAAI,GAC1C,OAAO,iBAAqB,KAAe,mBAAqBnY,EAAO,IAAI,0BAA0BmY,EAAY,IAAI,EAAE,EAE5H,CAGA,SAAS0H,GAAUK,EAAKzgB,EAAU,CAChC,QAAStC,EAAI,EAAGA,EAAI+iB,EAAI,OAAQ/iB,IAC9B,GAAIsC,EAASygB,EAAI/iB,CAAC,CAAC,IAAM,GACvB,OAAOA,EAIX,MAAO,EACT,CCvFA,SAASgjB,GACPhkB,EACAoM,EACAuO,EACAf,EACA,CACA,KAAM,CAAE,eAAAqK,EAAiB,EAAG,oBAAAC,EAAsB,GAAI,EAAKlkB,EACrDmkB,EAAW,CACf,GAAG/X,EACH,SAAUA,EAAM,UAAYuO,EAAK,UAAYrN,GAAO,EACpD,UAAWlB,EAAM,WAAa0G,GAAwB,CAC1D,EACQkQ,EAAerI,EAAK,cAAgB3a,EAAQ,aAAa,IAAIgB,GAAKA,EAAE,IAAI,EAE9EojB,GAAmBD,EAAUnkB,CAAO,EACpCqkB,GAA0BF,EAAUnB,CAAY,EAG5C5W,EAAM,OAAS,QACjBkY,GAAmBH,EAAUnkB,EAAQ,WAAW,EAKlD,IAAIukB,EAAa3K,EACbe,EAAK,iBACP4J,EAAa5K,GAAM,MAAM4K,CAAU,EAAE,OAAO5J,EAAK,cAAc,GAIjE,IAAInS,EAAS8H,GAAoB6T,CAAQ,EASzC,GAAII,EAAY,CAEd,GAAIA,EAAW,eAAgB,CAC7B,MAAMC,EAAc,CAAC,GAAI7J,EAAK,aAAe,CAAE,EAAG,GAAG4J,EAAW,eAAc,CAAE,EAE5EC,EAAY,SACd7J,EAAK,YAAc6J,EAEtB,CAGDhc,EAAS+b,EAAW,aAAaJ,EAAUxJ,CAAI,CAChD,CAED,OAAOnS,EAAO,KAAKic,GACb,OAAOR,GAAmB,UAAYA,EAAiB,EAClDS,GAAeD,EAAKR,EAAgBC,CAAmB,EAEzDO,CACR,CACH,CAQA,SAASL,GAAmBhY,EAAOpM,EAAS,CAC1C,KAAM,CAAE,YAAAoc,EAAa,QAAAD,EAAS,KAAAwI,EAAM,eAAAC,EAAiB,GAAK,EAAG5kB,EAEvD,gBAAiBoM,IACrBA,EAAM,YAAc,gBAAiBpM,EAAUoc,EAAcpD,IAG3D5M,EAAM,UAAY,QAAa+P,IAAY,SAC7C/P,EAAM,QAAU+P,GAGd/P,EAAM,OAAS,QAAauY,IAAS,SACvCvY,EAAM,KAAOuY,GAGXvY,EAAM,UACRA,EAAM,QAAUrI,GAASqI,EAAM,QAASwY,CAAc,GAGxD,MAAM5e,EAAYoG,EAAM,WAAaA,EAAM,UAAU,QAAUA,EAAM,UAAU,OAAO,CAAC,EACnFpG,GAAaA,EAAU,QACzBA,EAAU,MAAQjC,GAASiC,EAAU,MAAO4e,CAAc,GAG5D,MAAM/V,EAAUzC,EAAM,QAClByC,GAAWA,EAAQ,MACrBA,EAAQ,IAAM9K,GAAS8K,EAAQ,IAAK+V,CAAc,EAEtD,CAEA,MAAMC,GAA0B,IAAI,QAKpC,SAASP,GAAmBlY,EAAOtE,EAAa,CAC9C,MAAMgd,EAAazlB,GAAW,gBAE9B,GAAI,CAACylB,EACH,OAGF,IAAIC,EACJ,MAAMC,EAA+BH,GAAwB,IAAI/c,CAAW,EACxEkd,EACFD,EAA0BC,GAE1BD,EAA0B,IAAI,IAC9BF,GAAwB,IAAI/c,EAAaid,CAAuB,GAIlE,MAAME,EAAqB,OAAO,KAAKH,CAAU,EAAE,OAAO,CAACxP,EAAK4P,IAAsB,CACpF,IAAIC,EACJ,MAAMC,EAAoBL,EAAwB,IAAIG,CAAiB,EACnEE,EACFD,EAAcC,GAEdD,EAAcrd,EAAYod,CAAiB,EAC3CH,EAAwB,IAAIG,EAAmBC,CAAW,GAG5D,QAASnkB,EAAImkB,EAAY,OAAS,EAAGnkB,GAAK,EAAGA,IAAK,CAChD,MAAMqkB,EAAaF,EAAYnkB,CAAC,EAChC,GAAIqkB,EAAW,SAAU,CACvB/P,EAAI+P,EAAW,QAAQ,EAAIP,EAAWI,CAAiB,EACvD,KACD,CACF,CACD,OAAO5P,CACR,EAAE,CAAE,GAGCgQ,EAAiB,IAAI,IAC3B,GAAI,CAEFlZ,EAAM,UAAU,OAAO,QAAQpG,GAAa,CAE1CA,EAAU,WAAW,OAAO,QAAQ2B,GAAS,CACvCA,EAAM,UACR2d,EAAe,IAAI3d,EAAM,QAAQ,CAE3C,CAAO,CACP,CAAK,CACF,MAAW,CAEX,CAGDyE,EAAM,WAAaA,EAAM,YAAc,GACvCA,EAAM,WAAW,OAASA,EAAM,WAAW,QAAU,GACrD,MAAMmZ,EAASnZ,EAAM,WAAW,OAChCkZ,EAAe,QAAQE,GAAY,CAC7BP,EAAmBO,CAAQ,GAC7BD,EAAO,KAAK,CACV,KAAM,YACN,UAAWC,EACX,SAAUP,EAAmBO,CAAQ,CAC7C,CAAO,CAEP,CAAG,CACH,CAMA,SAASnB,GAA0BjY,EAAOqZ,EAAkB,CACtDA,EAAiB,OAAS,IAC5BrZ,EAAM,IAAMA,EAAM,KAAO,GACzBA,EAAM,IAAI,aAAe,CAAC,GAAIA,EAAM,IAAI,cAAgB,CAAE,EAAG,GAAGqZ,CAAgB,EAEpF,CAYA,SAASf,GAAetY,EAAO2C,EAAO2W,EAAY,CAChD,GAAI,CAACtZ,EACH,OAAO,KAGT,MAAMgD,EAAa,CACjB,GAAGhD,EACH,GAAIA,EAAM,aAAe,CACvB,YAAaA,EAAM,YAAY,IAAIlF,IAAM,CACvC,GAAGA,EACH,GAAIA,EAAE,MAAQ,CACZ,KAAM4H,GAAU5H,EAAE,KAAM6H,EAAO2W,CAAU,CACnD,CACA,EAAQ,CACR,EACI,GAAItZ,EAAM,MAAQ,CAChB,KAAM0C,GAAU1C,EAAM,KAAM2C,EAAO2W,CAAU,CACnD,EACI,GAAItZ,EAAM,UAAY,CACpB,SAAU0C,GAAU1C,EAAM,SAAU2C,EAAO2W,CAAU,CAC3D,EACI,GAAItZ,EAAM,OAAS,CACjB,MAAO0C,GAAU1C,EAAM,MAAO2C,EAAO2W,CAAU,CACrD,CACA,EASE,OAAItZ,EAAM,UAAYA,EAAM,SAAS,OAASgD,EAAW,WACvDA,EAAW,SAAS,MAAQhD,EAAM,SAAS,MAGvCA,EAAM,SAAS,MAAM,OACvBgD,EAAW,SAAS,MAAM,KAAON,GAAU1C,EAAM,SAAS,MAAM,KAAM2C,EAAO2W,CAAU,IAKvFtZ,EAAM,QACRgD,EAAW,MAAQhD,EAAM,MAAM,IAAIgO,IAE7BA,EAAK,OACPA,EAAK,KAAOtL,GAAUsL,EAAK,KAAMrL,EAAO2W,CAAU,GAE7CtL,EACR,GAGIhL,CACT,CCnQA,MAAMuW,GAAqB,8DAiC3B,MAAMC,EAAW,CAMd,QAAS,CAAC,KAAK,cAAgB,CAAE,CAAC,CAGlC,SAAU,CAAC,KAAK,yBAA2B,EAAM,CAGjD,SAAU,CAAC,KAAK,eAAiB,CAAE,CAGnC,SAAU,CAAC,KAAK,UAAY,CAAE,CAAC,CAG/B,SAAU,CAAC,KAAK,OAAS,CAAE,CAAC,CAO5B,YAAY5lB,EAAS,CAEpB,GAFqB4lB,GAAW,UAAU,OAAO,KAAK,IAAI,EAAEA,GAAW,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAW,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAW,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAW,UAAU,QAAQ,KAAK,IAAI,EAC1N,KAAK,SAAW5lB,EACZA,EAAQ,IAAK,CACf,KAAK,KAAOiD,GAAQjD,EAAQ,GAAG,EAC/B,MAAMoK,EAAM8X,GAAsC,KAAK,KAAMliB,CAAO,EACpE,KAAK,WAAaA,EAAQ,UAAU,CAClC,mBAAoB,KAAK,mBAAmB,KAAK,IAAI,EACrD,GAAGA,EAAQ,iBACX,IAAAoK,CACR,CAAO,CACP,MACO,OAAO,iBAAqB,KAAe,mBAAqBvG,EAAO,KAAK,+CAA+C,CAE/H,CAMA,iBAAiBmC,EAAW2U,EAAMf,EAAO,CAExC,GAAIvL,GAAwBrI,CAAS,EAAG,EACrC,OAAO,iBAAqB,KAAe,mBAAqBnC,EAAO,IAAI8hB,EAAkB,EAC9F,MACD,CAED,IAAI/X,EAAU+M,GAAQA,EAAK,SAE3B,YAAK,SACH,KAAK,mBAAmB3U,EAAW2U,CAAI,EACpC,KAAKvO,GAAS,KAAK,cAAcA,EAAOuO,EAAMf,CAAK,CAAC,EACpD,KAAKpR,GAAU,CACdoF,EAAUpF,CACpB,CAAS,CACT,EAEWoF,CACR,CAKA,eACCnM,EAEAgC,EACAkX,EACAf,EACA,CACA,IAAIhM,EAAU+M,GAAQA,EAAK,SAE3B,MAAMkL,EAAgBnnB,GAAY+C,CAAO,EACrC,KAAK,iBAAiB,OAAOA,CAAO,EAAGgC,EAAOkX,CAAI,EAClD,KAAK,mBAAmBlZ,EAASkZ,CAAI,EAEzC,YAAK,SACHkL,EACG,KAAKzZ,GAAS,KAAK,cAAcA,EAAOuO,EAAMf,CAAK,CAAC,EACpD,KAAKpR,GAAU,CACdoF,EAAUpF,CACpB,CAAS,CACT,EAEWoF,CACR,CAKA,aAAaxB,EAAOuO,EAAMf,EAAO,CAEhC,GAAIe,GAAQA,EAAK,mBAAqBtM,GAAwBsM,EAAK,iBAAiB,EAAG,EACpF,OAAO,iBAAqB,KAAe,mBAAqB9W,EAAO,IAAI8hB,EAAkB,EAC9F,MACD,CAED,IAAI/X,EAAU+M,GAAQA,EAAK,SAE3B,YAAK,SACH,KAAK,cAAcvO,EAAOuO,EAAMf,CAAK,EAAE,KAAKpR,GAAU,CACpDoF,EAAUpF,CAClB,CAAO,CACP,EAEWoF,CACR,CAKA,eAAewL,EAAS,CACvB,GAAI,CAAC,KAAK,aAAc,EACrB,OAAO,iBAAqB,KAAe,mBAAqBvV,EAAO,KAAK,4CAA4C,EACzH,MACD,CAEK,OAAOuV,EAAQ,SAAY,UAC9B,OAAO,iBAAqB,KAAe,mBAAqBvV,EAAO,KAAK,4DAA4D,GAEzI,KAAK,YAAYuV,CAAO,EAExBE,GAAcF,EAAS,CAAE,KAAM,EAAO,GAEzC,CAKA,QAAS,CACR,OAAO,KAAK,IACb,CAKA,YAAa,CACZ,OAAO,KAAK,QACb,CAOA,gBAAiB,CAChB,OAAO,KAAK,SAAS,SACtB,CAKA,cAAe,CACd,OAAO,KAAK,UACb,CAKA,MAAMtH,EAAS,CACd,MAAMgU,EAAY,KAAK,WACvB,OAAIA,EACK,KAAK,wBAAwBhU,CAAO,EAAE,KAAKiU,GACzCD,EAAU,MAAMhU,CAAO,EAAE,KAAKkU,GAAoBD,GAAkBC,CAAgB,CAC5F,EAEM1V,GAAoB,EAAI,CAElC,CAKA,MAAMwB,EAAS,CACd,OAAO,KAAK,MAAMA,CAAO,EAAE,KAAKtJ,IAC9B,KAAK,WAAU,EAAG,QAAU,GACrBA,EACR,CACF,CAKA,mBAAoB,CACf,KAAK,WAAU,GAAM,CAAC,KAAK,2BAC7B,KAAK,cAAgBob,GAAkB,KAAK,SAAS,YAAY,EACjE,KAAK,yBAA2B,GAEnC,CAOA,mBAAmBqC,EAAe,CACjC,OAAO,KAAK,cAAcA,CAAa,CACxC,CAKA,eAAejK,EAAa,CAC3B,GAAI,CACF,OAAQ,KAAK,cAAcA,EAAY,EAAE,GAAO,IACjD,MAAa,CACZ,OAAC,OAAO,iBAAqB,KAAe,mBAAqBnY,EAAO,KAAK,+BAA+BmY,EAAY,EAAE,0BAA0B,EAC7I,IACR,CACF,CAKA,eAAeA,EAAa,CAC3B8H,GAAiB9H,EAAa,KAAK,aAAa,CACjD,CAKA,UAAU5P,EAAOuO,EAAO,GAAI,CAC3B,GAAI,KAAK,KAAM,CACb,IAAIuL,EAAMtD,GAAoBxW,EAAO,KAAK,KAAM,KAAK,SAAS,UAAW,KAAK,SAAS,MAAM,EAE7F,UAAWuJ,KAAcgF,EAAK,aAAe,GAC3CuL,EAAMhS,GACJgS,EACAxQ,GACEC,EACA,KAAK,SAAS,kBAAoB,KAAK,SAAS,iBAAiB,WAClE,CACX,EAGM,MAAMwQ,EAAU,KAAK,cAAcD,CAAG,EAClCC,GACFA,EAAQ,KAAKC,GAAgB,KAAK,KAAK,iBAAkBha,EAAOga,CAAY,EAAG,IAAI,CAEtF,CACF,CAKA,YAAYhN,EAAS,CACpB,GAAI,KAAK,KAAM,CACb,MAAM8M,EAAMxD,GAAsBtJ,EAAS,KAAK,KAAM,KAAK,SAAS,UAAW,KAAK,SAAS,MAAM,EAC9F,KAAK,cAAc8M,CAAG,CAC5B,CACF,CAKA,mBAAmBxV,EAAQsG,EAAUqP,EAAQ,CAG5C,GAAI,KAAK,SAAS,kBAAmB,CAOnC,MAAMvlB,EAAM,GAAG4P,CAAM,IAAIsG,CAAQ,IAChC,OAAO,iBAAqB,KAAe,mBAAqBnT,EAAO,IAAI,oBAAoB/C,CAAG,GAAG,EAGtG,KAAK,UAAUA,CAAG,EAAI,KAAK,UAAUA,CAAG,EAAI,GAAK,CAClD,CACF,CAOA,GAAGwlB,EAAMhjB,EAAU,CACb,KAAK,OAAOgjB,CAAI,IACnB,KAAK,OAAOA,CAAI,EAAI,IAItB,KAAK,OAAOA,CAAI,EAAE,KAAKhjB,CAAQ,CAChC,CAKA,KAAKgjB,KAASC,EAAM,CACf,KAAK,OAAOD,CAAI,GAElB,KAAK,OAAOA,CAAI,EAAE,QAAQhjB,GAAYA,EAAS,GAAGijB,CAAI,CAAC,CAE1D,CAGA,wBAAwBnN,EAAShN,EAAO,CACvC,IAAIoa,EAAU,GACVC,EAAU,GACd,MAAMC,EAAata,EAAM,WAAaA,EAAM,UAAU,OAEtD,GAAIsa,EAAY,CACdD,EAAU,GAEV,UAAWE,KAAMD,EAAY,CAC3B,MAAME,EAAYD,EAAG,UACrB,GAAIC,GAAaA,EAAU,UAAY,GAAO,CAC5CJ,EAAU,GACV,KACD,CACF,CACF,CAKD,MAAMK,EAAqBzN,EAAQ,SAAW,MACjByN,GAAsBzN,EAAQ,SAAW,GAAOyN,GAAsBL,KAGjGlN,GAAcF,EAAS,CACrB,GAAIoN,GAAW,CAAE,OAAQ,WACzB,OAAQpN,EAAQ,QAAU,OAAOqN,GAAWD,CAAO,CAC3D,CAAO,EACD,KAAK,eAAepN,CAAO,EAE9B,CAYA,wBAAwBtH,EAAS,CAChC,OAAO,IAAIvB,GAAYC,GAAW,CAChC,IAAIsW,EAAS,EACb,MAAMC,EAAO,EAEPC,EAAW,YAAY,IAAM,CAC7B,KAAK,gBAAkB,GACzB,cAAcA,CAAQ,EACtBxW,EAAQ,EAAI,IAEZsW,GAAUC,EACNjV,GAAWgV,GAAUhV,IACvB,cAAckV,CAAQ,EACtBxW,EAAQ,EAAK,GAGlB,EAAEuW,CAAI,CACb,CAAK,CACF,CAGA,YAAa,CACZ,OAAO,KAAK,aAAa,UAAY,IAAS,KAAK,OAAS,MAC7D,CAgBA,cAAc3a,EAAOuO,EAAMf,EAAO,CACjC,MAAM5Z,EAAU,KAAK,aACfgjB,EAAe,OAAO,KAAK,KAAK,aAAa,EACnD,MAAI,CAACrI,EAAK,cAAgBqI,EAAa,OAAS,IAC9CrI,EAAK,aAAeqI,GAEfgB,GAAahkB,EAASoM,EAAOuO,EAAMf,CAAK,CAChD,CAQA,cAAcxN,EAAOuO,EAAO,GAAIf,EAAO,CACtC,OAAO,KAAK,cAAcxN,EAAOuO,EAAMf,CAAK,EAAE,KAC5CqN,GACSA,EAAW,SAEpBvW,GAAU,CACR,GAAK,OAAO,iBAAqB,KAAe,iBAAmB,CAGjE,MAAMwW,EAAcxW,EAChBwW,EAAY,WAAa,MAC3BrjB,EAAO,IAAIqjB,EAAY,OAAO,EAE9BrjB,EAAO,KAAKqjB,CAAW,CAE1B,CAEF,CACP,CACG,CAeA,cAAc9a,EAAOuO,EAAMf,EAAO,CACjC,MAAM5Z,EAAU,KAAK,aACf,CAAE,WAAA6gB,CAAY,EAAG7gB,EAEvB,GAAI,CAAC,KAAK,aACR,OAAOyQ,GAAoB,IAAIjP,GAAY,2CAA4C,KAAK,CAAC,EAG/F,MAAM2lB,EAAgBC,GAAmBhb,CAAK,EACxCnO,EAAUK,GAAa8N,CAAK,EAC5ByW,EAAYzW,EAAM,MAAQ,QAC1Bib,EAAkB,0BAA0BxE,CAAS,KAK3D,GAAI5kB,GAAW,OAAO4iB,GAAe,UAAY,KAAK,OAAQ,EAAGA,EAC/D,YAAK,mBAAmB,cAAe,QAASzU,CAAK,EAC9CqE,GACL,IAAIjP,GACF,oFAAoFqf,CAAU,IAC9F,KACD,CACT,EAGI,MAAMyG,EAAezE,IAAc,eAAiB,SAAWA,EAE/D,OAAO,KAAK,cAAczW,EAAOuO,EAAMf,CAAK,EACzC,KAAKuK,GAAY,CAChB,GAAIA,IAAa,KACf,WAAK,mBAAmB,kBAAmBmD,EAAclb,CAAK,EACxD,IAAI5K,GAAY,2DAA4D,KAAK,EAIzF,GAD4BmZ,EAAK,MAASA,EAAK,KAAO,aAAe,GAEnE,OAAOwJ,EAGT,MAAM3b,EAAS+e,GAAkBvnB,EAASmkB,EAAUxJ,CAAI,EACxD,OAAO6M,GAA0Bhf,EAAQ6e,CAAe,CAChE,CAAO,EACA,KAAKI,GAAkB,CACtB,GAAIA,IAAmB,KACrB,WAAK,mBAAmB,cAAeH,EAAclb,CAAK,EACpD,IAAI5K,GAAY,GAAG6lB,CAAe,2CAA4C,KAAK,EAG3F,MAAMjO,EAAUQ,GAASA,EAAM,WAAU,EACrC,CAACuN,GAAiB/N,GACpB,KAAK,wBAAwBA,EAASqO,CAAc,EAMtD,MAAMC,EAAkBD,EAAe,iBACvC,GAAIN,GAAiBO,GAAmBD,EAAe,cAAgBrb,EAAM,YAAa,CACxF,MAAMvH,EAAS,SACf4iB,EAAe,iBAAmB,CAChC,GAAGC,EACH,OAAA7iB,CACZ,CACS,CAED,YAAK,UAAU4iB,EAAgB9M,CAAI,EAC5B8M,CACf,CAAO,EACA,KAAK,KAAM/W,GAAU,CACpB,MAAIA,aAAkBlP,GACdkP,GAGR,KAAK,iBAAiBA,EAAQ,CAC5B,KAAM,CACJ,WAAY,EACb,EACD,kBAAmBA,CAC7B,CAAS,EACK,IAAIlP,GACR;AAAA,UAA8HkP,CAAM,EAC9I,EACA,CAAO,CACJ,CAKA,SAASyV,EAAS,CACjB,KAAK,iBACAA,EAAQ,KACX9hB,IACE,KAAK,iBACEA,GAETqM,IACE,KAAK,iBACEA,EAEf,CACG,CAKA,cAAcyD,EAAU,CACvB,GAAI,KAAK,YAAc,KAAK,KAC1B,YAAK,KAAK,iBAAkBA,CAAQ,EAE7B,KAAK,WAAW,KAAKA,CAAQ,EAAE,KAAK,KAAMzD,GAAU,EACxD,OAAO,iBAAqB,KAAe,mBAAqB7M,EAAO,MAAM,6BAA8B6M,CAAM,CAC1H,CAAO,GAEA,OAAO,iBAAqB,KAAe,mBAAqB7M,EAAO,MAAM,oBAAoB,CAErG,CAKA,gBAAiB,CAChB,MAAM8jB,EAAW,KAAK,UACtB,YAAK,UAAY,GACV,OAAO,KAAKA,CAAQ,EAAE,IAAI7mB,GAAO,CACtC,KAAM,CAAC4P,EAAQsG,CAAQ,EAAIlW,EAAI,MAAM,GAAG,EACxC,MAAO,CACL,OAAA4P,EACA,SAAAsG,EACA,SAAU2Q,EAAS7mB,CAAG,CAC9B,CACA,CAAK,CACF,CAOH,CAKA,SAAS0mB,GACPI,EACAP,EACA,CACA,MAAMQ,EAAoB,GAAGR,CAAe,0CAC5C,GAAItoB,GAAW6oB,CAAgB,EAC7B,OAAOA,EAAiB,KACtBxb,GAAS,CACP,GAAI,CAACzN,GAAcyN,CAAK,GAAKA,IAAU,KACrC,MAAM,IAAI5K,GAAYqmB,CAAiB,EAEzC,OAAOzb,CACR,EACDpC,GAAK,CACH,MAAM,IAAIxI,GAAY,GAAG6lB,CAAe,kBAAkBrd,CAAC,EAAE,CAC9D,CACP,EACS,GAAI,CAACrL,GAAcipB,CAAgB,GAAKA,IAAqB,KAClE,MAAM,IAAIpmB,GAAYqmB,CAAiB,EAEzC,OAAOD,CACT,CAKA,SAASL,GACPvnB,EACAoM,EACAuO,EACA,CACA,KAAM,CAAE,WAAAmN,EAAY,sBAAAC,CAAuB,EAAG/nB,EAE9C,OAAI1B,GAAa8N,CAAK,GAAK0b,EAClBA,EAAW1b,EAAOuO,CAAI,EAG3ByM,GAAmBhb,CAAK,GAAK2b,EACxBA,EAAsB3b,EAAOuO,CAAI,EAGnCvO,CACT,CAEA,SAAS9N,GAAa8N,EAAO,CAC3B,OAAOA,EAAM,OAAS,MACxB,CAEA,SAASgb,GAAmBhb,EAAO,CACjC,OAAOA,EAAM,OAAS,aACxB,CC9oBA,SAAS4b,GACPC,EACAjoB,EACA,CACIA,EAAQ,QAAU,KACf,OAAO,iBAAqB,KAAe,iBAC9C6D,EAAO,OAAM,EAIb,QAAQ,KAAK,8EAA8E,GAG/F,MAAM4Y,EAAMI,KACEJ,EAAI,WACZ,OAAOzc,EAAQ,YAAY,EAEjC,MAAMwb,EAAS,IAAIyM,EAAYjoB,CAAO,EACtCyc,EAAI,WAAWjB,CAAM,CACvB,CC7BA,MAAM0M,GAAgC,GAQtC,SAASC,GACPnoB,EACAooB,EACA7W,EAASF,GACPrR,EAAQ,YAAckoB,EACvB,EACD,CACA,IAAIG,EAAa,GACjB,MAAMC,EAASxW,GAAYP,EAAO,MAAMO,CAAO,EAE/C,SAASyW,EAAKpU,EAAU,CACtB,MAAMqU,EAAwB,GAc9B,GAXAnU,GAAoBF,EAAU,CAACxN,EAAMyC,IAAS,CAC5C,MAAMqf,EAA2B5S,GAA+BzM,CAAI,EACpE,GAAI6N,GAAcoR,EAAYI,CAAwB,EAAG,CACvD,MAAMrc,EAAQsc,GAAwB/hB,EAAMyC,CAAI,EAChDpJ,EAAQ,mBAAmB,oBAAqByoB,EAA0Brc,CAAK,CACvF,MACQoc,EAAsB,KAAK7hB,CAAI,CAEvC,CAAK,EAGG6hB,EAAsB,SAAW,EACnC,OAAOlY,GAAmB,EAI5B,MAAMqY,EAAmB5U,GAAeI,EAAS,CAAC,EAAGqU,CAAqB,EAGpEI,EAAsBlY,GAAW,CACrC2D,GAAoBsU,EAAkB,CAAChiB,EAAMyC,IAAS,CACpD,MAAMgD,EAAQsc,GAAwB/hB,EAAMyC,CAAI,EAChDpJ,EAAQ,mBAAmB0Q,EAAQmF,GAA+BzM,CAAI,EAAGgD,CAAK,CACtF,CAAO,CACP,EAEUyc,EAAc,IAClBT,EAAY,CAAE,KAAMzT,GAAkBgU,EAAkB3oB,EAAQ,WAAW,CAAG,GAAE,KAC9EuK,IAEMA,EAAS,aAAe,SAAcA,EAAS,WAAa,KAAOA,EAAS,YAAc,OAC3F,OAAO,iBAAqB,KAAe,mBAAqB1G,EAAO,KAAK,qCAAqC0G,EAAS,UAAU,iBAAiB,EAGxJ8d,EAAanR,GAAiBmR,EAAY9d,CAAQ,EAC3CA,GAETC,GAAS,CACP,MAAAoe,EAAmB,eAAe,EAC5Bpe,CACP,CACT,EAEI,OAAO+G,EAAO,IAAIsX,CAAW,EAAE,KAC7BrgB,GAAUA,EACVgC,GAAS,CACP,GAAIA,aAAiBhJ,GACnB,OAAC,OAAO,iBAAqB,KAAe,mBAAqBqC,EAAO,MAAM,+CAA+C,EAC7H+kB,EAAmB,gBAAgB,EAC5BtY,GAAmB,EAE1B,MAAM9F,CAET,CACP,CACG,CAID,OAAA+d,EAAK,0BAA4B,GAE1B,CACL,KAAAA,EACA,MAAAD,CACJ,CACA,CAEA,SAASI,GAAwB/hB,EAAMyC,EAAM,CAC3C,GAAI,EAAAA,IAAS,SAAWA,IAAS,eAIjC,OAAO,MAAM,QAAQzC,CAAI,EAAKA,EAAO,CAAC,EAAI,MAC5C,CCjGA,MAAMmiB,GAAc,SCEpB,IAAIC,GAGJ,MAAMC,EAAkB,CAAC,aAAc,CAAEA,GAAiB,UAAU,OAAO,KAAK,IAAI,CAAI,CAIrF,OAAO,cAAe,CAAC,KAAK,GAAK,kBAAmB,CAKpD,QAAS,CAAC,KAAK,KAAOA,GAAiB,EAAG,CAK1C,WAAY,CAEXD,GAA2B,SAAS,UAAU,SAG9C,SAAS,UAAU,SAAW,YAAcjlB,EAAM,CAChD,MAAMoV,EAAU9T,GAAoB,IAAI,GAAK,KAC7C,OAAO2jB,GAAyB,MAAM7P,EAASpV,CAAI,CACzD,CACG,CACH,CAAEklB,GAAiB,aAAc,ECzBjC,MAAMC,GAAwB,CAAC,oBAAqB,+CAA+C,EAKnG,MAAMC,EAAgB,CAInB,OAAO,cAAe,CAAC,KAAK,GAAK,gBAAiB,CAKlD,QAAS,CAAC,KAAK,KAAOA,GAAe,EAAG,CAExC,YAAcC,EAAW,GAAI,CAAC,KAAK,SAAWA,EAASD,GAAe,UAAU,OAAO,KAAK,IAAI,CAAE,CAKlG,UAAU9N,EAAyByB,EAAe,CACjD,MAAMuM,EAAgBhd,GAAU,CAC9B,MAAMqQ,EAAMI,IACZ,GAAIJ,EAAK,CACP,MAAM4M,EAAO5M,EAAI,eAAeyM,EAAc,EAC9C,GAAIG,EAAM,CACR,MAAM7N,EAASiB,EAAI,YACb6M,EAAgB9N,EAASA,EAAO,WAAU,EAAK,GAC/Cxb,EAAUupB,GAAcF,EAAK,SAAUC,CAAa,EAC1D,OAAOE,GAAiBpd,EAAOpM,CAAO,EAAI,KAAOoM,CAClD,CACF,CACD,OAAOA,CACb,EAEIgd,EAAa,GAAK,KAAK,KACvBhO,EAAwBgO,CAAY,CACrC,CACH,CAAEF,GAAe,eAGjB,SAASK,GACPE,EAAkB,CAAE,EACpBH,EAAgB,CAAE,EAClB,CACA,MAAO,CACL,UAAW,CAAC,GAAIG,EAAgB,WAAa,GAAK,GAAIH,EAAc,WAAa,EAAG,EACpF,SAAU,CAAC,GAAIG,EAAgB,UAAY,GAAK,GAAIH,EAAc,UAAY,EAAG,EACjF,aAAc,CACZ,GAAIG,EAAgB,cAAgB,GACpC,GAAIH,EAAc,cAAgB,GAClC,GAAGL,EACJ,EACD,mBAAoB,CAAC,GAAIQ,EAAgB,oBAAsB,GAAK,GAAIH,EAAc,oBAAsB,EAAG,EAC/G,eAAgBG,EAAgB,iBAAmB,OAAYA,EAAgB,eAAiB,EACpG,CACA,CAGA,SAASD,GAAiBpd,EAAOpM,EAAS,CACxC,OAAIA,EAAQ,gBAAkB0pB,GAAetd,CAAK,IAC/C,OAAO,iBAAqB,KAAe,mBAC1CvI,EAAO,KAAK;AAAA,SAA6D8J,GAAoBvB,CAAK,CAAC,EAAE,EAChG,IAELud,GAAgBvd,EAAOpM,EAAQ,YAAY,IAC5C,OAAO,iBAAqB,KAAe,mBAC1C6D,EAAO,KACL;AAAA,SAA0E8J,GAAoBvB,CAAK,CAAC,EAC5G,EACW,IAELwd,GAAsBxd,EAAOpM,EAAQ,kBAAkB,IACxD,OAAO,iBAAqB,KAAe,mBAC1C6D,EAAO,KACL;AAAA,SAAgF8J,GAAoBvB,CAAK,CAAC,EAClH,EACW,IAELyd,GAAazd,EAAOpM,EAAQ,QAAQ,IACrC,OAAO,iBAAqB,KAAe,mBAC1C6D,EAAO,KACL;AAAA,SAAsE8J,GACpEvB,CACD;AAAA,OAAW0d,GAAmB1d,CAAK,CAAC,EAC7C,EACW,IAEJ2d,GAAc3d,EAAOpM,EAAQ,SAAS,EASpC,KARJ,OAAO,iBAAqB,KAAe,mBAC1C6D,EAAO,KACL;AAAA,SAA2E8J,GACzEvB,CACD;AAAA,OAAW0d,GAAmB1d,CAAK,CAAC,EAC7C,EACW,GAGX,CAEA,SAASud,GAAgBvd,EAAO4d,EAAc,CAE5C,OAAI5d,EAAM,MAAQ,CAAC4d,GAAgB,CAACA,EAAa,OACxC,GAGFC,GAA0B7d,CAAK,EAAE,KAAK3K,GAAWgD,GAAyBhD,EAASuoB,CAAY,CAAC,CACzG,CAEA,SAASJ,GAAsBxd,EAAO8d,EAAoB,CACxD,GAAI9d,EAAM,OAAS,eAAiB,CAAC8d,GAAsB,CAACA,EAAmB,OAC7E,MAAO,GAGT,MAAM1qB,EAAO4M,EAAM,YACnB,OAAO5M,EAAOiF,GAAyBjF,EAAM0qB,CAAkB,EAAI,EACrE,CAEA,SAASL,GAAazd,EAAO+d,EAAU,CAErC,GAAI,CAACA,GAAY,CAACA,EAAS,OACzB,MAAO,GAET,MAAM/f,EAAM0f,GAAmB1d,CAAK,EACpC,OAAQhC,EAAc3F,GAAyB2F,EAAK+f,CAAQ,EAA9C,EAChB,CAEA,SAASJ,GAAc3d,EAAOge,EAAW,CAEvC,GAAI,CAACA,GAAa,CAACA,EAAU,OAC3B,MAAO,GAET,MAAMhgB,EAAM0f,GAAmB1d,CAAK,EACpC,OAAQhC,EAAa3F,GAAyB2F,EAAKggB,CAAS,EAA9C,EAChB,CAEA,SAASH,GAA0B7d,EAAO,CACxC,GAAIA,EAAM,QACR,MAAO,CAACA,EAAM,OAAO,EAEvB,GAAIA,EAAM,UACR,GAAI,CACF,KAAM,CAAE,KAAAhD,EAAO,GAAI,MAAA/E,EAAQ,EAAE,EAAM+H,EAAM,UAAU,QAAUA,EAAM,UAAU,OAAO,CAAC,GAAM,GAC3F,MAAO,CAAC,GAAG/H,CAAK,GAAI,GAAG+E,CAAI,KAAK/E,CAAK,EAAE,CACxC,MAAY,CACX,OAAC,OAAO,iBAAqB,KAAe,mBAAqBR,EAAO,MAAM,oCAAoC8J,GAAoBvB,CAAK,CAAC,EAAE,EACvI,EACR,CAEH,MAAO,EACT,CAEA,SAASsd,GAAetd,EAAO,CAC7B,GAAI,CAGF,OAAOA,EAAM,UAAU,OAAO,CAAC,EAAE,OAAS,aAC3C,MAAW,CAEX,CACD,MAAO,EACT,CAEA,SAASie,GAAiB/iB,EAAS,GAAI,CACrC,QAAStG,EAAIsG,EAAO,OAAS,EAAGtG,GAAK,EAAGA,IAAK,CAC3C,MAAM2G,EAAQL,EAAOtG,CAAC,EAEtB,GAAI2G,GAASA,EAAM,WAAa,eAAiBA,EAAM,WAAa,gBAClE,OAAOA,EAAM,UAAY,IAE5B,CAED,OAAO,IACT,CAEA,SAASmiB,GAAmB1d,EAAO,CACjC,GAAI,CACF,IAAI9E,EACJ,GAAI,CAEFA,EAAS8E,EAAM,UAAU,OAAO,CAAC,EAAE,WAAW,MAC/C,MAAW,CAEX,CACD,OAAO9E,EAAS+iB,GAAiB/iB,CAAM,EAAI,IAC5C,MAAY,CACX,OAAC,OAAO,iBAAqB,KAAe,mBAAqBzD,EAAO,MAAM,gCAAgC8J,GAAoBvB,CAAK,CAAC,EAAE,EACnI,IACR,CACH,CC/LA,MAAMxM,GAASP,GAEf,IAAIirB,GAAgB,EAKpB,SAASC,IAAsB,CAC7B,OAAOD,GAAgB,CACzB,CAKA,SAASE,IAAoB,CAE3BF,KACA,WAAW,IAAM,CACfA,IACJ,CAAG,CACH,CAWA,SAASG,GACPriB,EACApI,EAEC,CAAE,EACH0qB,EAEA,CAQA,GAAI,OAAOtiB,GAAO,WAChB,OAAOA,EAGT,GAAI,CAGF,MAAMuiB,EAAUviB,EAAG,mBACnB,GAAIuiB,EACF,OAAOA,EAIT,GAAIvlB,GAAoBgD,CAAE,EACxB,OAAOA,CAEV,MAAW,CAIV,OAAOA,CACR,CAID,MAAMwiB,EAAgB,UAAY,CAChC,MAAM9mB,EAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAEjD,GAAI,CACE4mB,GAAU,OAAOA,GAAW,YAC9BA,EAAO,MAAM,KAAM,SAAS,EAI9B,MAAMG,EAAmB/mB,EAAK,IAAKgH,GAAQ2f,GAAK3f,EAAK9K,CAAO,CAAC,EAM7D,OAAOoI,EAAG,MAAM,KAAMyiB,CAAgB,CACvC,OAAQlE,EAAI,CACX,MAAA6D,KAEA3I,GAAWjI,GAAU,CACnBA,EAAM,kBAAmBxN,IACnBpM,EAAQ,YACV8N,GAAsB1B,EAAO,OAAW,MAAS,EACjD4B,GAAsB5B,EAAOpM,EAAQ,SAAS,GAGhDoM,EAAM,MAAQ,CACZ,GAAGA,EAAM,MACT,UAAWtI,CACvB,EAEiBsI,EACR,EAEDqV,GAAiBkF,CAAE,CAC3B,CAAO,EAEKA,CACP,CACL,EAKE,GAAI,CACF,UAAW7gB,KAAYsC,EACjB,OAAO,UAAU,eAAe,KAAKA,EAAItC,CAAQ,IACnD8kB,EAAc9kB,CAAQ,EAAIsC,EAAGtC,CAAQ,EAG7C,MAAgB,CAAE,CAIhBb,GAAoB2lB,EAAexiB,CAAE,EAErClD,GAAyBkD,EAAI,qBAAsBwiB,CAAa,EAGhE,GAAI,CACiB,OAAO,yBAAyBA,EAAe,MAAM,EACzD,cACb,OAAO,eAAeA,EAAe,OAAQ,CAC3C,KAAM,CACJ,OAAOxiB,EAAG,IACX,CACT,CAAO,CAGP,MAAgB,CAAE,CAEhB,OAAOwiB,CACT,CC5IA,SAASE,GAAmBhjB,EAAa6e,EAAI,CAE3C,MAAMrf,EAASyjB,GAAiBjjB,EAAa6e,CAAE,EAEzC3gB,EAAY,CAChB,KAAM2gB,GAAMA,EAAG,KACf,MAAOqE,GAAerE,CAAE,CAC5B,EAEE,OAAIrf,EAAO,SACTtB,EAAU,WAAa,CAAE,OAAAsB,IAGvBtB,EAAU,OAAS,QAAaA,EAAU,QAAU,KACtDA,EAAU,MAAQ,8BAGbA,CACT,CAKA,SAASilB,GACPnjB,EACA9B,EACA2V,EACAuP,EACA,CAEA,MAAM1P,EADMqB,KACO,YACboH,EAAiBzI,GAAUA,EAAO,WAAU,EAAG,eAE/CpP,EAAQ,CACZ,UAAW,CACT,OAAQ,CACN,CACE,KAAMxN,GAAQoH,CAAS,EAAIA,EAAU,YAAY,KAAOklB,EAAuB,qBAAuB,QACtG,MAAO,aACLA,EAAuB,oBAAsB,WACzD,wBAAkCnlB,GAA+BC,CAAS,CAAC,EAClE,CACF,CACF,EACD,MAAO,CACL,eAAgBkJ,GAAgBlJ,EAAWie,CAAc,CAC1D,CACL,EAEE,GAAItI,EAAoB,CACtB,MAAMrU,EAASyjB,GAAiBjjB,EAAa6T,CAAkB,EAC3DrU,EAAO,SAER8E,EAAM,UAAY,OAAO,CAAC,EAAE,WAAa,CAAE,OAAA9E,GAE/C,CAED,OAAO8E,CACT,CAKA,SAAS+e,GAAerjB,EAAa6e,EAAI,CACvC,MAAO,CACL,UAAW,CACT,OAAQ,CAACmE,GAAmBhjB,EAAa6e,CAAE,CAAC,CAC7C,CACL,CACA,CAGA,SAASoE,GACPjjB,EACA6e,EACA,CAIA,MAAMyE,EAAazE,EAAG,YAAcA,EAAG,OAAS,GAE1C0E,EAAUC,GAAW3E,CAAE,EAE7B,GAAI,CACF,OAAO7e,EAAYsjB,EAAYC,CAAO,CACvC,MAAW,CAEX,CAED,MAAO,EACT,CAGA,MAAME,GAAsB,8BAE5B,SAASD,GAAW3E,EAAI,CACtB,GAAIA,EAAI,CACN,GAAI,OAAOA,EAAG,aAAgB,SAC5B,OAAOA,EAAG,YAGZ,GAAI4E,GAAoB,KAAK5E,EAAG,OAAO,EACrC,MAAO,EAEV,CAED,MAAO,EACT,CAOA,SAASqE,GAAerE,EAAI,CAC1B,MAAMllB,EAAUklB,GAAMA,EAAG,QACzB,OAAKllB,EAGDA,EAAQ,OAAS,OAAOA,EAAQ,MAAM,SAAY,SAC7CA,EAAQ,MAAM,QAEhBA,EALE,kBAMX,CAMA,SAAS+pB,GACP1jB,EACA9B,EACA2U,EACA8Q,EACA,CACA,MAAM9P,EAAsBhB,GAAQA,EAAK,oBAAuB,OAC1DvO,EAAQsf,GAAsB5jB,EAAa9B,EAAW2V,EAAoB8P,CAAgB,EAChG,OAAAzd,GAAsB5B,CAAK,EAC3BA,EAAM,MAAQ,QACVuO,GAAQA,EAAK,WACfvO,EAAM,SAAWuO,EAAK,UAEjBrK,GAAoBlE,CAAK,CAClC,CAMA,SAASuf,GACP7jB,EACArG,EAEAgC,EAAQ,OACRkX,EACA8Q,EACA,CACA,MAAM9P,EAAsBhB,GAAQA,EAAK,oBAAuB,OAC1DvO,EAAQwf,GAAgB9jB,EAAarG,EAASka,EAAoB8P,CAAgB,EACxF,OAAArf,EAAM,MAAQ3I,EACVkX,GAAQA,EAAK,WACfvO,EAAM,SAAWuO,EAAK,UAEjBrK,GAAoBlE,CAAK,CAClC,CAKA,SAASsf,GACP5jB,EACA9B,EACA2V,EACA8P,EACAP,EACA,CACA,IAAI9e,EAEJ,GAAI9N,GAAa0H,CAAS,GAAOA,EAAY,MAG3C,OAAOmlB,GAAerjB,EADH9B,EAC2B,KAAK,EAUrD,GAAIzH,GAAWyH,CAAS,GAAMxH,GAAewH,CAAS,EAAI,CACxD,MAAM6lB,EAAe7lB,EAErB,GAAI,UAAYA,EACdoG,EAAQ+e,GAAerjB,EAAa9B,OAC/B,CACL,MAAMxG,EAAOqsB,EAAa,OAASttB,GAAWstB,CAAY,EAAI,WAAa,gBACrEpqB,EAAUoqB,EAAa,QAAU,GAAGrsB,CAAI,KAAKqsB,EAAa,OAAO,GAAKrsB,EAC5E4M,EAAQwf,GAAgB9jB,EAAarG,EAASka,EAAoB8P,CAAgB,EAClF3d,GAAsB1B,EAAO3K,CAAO,CACrC,CACD,MAAI,SAAUoqB,IACZzf,EAAM,KAAO,CAAE,GAAGA,EAAM,KAAM,oBAAqB,GAAGyf,EAAa,IAAI,KAGlEzf,CACR,CACD,OAAInO,GAAQ+H,CAAS,EAEZmlB,GAAerjB,EAAa9B,CAAS,EAE1CrH,GAAcqH,CAAS,GAAKpH,GAAQoH,CAAS,GAK/CoG,EAAQ6e,GAAqBnjB,EADL9B,EACmC2V,EAAoBuP,CAAoB,EACnGld,GAAsB5B,EAAO,CAC3B,UAAW,EACjB,CAAK,EACMA,IAYTA,EAAQwf,GAAgB9jB,EAAa9B,EAAY2V,EAAoB8P,CAAgB,EACrF3d,GAAsB1B,EAAO,GAAGpG,CAAS,GAAI,MAAS,EACtDgI,GAAsB5B,EAAO,CAC3B,UAAW,EACf,CAAG,EAEMA,EACT,CAKA,SAASwf,GACP9jB,EACA5D,EACAyX,EACA8P,EACA,CACA,MAAMrf,EAAQ,CACZ,QAASlI,CACb,EAEE,GAAIunB,GAAoB9P,EAAoB,CAC1C,MAAMrU,EAASyjB,GAAiBjjB,EAAa6T,CAAkB,EAC3DrU,EAAO,SACT8E,EAAM,UAAY,CAChB,OAAQ,CAAC,CAAE,MAAOlI,EAAO,WAAY,CAAE,OAAAoD,CAAM,EAAI,CACzD,EAEG,CAED,OAAO8E,CACT,CCxQA,MAAM0f,GAA4B,KAE5BC,GAA4B,cAMlC,MAAMC,EAAa,CAIhB,OAAO,cAAe,CAAC,KAAK,GAAKD,EAA0B,CAK3D,QAAS,CAAC,KAAK,KAAOC,GAAY,EAAG,CAUrC,YAAYhsB,EAAS,CAACgsB,GAAY,UAAU,OAAO,KAAK,IAAI,EAC3D,KAAK,QAAU,CACb,QAAS,GACT,IAAK,GACL,MAAO,GACP,QAAS,GACT,OAAQ,GACR,IAAK,GACL,GAAGhsB,CACT,CACG,CAUA,WAAY,CACP,KAAK,QAAQ,SACf4J,GAA0B,UAAWqiB,EAAkB,EAErD,KAAK,QAAQ,KACfriB,GAA0B,MAAOsiB,GAAe,KAAK,QAAQ,GAAG,CAAC,EAE/D,KAAK,QAAQ,KACftiB,GAA0B,MAAOuiB,EAAc,EAE7C,KAAK,QAAQ,OACfviB,GAA0B,QAASwiB,EAAgB,EAEjD,KAAK,QAAQ,SACfxiB,GAA0B,UAAWyiB,EAAkB,CAE1D,CAKA,oBAAoBjgB,EAAO,CACtB,KAAK,QAAQ,QACfyQ,GAAe,EAAC,cACd,CACE,SAAU,UAAUzQ,EAAM,OAAS,cAAgB,cAAgB,OAAO,GAC1E,SAAUA,EAAM,SAChB,MAAOA,EAAM,MACb,QAASuB,GAAoBvB,CAAK,CACnC,EACD,CACE,MAAAA,CACD,CACT,CAEG,CACH,CAAE4f,GAAY,eAMd,SAASE,GAAeI,EAAK,CAC3B,SAASC,EAAoBjiB,EAAa,CACxC,IAAI1E,EACAnF,EAAW,OAAO6rB,GAAQ,SAAWA,EAAI,mBAAqB,OAE9D5rB,EACF,OAAO4rB,GAAQ,UAAY,OAAOA,EAAI,iBAAoB,SAAWA,EAAI,gBAAkB,OACzF5rB,GAAmBA,EAAkBorB,MACtC,OAAO,iBAAqB,KAAe,mBAC1CjoB,EAAO,KACL,yCAAyCioB,EAAyB,oBAAoBprB,CAAe,oCAAoCorB,EAAyB,WAC5K,EACMprB,EAAkBorB,IAGhB,OAAOrrB,GAAa,WACtBA,EAAW,CAACA,CAAQ,GAItB,GAAI,CACF,MAAM2L,EAAQ9B,EAAY,MAC1B1E,EAAS4mB,GAASpgB,CAAK,EACnBtM,GAAiBsM,EAAM,OAAQ,CAAE,SAAA3L,EAAU,gBAAAC,CAAe,CAAE,EAC5DZ,GAAiBsM,EAAO,CAAE,SAAA3L,EAAU,gBAAAC,CAAiB,EAC1D,MAAW,CACVkF,EAAS,WACV,CAEGA,EAAO,SAAW,GAItBiX,GAAe,EAAC,cACd,CACE,SAAU,MAAMvS,EAAY,IAAI,GAChC,QAAS1E,CACV,EACD,CACE,MAAO0E,EAAY,MACnB,KAAMA,EAAY,KAClB,OAAQA,EAAY,MACrB,CACP,CACG,CAED,OAAOiiB,CACT,CAKA,SAASN,GAAmB3hB,EAAa,CAOvC,QAAStJ,EAAI,EAAGA,EAAIsJ,EAAY,KAAK,OAAQtJ,IAC3C,GAAIsJ,EAAY,KAAKtJ,CAAC,IAAM,WAAY,CACtCsJ,EAAY,KAAKtJ,EAAI,CAAC,EAAI,UAC1B,KACD,CAEH,MAAMuZ,EAAa,CACjB,SAAU,UACV,KAAM,CACJ,UAAWjQ,EAAY,KACvB,OAAQ,SACT,EACD,MAAO+H,GAAwB/H,EAAY,KAAK,EAChD,QAASrG,GAASqG,EAAY,KAAM,GAAG,CAC3C,EAEE,GAAIA,EAAY,QAAU,SACxB,GAAIA,EAAY,KAAK,CAAC,IAAM,GAC1BiQ,EAAW,QAAU,qBAAqBtW,GAASqG,EAAY,KAAK,MAAM,CAAC,EAAG,GAAG,GAAK,gBAAgB,GACtGiQ,EAAW,KAAK,UAAYjQ,EAAY,KAAK,MAAM,CAAC,MAGpD,QAIJuS,GAAe,EAAC,cAActC,EAAY,CACxC,MAAOjQ,EAAY,KACnB,MAAOA,EAAY,KACvB,CAAG,CACH,CAKA,SAAS6hB,GAAe7hB,EAAa,CACnC,KAAM,CAAE,eAAAmiB,EAAgB,aAAApO,CAAc,EAAG/T,EAEnCiB,EAAgBjB,EAAY,IAAItB,EAAmB,EAGzD,GAAI,CAACyjB,GAAkB,CAACpO,GAAgB,CAAC9S,EACvC,OAGF,KAAM,CAAE,OAAApB,EAAQ,IAAAC,EAAK,YAAAsiB,EAAa,KAAAC,CAAI,EAAKphB,EAErCzB,EAAO,CACX,OAAAK,EACA,IAAAC,EACA,YAAAsiB,CACJ,EAEQ/R,EAAO,CACX,IAAKrQ,EAAY,IACjB,MAAOqiB,EACP,eAAAF,EACA,aAAApO,CACJ,EAEExB,GAAe,EAAC,cACd,CACE,SAAU,MACV,KAAA/S,EACA,KAAM,MACP,EACD6Q,CACJ,CACA,CAKA,SAASyR,GAAiB9hB,EAAa,CACrC,KAAM,CAAE,eAAAmiB,EAAgB,aAAApO,CAAc,EAAG/T,EAGzC,GAAK+T,GAID,EAAA/T,EAAY,UAAU,IAAI,MAAM,YAAY,GAAKA,EAAY,UAAU,SAAW,QAKtF,GAAIA,EAAY,MAAO,CACrB,MAAMR,EAAOQ,EAAY,UACnBqQ,EAAO,CACX,KAAMrQ,EAAY,MAClB,MAAOA,EAAY,KACnB,eAAAmiB,EACA,aAAApO,CACN,EAEIxB,GAAe,EAAC,cACd,CACE,SAAU,QACV,KAAA/S,EACA,MAAO,QACP,KAAM,MACP,EACD6Q,CACN,CACA,KAAS,CACL,MAAM7Q,EAAO,CACX,GAAGQ,EAAY,UACf,YAAaA,EAAY,UAAYA,EAAY,SAAS,MAChE,EACUqQ,EAAO,CACX,MAAOrQ,EAAY,KACnB,SAAUA,EAAY,SACtB,eAAAmiB,EACA,aAAApO,CACN,EACIxB,GAAe,EAAC,cACd,CACE,SAAU,QACV,KAAA/S,EACA,KAAM,MACP,EACD6Q,CACN,CACG,CACH,CAKA,SAAS0R,GAAmB/hB,EAAa,CACvC,IAAIpH,EAAOoH,EAAY,KACnBoB,EAAKpB,EAAY,GACrB,MAAMsiB,EAAY3a,GAASrS,GAAO,SAAS,IAAI,EAC/C,IAAIitB,EAAa5a,GAAS/O,CAAI,EAC9B,MAAM4pB,EAAW7a,GAASvG,CAAE,EAGvBmhB,EAAW,OACdA,EAAaD,GAKXA,EAAU,WAAaE,EAAS,UAAYF,EAAU,OAASE,EAAS,OAC1EphB,EAAKohB,EAAS,UAEZF,EAAU,WAAaC,EAAW,UAAYD,EAAU,OAASC,EAAW,OAC9E3pB,EAAO2pB,EAAW,UAGpBhQ,GAAa,EAAG,cAAc,CAC5B,SAAU,aACV,KAAM,CACJ,KAAA3Z,EACA,GAAAwI,CACD,CACL,CAAG,CACH,CAEA,SAAS8gB,GAASpgB,EAAO,CACvB,OAAOA,GAAS,CAAC,CAAEA,EAAQ,MAC7B,CCvTA,SAAS2gB,GACPC,EACA,CACE,SAAAhO,EACA,OAAA7I,EACA,IAAApU,CACD,EAGD,CACA,MAAMiS,EAAU,CACd,SAAUgZ,EAAS,SACnB,QAAS,IAAI,KAAM,EAAC,YAAa,EACjC,GAAIhO,GACFA,EAAS,KAAO,CACd,IAAK,CACH,KAAMA,EAAS,IAAI,KACnB,QAASA,EAAS,IAAI,OACvB,CACT,EACI,GAAI,CAAC,CAAC7I,GAAU,CAAC,CAACpU,GAAO,CAAE,IAAKD,GAAYC,CAAG,EACnD,EACQ4E,EAAOsmB,GAA+BD,CAAQ,EAEpD,OAAOjZ,GAAeC,EAAS,CAACrN,CAAI,CAAC,CACvC,CAEA,SAASsmB,GAA+BD,EAAU,CAIhD,MAAO,CAHiB,CACtB,KAAM,aACV,EAC2BA,CAAQ,CACnC,CCnBA,MAAME,WAAsBtH,EAAW,CAMpC,YAAY5lB,EAAS,CACpB,MAAMmtB,EAAYvtB,GAAO,mBAAqB6O,GAAY,EAE1DzO,EAAQ,UAAYA,EAAQ,WAAa,GACzCA,EAAQ,UAAU,IAAMA,EAAQ,UAAU,KAAO,CAC/C,KAAM,4BACN,SAAU,CACR,CACE,KAAM,GAAGmtB,CAAS,mBAClB,QAASrE,EACV,CACF,EACD,QAASA,EACf,EAEI,MAAM9oB,CAAO,EAETA,EAAQ,mBAAqBJ,GAAO,UACtCA,GAAO,SAAS,iBAAiB,mBAAoB,IAAM,CACrDA,GAAO,SAAS,kBAAoB,UACtC,KAAK,eAAc,CAE7B,CAAO,CAEJ,CAKA,mBAAmBoG,EAAW2U,EAAM,CACnC,OAAO6Q,GAAmB,KAAK,SAAS,YAAaxlB,EAAW2U,EAAM,KAAK,SAAS,gBAAgB,CACrG,CAKA,iBACClZ,EAEAgC,EAAQ,OACRkX,EACA,CACA,OAAOgR,GAAiB,KAAK,SAAS,YAAalqB,EAASgC,EAAOkX,EAAM,KAAK,SAAS,gBAAgB,CACxG,CAKA,UAAUvO,EAAOuO,EAAM,CAOtB,MAAMyS,EAAwB,KAAK,mBAAmBrB,EAAyB,EAG3EqB,GAAyBA,EAAsB,qBACjDA,EAAsB,oBAAoBhhB,CAAK,EAGjD,MAAM,UAAUA,EAAOuO,CAAI,CAC5B,CAKA,oBAAoBqS,EAAU,CAC7B,GAAI,CAAC,KAAK,aAAc,EACrB,OAAO,iBAAqB,KAAe,mBAAqBnpB,EAAO,KAAK,kDAAkD,EAC/H,MACD,CAED,MAAMsQ,EAAW4Y,GAA2BC,EAAU,CACpD,SAAU,KAAK,eAAgB,EAC/B,IAAK,KAAK,OAAQ,EAClB,OAAQ,KAAK,WAAU,EAAG,MAChC,CAAK,EACI,KAAK,cAAc7Y,CAAQ,CACjC,CAKA,cAAc/H,EAAOuO,EAAMf,EAAO,CACjC,OAAAxN,EAAM,SAAWA,EAAM,UAAY,aAC5B,MAAM,cAAcA,EAAOuO,EAAMf,CAAK,CAC9C,CAKA,gBAAiB,CAChB,MAAM+N,EAAW,KAAK,iBAEtB,GAAIA,EAAS,SAAW,EAAG,EACxB,OAAO,iBAAqB,KAAe,mBAAqB9jB,EAAO,IAAI,qBAAqB,EACjG,MACD,CAED,GAAI,CAAC,KAAK,KAAM,EACb,OAAO,iBAAqB,KAAe,mBAAqBA,EAAO,IAAI,yCAAyC,EACrH,MACD,EAEA,OAAO,iBAAqB,KAAe,mBAAqBA,EAAO,IAAI,oBAAqB8jB,CAAQ,EAEzG,MAAMxT,EAAWkC,GAA2BsR,EAAU,KAAK,SAAS,QAAU7lB,GAAY,KAAK,IAAI,CAAC,EAC/F,KAAK,cAAcqS,CAAQ,CACjC,CACH,CCpIA,IAAIkZ,GAwCJ,SAASC,IAA+B,CACtC,GAAID,GACF,OAAOA,GAMT,GAAI/kB,GAAc1I,GAAO,KAAK,EAC5B,OAAQytB,GAAkBztB,GAAO,MAAM,KAAKA,EAAM,EAGpD,MAAM2tB,EAAW3tB,GAAO,SACxB,IAAI4tB,EAAY5tB,GAAO,MAEvB,GAAI2tB,GAAY,OAAOA,EAAS,eAAkB,WAChD,GAAI,CACF,MAAM7kB,EAAU6kB,EAAS,cAAc,QAAQ,EAC/C7kB,EAAQ,OAAS,GACjB6kB,EAAS,KAAK,YAAY7kB,CAAO,EACjC,MAAM+kB,EAAgB/kB,EAAQ,cAC1B+kB,GAAiBA,EAAc,QACjCD,EAAYC,EAAc,OAE5BF,EAAS,KAAK,YAAY7kB,CAAO,CAClC,OAAQsB,EAAG,EACT,OAAO,iBAAqB,KAAe,mBAC1CnG,EAAO,KAAK,kFAAmFmG,CAAC,CACnG,CAGH,OAAQqjB,GAAkBG,EAAU,KAAK5tB,EAAM,CAEjD,CAGA,SAAS8tB,IAAiC,CACxCL,GAAkB,MACpB,CC1EA,SAASM,GACP3tB,EACA4tB,EAAcN,GAA8B,EAC5C,CACA,IAAIO,EAAkB,EAClBC,EAAe,EAEnB,SAAS1F,EAAYvZ,EAAS,CAC5B,MAAMkf,EAAclf,EAAQ,KAAK,OACjCgf,GAAmBE,EACnBD,IAEA,MAAME,EAAiB,CACrB,KAAMnf,EAAQ,KACd,OAAQ,OACR,eAAgB,SAChB,QAAS7O,EAAQ,QAYjB,UAAW6tB,GAAmB,KAASC,EAAe,GACtD,GAAG9tB,EAAQ,YACjB,EAEI,GAAI,CACF,OAAO4tB,EAAY5tB,EAAQ,IAAKguB,CAAc,EAAE,KAAKzjB,IACnDsjB,GAAmBE,EACnBD,IACO,CACL,WAAYvjB,EAAS,OACrB,QAAS,CACP,uBAAwBA,EAAS,QAAQ,IAAI,sBAAsB,EACnE,cAAeA,EAAS,QAAQ,IAAI,aAAa,CAClD,CACX,EACO,CACF,OAAQP,EAAG,CACV,OAAA0jB,KACAG,GAAmBE,EACnBD,IACOrd,GAAoBzG,CAAC,CAC7B,CACF,CAED,OAAOme,GAAgBnoB,EAASooB,CAAW,CAC7C,CCjDA,MAAM6F,GAAsB,EAK5B,SAASC,GAAiBluB,EAAS,CACjC,SAASooB,EAAYvZ,EAAS,CAC5B,OAAO,IAAI0B,GAAY,CAACC,EAASI,IAAW,CAC1C,MAAMud,EAAM,IAAI,eAEhBA,EAAI,QAAUvd,EAEdud,EAAI,mBAAqB,IAAM,CACzBA,EAAI,aAAeF,IACrBzd,EAAQ,CACN,WAAY2d,EAAI,OAChB,QAAS,CACP,uBAAwBA,EAAI,kBAAkB,sBAAsB,EACpE,cAAeA,EAAI,kBAAkB,aAAa,CACnD,CACb,CAAW,CAEX,EAEMA,EAAI,KAAK,OAAQnuB,EAAQ,GAAG,EAE5B,UAAWqL,KAAUrL,EAAQ,QACvB,OAAO,UAAU,eAAe,KAAKA,EAAQ,QAASqL,CAAM,GAC9D8iB,EAAI,iBAAiB9iB,EAAQrL,EAAQ,QAAQqL,CAAM,CAAC,EAIxD8iB,EAAI,KAAKtf,EAAQ,IAAI,CAC3B,CAAK,CACF,CAED,OAAOsZ,GAAgBnoB,EAASooB,CAAW,CAC7C,CC7CA,MAAMgG,GAAmB,IAInBC,GAAkB,GAClBC,GAAiB,GACjBC,GAAiB,GAEvB,SAASC,GAAYhJ,EAAUngB,EAAMopB,EAAQC,EAAO,CAClD,MAAM/mB,EAAQ,CACZ,SAAA6d,EACA,SAAUngB,EACV,OAAQ,EACZ,EAEE,OAAIopB,IAAW,SACb9mB,EAAM,OAAS8mB,GAGbC,IAAU,SACZ/mB,EAAM,MAAQ+mB,GAGT/mB,CACT,CAGA,MAAMgnB,GACJ,iMACIC,GAAkB,gCAElB/lB,GAASrB,GAAQ,CACrB,MAAMqN,EAAQ8Z,GAAY,KAAKnnB,CAAI,EAEnC,GAAIqN,EAAO,CAGT,GAFeA,EAAM,CAAC,GAAKA,EAAM,CAAC,EAAE,QAAQ,MAAM,IAAM,EAE5C,CACV,MAAMga,EAAWD,GAAgB,KAAK/Z,EAAM,CAAC,CAAC,EAE1Cga,IAEFha,EAAM,CAAC,EAAIga,EAAS,CAAC,EACrBha,EAAM,CAAC,EAAIga,EAAS,CAAC,EACrBha,EAAM,CAAC,EAAIga,EAAS,CAAC,EAExB,CAID,KAAM,CAACxpB,EAAMmgB,CAAQ,EAAIsJ,GAA8Bja,EAAM,CAAC,GAAKuZ,GAAkBvZ,EAAM,CAAC,CAAC,EAE7F,OAAO2Z,GAAYhJ,EAAUngB,EAAMwP,EAAM,CAAC,EAAI,CAACA,EAAM,CAAC,EAAI,OAAWA,EAAM,CAAC,EAAI,CAACA,EAAM,CAAC,EAAI,MAAS,CACtG,CAGH,EAEMka,GAAwB,CAACV,GAAiBxlB,EAAM,EAKhDmmB,GACJ,sOACIC,GAAiB,gDAEjBC,GAAQ1nB,GAAQ,CACpB,MAAMqN,EAAQma,GAAW,KAAKxnB,CAAI,EAElC,GAAIqN,EAAO,CAET,GADeA,EAAM,CAAC,GAAKA,EAAM,CAAC,EAAE,QAAQ,SAAS,EAAI,GAC7C,CACV,MAAMga,EAAWI,GAAe,KAAKpa,EAAM,CAAC,CAAC,EAEzCga,IAEFha,EAAM,CAAC,EAAIA,EAAM,CAAC,GAAK,OACvBA,EAAM,CAAC,EAAIga,EAAS,CAAC,EACrBha,EAAM,CAAC,EAAIga,EAAS,CAAC,EACrBha,EAAM,CAAC,EAAI,GAEd,CAED,IAAI2Q,EAAW3Q,EAAM,CAAC,EAClBxP,EAAOwP,EAAM,CAAC,GAAKuZ,GACvB,OAAC/oB,EAAMmgB,CAAQ,EAAIsJ,GAA8BzpB,EAAMmgB,CAAQ,EAExDgJ,GAAYhJ,EAAUngB,EAAMwP,EAAM,CAAC,EAAI,CAACA,EAAM,CAAC,EAAI,OAAWA,EAAM,CAAC,EAAI,CAACA,EAAM,CAAC,EAAI,MAAS,CACtG,CAGH,EAEMsa,GAAuB,CAACZ,GAAgBW,EAAK,EAE7CE,GACJ,gHAEIC,GAAQ7nB,GAAQ,CACpB,MAAMqN,EAAQua,GAAW,KAAK5nB,CAAI,EAElC,OAAOqN,EACH2Z,GAAY3Z,EAAM,CAAC,EAAGA,EAAM,CAAC,GAAKuZ,GAAkB,CAACvZ,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAI,CAACA,EAAM,CAAC,EAAI,MAAS,EAC/F,MACN,EAEMya,GAAuB,CAAChB,GAAgBe,EAAK,EAqB7CE,GAA0B,CAACR,GAAuBI,GAAsBG,EAAoB,EAE5FE,GAAqB1oB,GAAkB,GAAGyoB,EAAuB,EAsBjET,GAAgC,CAACzpB,EAAMmgB,IAAa,CACxD,MAAMiK,EAAoBpqB,EAAK,QAAQ,kBAAkB,IAAM,GACzDqqB,EAAuBrqB,EAAK,QAAQ,sBAAsB,IAAM,GAEtE,OAAOoqB,GAAqBC,EACxB,CACErqB,EAAK,QAAQ,GAAG,IAAM,GAAKA,EAAK,MAAM,GAAG,EAAE,CAAC,EAAI+oB,GAChDqB,EAAoB,oBAAoBjK,CAAQ,GAAK,wBAAwBA,CAAQ,EACtF,EACD,CAACngB,EAAMmgB,CAAQ,CACrB,EC7JA,MAAMmK,EAAgB,CAInB,OAAO,cAAe,CAAC,KAAK,GAAK,gBAAiB,CAKlD,QAAS,CAAC,KAAK,KAAOA,GAAe,EAAG,CAQxC,SAAU,CAAC,KAAK,aAAe,CAC9B,QAASC,GACT,qBAAsBC,EAC1B,CAAI,CAGD,YAAY7vB,EAAS,CAAC2vB,GAAe,UAAU,OAAO,KAAK,IAAI,EAAEA,GAAe,UAAU,QAAQ,KAAK,IAAI,EAC1G,KAAK,SAAW,CACd,QAAS,GACT,qBAAsB,GACtB,GAAG3vB,CACT,CACG,CAIA,WAAY,CACX,MAAM,gBAAkB,GACxB,MAAMA,EAAU,KAAK,SAKrB,UAAWc,KAAOd,EAAS,CACzB,MAAM8vB,EAAc,KAAK,aAAahvB,CAAG,EACrCgvB,GAAe9vB,EAAQc,KACzBivB,GAAiBjvB,CAAG,EACpBgvB,IACA,KAAK,aAAahvB,CAAK,EAAG,OAE7B,CACF,CACH,CAAE6uB,GAAe,eAGjB,SAASC,IAA+B,CACtChmB,GACE,QAECE,GAAS,CACR,KAAM,CAAC2S,EAAK3U,EAAa2jB,CAAgB,EAAIuE,GAAgB,EAC7D,GAAI,CAACvT,EAAI,eAAekT,EAAc,EACpC,OAEF,KAAM,CAAE,IAAA7iB,EAAK,IAAA1C,EAAK,KAAA5C,EAAM,OAAAuF,EAAQ,MAAAvC,CAAO,EAAGV,EAC1C,GAAIygB,GAAmB,GAAO/f,GAASA,EAAM,uBAC3C,OAGF,MAAM4B,EACJ5B,IAAU,QAAa/L,GAASqO,CAAG,EAC/BmjB,GAA4BnjB,EAAK1C,EAAK5C,EAAMuF,CAAM,EAClDmjB,GACExE,GAAsB5jB,EAAa0C,GAASsC,EAAK,OAAW2e,EAAkB,EAAK,EACnFrhB,EACA5C,EACAuF,CACd,EAEMX,EAAM,MAAQ,QAEd+jB,GAAuB1T,EAAKjS,EAAO4B,EAAO,SAAS,CACpD,CACL,CACA,CAGA,SAASyjB,IAA4C,CACnDjmB,GACE,qBAEC,GAAM,CACL,KAAM,CAAC6S,EAAK3U,EAAa2jB,CAAgB,EAAIuE,GAAgB,EAC7D,GAAI,CAACvT,EAAI,eAAekT,EAAc,EACpC,OAEF,IAAInlB,EAAQ,EAGZ,GAAI,CAGE,WAAY,EACdA,EAAQ,EAAE,OAOH,WAAY,GAAK,WAAY,EAAE,SACtCA,EAAQ,EAAE,OAAO,OAEpB,MAAa,CAEb,CAED,GAAI+f,GAAmB,GAAO/f,GAASA,EAAM,uBAC3C,MAAO,GAGT,MAAM4B,EAAQ1N,GAAY8L,CAAK,EAC3B4lB,GAAiC5lB,CAAK,EACtCkhB,GAAsB5jB,EAAa0C,EAAO,OAAWihB,EAAkB,EAAI,EAE/Erf,EAAM,MAAQ,QAEd+jB,GAAuB1T,EAAKjS,EAAO4B,EAAO,sBAAsB,CAEjE,CACL,CACA,CAQA,SAASgkB,GAAiC1f,EAAQ,CAChD,MAAO,CACL,UAAW,CACT,OAAQ,CACN,CACE,KAAM,qBAEN,MAAO,oDAAoD,OAAOA,CAAM,CAAC,EAC1E,CACF,CACF,CACL,CACA,CAMA,SAASuf,GAA4BnjB,EAAK1C,EAAK5C,EAAMuF,EAAQ,CAC3D,MAAMsjB,EACJ,2GAGF,IAAI5uB,EAAUnD,GAAawO,CAAG,EAAIA,EAAI,QAAUA,EAC5CtN,EAAO,QAEX,MAAM8wB,EAAS7uB,EAAQ,MAAM4uB,CAAc,EAC3C,OAAIC,IACF9wB,EAAO8wB,EAAO,CAAC,EACf7uB,EAAU6uB,EAAO,CAAC,GAcbJ,GAXO,CACZ,UAAW,CACT,OAAQ,CACN,CACE,KAAM1wB,EACN,MAAOiC,CACR,CACF,CACF,CACL,EAE8C2I,EAAK5C,EAAMuF,CAAM,CAC/D,CAIA,SAASmjB,GAA8B9jB,EAAOhC,EAAK5C,EAAMuF,EAAQ,CAE/D,MAAM/C,EAAKoC,EAAM,UAAYA,EAAM,WAAa,GAE1CmkB,EAAMvmB,EAAE,OAASA,EAAE,QAAU,GAE7BwmB,EAAOD,EAAG,CAAC,EAAIA,EAAG,CAAC,GAAK,GAExBE,EAAQD,EAAI,WAAaA,EAAI,YAAc,GAE3CE,EAASD,EAAK,OAASA,EAAK,QAAU,GAEtC/B,EAAQ,MAAM,SAAS3hB,EAAQ,EAAE,CAAC,EAAI,OAAYA,EAClD0hB,EAAS,MAAM,SAASjnB,EAAM,EAAE,CAAC,EAAI,OAAYA,EACjDge,EAAW/mB,GAAS2L,CAAG,GAAKA,EAAI,OAAS,EAAIA,EAAM/I,KAGzD,OAAIqvB,EAAM,SAAW,GACnBA,EAAM,KAAK,CACT,MAAAhC,EACA,SAAAlJ,EACA,SAAU,IACV,OAAQ,GACR,OAAAiJ,CACN,CAAK,EAGIriB,CACT,CAEA,SAAS2jB,GAAiB3mB,EAAM,EAC7B,OAAO,iBAAqB,KAAe,mBAAqBvF,EAAO,IAAI,4BAA4BuF,CAAI,EAAE,CAChH,CAEA,SAAS+mB,GAAuB1T,EAAKjS,EAAO4B,EAAOhD,EAAM,CACvD4E,GAAsB5B,EAAO,CAC3B,QAAS,GACT,KAAAhD,CACJ,CAAG,EACDqT,EAAI,aAAarQ,EAAO,CACtB,kBAAmB5B,CACvB,CAAG,CACH,CAEA,SAASwlB,IAAmB,CAC1B,MAAMvT,EAAMI,KACNrB,EAASiB,EAAI,YACbzc,EAAWwb,GAAUA,EAAO,WAAU,GAAO,CACjD,YAAa,IAAM,CAAE,EACrB,iBAAkB,EACtB,EACE,MAAO,CAACiB,EAAKzc,EAAQ,YAAaA,EAAQ,gBAAgB,CAC5D,CCjPA,MAAM2wB,GAAuB,CAC3B,cACA,SACA,OACA,mBACA,iBACA,oBACA,kBACA,cACA,aACA,qBACA,cACA,aACA,iBACA,eACA,kBACA,cACA,cACA,eACA,qBACA,SACA,YACA,eACA,gBACA,YACA,kBACA,SACA,iBACA,4BACA,sBACF,EAGA,MAAMC,EAAU,CAIb,OAAO,cAAe,CAAC,KAAK,GAAK,UAAW,CAK5C,QAAS,CAAC,KAAK,KAAOA,GAAS,EAAG,CAOlC,YAAY5wB,EAAS,CAAC4wB,GAAS,UAAU,OAAO,KAAK,IAAI,EACxD,KAAK,SAAW,CACd,eAAgB,GAChB,YAAa,GACb,sBAAuB,GACvB,YAAa,GACb,WAAY,GACZ,GAAG5wB,CACT,CACG,CAMA,WAAY,CACP,KAAK,SAAS,YAChB4E,GAAKhF,GAAQ,aAAcixB,EAAiB,EAG1C,KAAK,SAAS,aAChBjsB,GAAKhF,GAAQ,cAAeixB,EAAiB,EAG3C,KAAK,SAAS,uBAChBjsB,GAAKhF,GAAQ,wBAAyBkxB,EAAQ,EAG5C,KAAK,SAAS,gBAAkB,mBAAoBlxB,IACtDgF,GAAK,eAAe,UAAW,OAAQmsB,EAAQ,EAGjD,MAAMC,EAAoB,KAAK,SAAS,YACpCA,IACkB,MAAM,QAAQA,CAAiB,EAAIA,EAAoBL,IAC/D,QAAQM,EAAgB,CAEvC,CACH,CAAEL,GAAS,eAGX,SAASC,GAAkB9rB,EAAU,CAEnC,OAAO,YAAcjB,EAAM,CACzB,MAAMotB,EAAmBptB,EAAK,CAAC,EAC/B,OAAAA,EAAK,CAAC,EAAI2mB,GAAKyG,EAAkB,CAC/B,UAAW,CACT,KAAM,CAAE,SAAU/oB,GAAgBpD,CAAQ,CAAG,EAC7C,QAAS,GACT,KAAM,YACP,CACP,CAAK,EACMA,EAAS,MAAM,KAAMjB,CAAI,CACpC,CACA,CAIA,SAASgtB,GAAS/rB,EAAU,CAE1B,OAAO,SAAWzB,EAAU,CAE1B,OAAOyB,EAAS,MAAM,KAAM,CAC1B0lB,GAAKnnB,EAAU,CACb,UAAW,CACT,KAAM,CACJ,SAAU,wBACV,QAAS6E,GAAgBpD,CAAQ,CAClC,EACD,QAAS,GACT,KAAM,YACP,CACT,CAAO,CACP,CAAK,CACL,CACA,CAGA,SAASgsB,GAASzlB,EAAc,CAE9B,OAAO,YAAcxH,EAAM,CAEzB,MAAMqqB,EAAM,KAGZ,MAF4B,CAAC,SAAU,UAAW,aAAc,oBAAoB,EAEhE,QAAQzjB,GAAQ,CAC9BA,KAAQyjB,GAAO,OAAOA,EAAIzjB,CAAI,GAAM,YAEtC9F,GAAKupB,EAAKzjB,EAAM,SAAU3F,EAAU,CAClC,MAAMosB,EAAc,CAClB,UAAW,CACT,KAAM,CACJ,SAAUzmB,EACV,QAASvC,GAAgBpD,CAAQ,CAClC,EACD,QAAS,GACT,KAAM,YACP,CACb,EAGgBqsB,EAAmBhsB,GAAoBL,CAAQ,EACrD,OAAIqsB,IACFD,EAAY,UAAU,KAAK,QAAUhpB,GAAgBipB,CAAgB,GAIhE3G,GAAK1lB,EAAUosB,CAAW,CAC3C,CAAS,CAET,CAAK,EAEM7lB,EAAa,MAAM,KAAMxH,CAAI,CACxC,CACA,CAGA,SAASmtB,GAAiBrrB,EAAQ,CAEhC,MAAMyrB,EAAezxB,GAEfuF,EAAQksB,EAAazrB,CAAM,GAAKyrB,EAAazrB,CAAM,EAAE,UAGvD,CAACT,GAAS,CAACA,EAAM,gBAAkB,CAACA,EAAM,eAAe,kBAAkB,IAI/EP,GAAKO,EAAO,mBAAoB,SAAUJ,EAE3C,CACG,OAAO,SAGLusB,EACAlpB,EACApI,EACA,CACA,GAAI,CACE,OAAOoI,EAAG,aAAgB,aAO5BA,EAAG,YAAcqiB,GAAKriB,EAAG,YAAa,CACpC,UAAW,CACT,KAAM,CACJ,SAAU,cACV,QAASD,GAAgBC,CAAE,EAC3B,OAAAxC,CACD,EACD,QAAS,GACT,KAAM,YACP,CACb,CAAW,EAEJ,MAAa,CAEb,CAED,OAAOb,EAAS,MAAM,KAAM,CAC1BusB,EAEA7G,GAAKriB,EAAK,CACR,UAAW,CACT,KAAM,CACJ,SAAU,mBACV,QAASD,GAAgBC,CAAE,EAC3B,OAAAxC,CACD,EACD,QAAS,GACT,KAAM,YACP,CACX,CAAS,EACD5F,CACR,CAAO,CACP,CACA,CAAG,EAED4E,GACEO,EACA,sBACA,SACEyH,EAEA,CACA,OAAO,SAGL0kB,EACAlpB,EACApI,EACA,CAkBA,MAAMuxB,EAAsBnpB,EAC5B,GAAI,CACF,MAAMopB,EAAuBD,GAAuBA,EAAoB,mBACpEC,GACF5kB,EAA4B,KAAK,KAAM0kB,EAAWE,EAAsBxxB,CAAO,CAElF,MAAW,CAEX,CACD,OAAO4M,EAA4B,KAAK,KAAM0kB,EAAWC,EAAqBvxB,CAAO,CAC7F,CACK,CACL,EACA,CCjRA,MAAMyxB,GAAc,QACdC,GAAgB,EAGtB,MAAMC,EAAc,CAIjB,OAAO,cAAe,CAAC,KAAK,GAAK,cAAe,CAK/C,QAAS,CAAC,KAAK,KAAOA,GAAa,EAAG,CAavC,YAAY3xB,EAAU,GAAI,CAAC2xB,GAAa,UAAU,OAAO,KAAK,IAAI,EACjE,KAAK,KAAO3xB,EAAQ,KAAOyxB,GAC3B,KAAK,OAASzxB,EAAQ,OAAS0xB,EAChC,CAKA,WAAY,CACX,MAAMlW,EAASqB,KAAgB,YAC1BrB,GAGLJ,GAAwB,CAAChP,EAAOuO,IAAS,CACvC,MAAM0O,EAAOxM,GAAa,EAAG,eAAe8U,EAAY,EACxD,OAAOtI,EAAOuI,GAASpW,EAAO,WAAU,EAAG,YAAa6N,EAAK,KAAMA,EAAK,OAAQjd,EAAOuO,CAAI,EAAIvO,CACrG,CAAK,CACF,CACH,CAAEulB,GAAa,eAKf,SAASC,GACPlqB,EACA5G,EACAwQ,EACAlF,EACAuO,EACA,CACA,GAAI,CAACvO,EAAM,WAAa,CAACA,EAAM,UAAU,QAAU,CAACuO,GAAQ,CAACxc,GAAawc,EAAK,kBAAmB,KAAK,EACrG,OAAOvO,EAET,MAAMylB,EAAeC,GAAepqB,EAAQ4J,EAAOqJ,EAAK,kBAAoB7Z,CAAG,EAC/E,OAAAsL,EAAM,UAAU,OAAS,CAAC,GAAGylB,EAAc,GAAGzlB,EAAM,UAAU,MAAM,EAC7DA,CACT,CAKA,SAAS0lB,GACPpqB,EACA4J,EACA9G,EACA1J,EACAsG,EAAQ,CAAE,EACV,CACA,GAAI,CAACjJ,GAAaqM,EAAM1J,CAAG,EAAG,KAAK,GAAKsG,EAAM,OAAS,GAAKkK,EAC1D,OAAOlK,EAET,MAAMpB,EAAY8kB,GAAmBpjB,EAAQ8C,EAAM1J,CAAG,CAAC,EACvD,OAAOgxB,GAAepqB,EAAQ4J,EAAO9G,EAAM1J,CAAG,EAAGA,EAAK,CAACkF,EAAW,GAAGoB,CAAK,CAAC,CAC7E,CC/EA,MAAM2qB,EAAa,CAAC,aAAc,CAAEA,GAAY,UAAU,OAAO,KAAK,IAAI,CAAI,CAI3E,OAAO,cAAe,CAAC,KAAK,GAAK,aAAc,CAK/C,QAAS,CAAC,KAAK,KAAOA,GAAY,EAAG,CAKrC,WAAY,CACX3W,GAAyBhP,GAAU,CACjC,GAAIyQ,GAAe,EAAC,eAAekV,EAAW,EAAG,CAE/C,GAAI,CAACnyB,GAAO,WAAa,CAACA,GAAO,UAAY,CAACA,GAAO,SACnD,OAAOwM,EAIT,MAAMhC,EAAOgC,EAAM,SAAWA,EAAM,QAAQ,KAASxM,GAAO,UAAYA,GAAO,SAAS,KAClF,CAAE,SAAAoyB,CAAU,EAAGpyB,GAAO,UAAY,GAClC,CAAE,UAAAyc,CAAW,EAAGzc,GAAO,WAAa,GAEpCoU,EAAU,CACd,GAAI5H,EAAM,SAAWA,EAAM,QAAQ,QACnC,GAAI4lB,GAAY,CAAE,QAASA,GAC3B,GAAI3V,GAAa,CAAE,aAAcA,EAC3C,EACcxN,EAAU,CAAE,GAAGzC,EAAM,QAAS,GAAIhC,GAAO,CAAE,IAAAA,CAAG,EAAK,QAAA4J,GAEzD,MAAO,CAAE,GAAG5H,EAAO,QAAAyC,EACpB,CACD,OAAOzC,CACb,CAAK,CACF,CACH,CAAE2lB,GAAY,aAAc,ECxC5B,MAAME,EAAQ,CAAC,aAAc,CAAEA,GAAO,UAAU,OAAO,KAAK,IAAI,CAAI,CAIjE,OAAO,cAAe,CAAC,KAAK,GAAK,QAAS,CAK1C,QAAS,CAAC,KAAK,KAAOA,GAAO,EAAG,CAShC,UAAU7W,EAAyByB,EAAe,CACjD,MAAMqV,EAAiBC,GAAgB,CAGrC,GAAIA,EAAa,KACf,OAAOA,EAGT,MAAM9I,EAAOxM,EAAa,EAAG,eAAeoV,EAAM,EAClD,GAAI5I,EAAM,CAER,GAAI,CACF,GAAIG,GAAiB2I,EAAc9I,EAAK,cAAc,EACpD,OAAC,OAAO,iBAAqB,KAAe,mBAAqBxlB,EAAO,KAAK,sEAAsE,EAC5I,IAEV,MAAa,CACZ,OAAQwlB,EAAK,eAAiB8I,CAC/B,CAED,OAAQ9I,EAAK,eAAiB8I,CAC/B,CACD,OAAOA,CACb,EAEID,EAAe,GAAK,KAAK,KACzB9W,EAAwB8W,CAAc,CACvC,CACH,CAAED,GAAO,eAGT,SAASzI,GAAiB2I,EAAcC,EAAe,CACrD,OAAKA,EAID,GAAAC,GAAoBF,EAAcC,CAAa,GAI/CE,GAAsBH,EAAcC,CAAa,GAP5C,EAYX,CAGA,SAASC,GAAoBF,EAAcC,EAAe,CACxD,MAAMG,EAAiBJ,EAAa,QAC9BK,EAAkBJ,EAAc,QAoBtC,MAjBI,GAACG,GAAkB,CAACC,GAKnBD,GAAkB,CAACC,GAAqB,CAACD,GAAkBC,GAI5DD,IAAmBC,GAInB,CAACC,GAAmBN,EAAcC,CAAa,GAI/C,CAACM,GAAkBP,EAAcC,CAAa,EAKpD,CAGA,SAASE,GAAsBH,EAAcC,EAAe,CAC1D,MAAMO,EAAoBC,GAAuBR,CAAa,EACxDS,EAAmBD,GAAuBT,CAAY,EAc5D,MAZI,GAACQ,GAAqB,CAACE,GAIvBF,EAAkB,OAASE,EAAiB,MAAQF,EAAkB,QAAUE,EAAiB,OAIjG,CAACJ,GAAmBN,EAAcC,CAAa,GAI/C,CAACM,GAAkBP,EAAcC,CAAa,EAKpD,CAGA,SAASM,GAAkBP,EAAcC,EAAe,CACtD,IAAIU,EAAgBC,GAAoBZ,CAAY,EAChDa,EAAiBD,GAAoBX,CAAa,EAGtD,GAAI,CAACU,GAAiB,CAACE,EACrB,MAAO,GAYT,GARKF,GAAiB,CAACE,GAAoB,CAACF,GAAiBE,IAI7DF,EAAgBA,EAChBE,EAAiBA,EAGbA,EAAe,SAAWF,EAAc,QAC1C,MAAO,GAIT,QAAS,EAAI,EAAG,EAAIE,EAAe,OAAQ,IAAK,CAC9C,MAAMC,EAASD,EAAe,CAAC,EACzBE,EAASJ,EAAc,CAAC,EAE9B,GACEG,EAAO,WAAaC,EAAO,UAC3BD,EAAO,SAAWC,EAAO,QACzBD,EAAO,QAAUC,EAAO,OACxBD,EAAO,WAAaC,EAAO,SAE3B,MAAO,EAEV,CAED,MAAO,EACT,CAGA,SAAST,GAAmBN,EAAcC,EAAe,CACvD,IAAIe,EAAqBhB,EAAa,YAClCiB,EAAsBhB,EAAc,YAGxC,GAAI,CAACe,GAAsB,CAACC,EAC1B,MAAO,GAIT,GAAKD,GAAsB,CAACC,GAAyB,CAACD,GAAsBC,EAC1E,MAAO,GAGTD,EAAqBA,EACrBC,EAAsBA,EAGtB,GAAI,CACF,OAAUD,EAAmB,KAAK,EAAE,IAAMC,EAAoB,KAAK,EAAE,CACtE,MAAa,CACZ,MAAO,EACR,CACH,CAGA,SAASR,GAAuBxmB,EAAO,CACrC,OAAOA,EAAM,WAAaA,EAAM,UAAU,QAAUA,EAAM,UAAU,OAAO,CAAC,CAC9E,CAGA,SAAS2mB,GAAoB3mB,EAAO,CAClC,MAAMpG,EAAYoG,EAAM,UAExB,GAAIpG,EACF,GAAI,CAEF,OAAOA,EAAU,OAAO,CAAC,EAAE,WAAW,MACvC,MAAa,CACZ,MACD,CAGL,CCjMA,MAAMsd,GAAsB,CAC1B,IAAI+P,GACJ,IAAIC,GACJ,IAAI1C,GACJ,IAAI5E,GACJ,IAAI2D,GACJ,IAAIgC,GACJ,IAAIM,GACJ,IAAIF,EACN,EA+DA,SAASwB,GAAKvzB,EAAU,GAAI,CACtBA,EAAQ,sBAAwB,SAClCA,EAAQ,oBAAsBsjB,IAE5BtjB,EAAQ,UAAY,SAElB,OAAO,oBAAuB,WAChCA,EAAQ,QAAU,oBAIhBJ,GAAO,gBAAkBA,GAAO,eAAe,KACjDI,EAAQ,QAAUJ,GAAO,eAAe,KAGxCI,EAAQ,sBAAwB,SAClCA,EAAQ,oBAAsB,IAE5BA,EAAQ,oBAAsB,SAChCA,EAAQ,kBAAoB,IAG9B,MAAMspB,EAAgB,CACpB,GAAGtpB,EACH,YAAa6H,GAAkC7H,EAAQ,aAAewvB,EAAkB,EACxF,aAAcnM,GAAuBrjB,CAAO,EAC5C,UAAWA,EAAQ,YAAcqI,GAAa,EAAKslB,GAAqBO,GAC5E,EAEElG,GAAYkF,GAAe5D,CAAa,EAEpCtpB,EAAQ,qBACVwzB,IAEJ,CAOA,SAASC,GAAiBzzB,EAAU,GAAIyc,EAAMI,GAAa,EAAI,CAE7D,GAAI,CAACjd,GAAO,SAAU,EACnB,OAAO,iBAAqB,KAAe,mBAAqBiE,EAAO,MAAM,sDAAsD,EACpI,MACD,CAED,KAAM,CAAE,OAAA2X,EAAQ,MAAA5B,CAAO,EAAG6C,EAAI,YAAW,EACnC1a,EAAM/B,EAAQ,KAAQwb,GAAUA,EAAO,OAAM,EACnD,GAAI,CAACzZ,EAAK,EACP,OAAO,iBAAqB,KAAe,mBAAqB8B,EAAO,MAAM,8CAA8C,EAC5H,MACD,CAEG+V,IACF5Z,EAAQ,KAAO,CACb,GAAG4Z,EAAM,QAAS,EAClB,GAAG5Z,EAAQ,IACjB,GAGOA,EAAQ,UACXA,EAAQ,QAAUyc,EAAI,eAGxB,MAAMiX,EAAS9zB,GAAO,SAAS,cAAc,QAAQ,EACrD8zB,EAAO,MAAQ,GACfA,EAAO,IAAMtR,GAAwBrgB,EAAK/B,CAAO,EAE7CA,EAAQ,SACV0zB,EAAO,OAAS1zB,EAAQ,QAG1B,MAAM2zB,EAAiB/zB,GAAO,SAAS,MAAQA,GAAO,SAAS,KAC3D+zB,EACFA,EAAe,YAAYD,CAAM,GAEhC,OAAO,iBAAqB,KAAe,mBAAqB7vB,EAAO,MAAM,+DAA+D,CAEjJ,CAyEA,SAAS+vB,GAAkBnX,EAAK,CAC9BA,EAAI,aAAa,CAAE,eAAgB,EAAM,GACzCA,EAAI,eAAc,CACpB,CAKA,SAAS+W,IAAuB,CAC9B,GAAI,OAAO5zB,GAAO,SAAa,IAAa,EACzC,OAAO,iBAAqB,KAAe,mBAC1CiE,EAAO,KAAK,oFAAoF,EAClG,MACD,CAED,MAAM4Y,EAAMI,KAQPJ,EAAI,iBAQTmX,GAAkBnX,CAAG,EAGrB7S,GAA0B,UAAW,CAAC,CAAE,KAAA1G,EAAM,GAAAwI,CAAE,IAAO,CAE/CxI,IAAS,QAAaA,IAASwI,GACnCkoB,GAAkB/W,GAAa,CAAE,CAEvC,CAAG,EACH,CCrRA,MAAMjd,GAASP,GCMf,SAASw0B,IAAiC,CACpCj0B,IAAUA,GAAO,SACnBA,GAAO,SAAS,iBAAiB,mBAAoB,IAAM,CACzD,MAAM4d,EAAoBL,KAC1B,GAAIvd,GAAO,SAAS,QAAU4d,EAAmB,CAC/C,MAAMsW,EAAa,aAElB,OAAO,iBAAqB,KAAe,mBAC1CjwB,EAAO,IACL,0BAA0BiwB,CAAU,8CAA8CtW,EAAkB,EAAE,EAClH,EAGaA,EAAkB,QACrBA,EAAkB,UAAUsW,CAAU,EAExCtW,EAAkB,OAAO,mBAAoB,iBAAiB,EAC9DA,EAAkB,OAAM,CACzB,CACP,CAAK,GAEA,OAAO,iBAAqB,KAAe,mBAC1C3Z,EAAO,KAAK,oFAAoF,CAEtG,CChCA,MAAMkwB,GAAe,CACnBzwB,EACA0wB,EACAC,IACG,CACH,IAAIC,EACAC,EACJ,OAAQC,GAAgB,CAClBJ,EAAO,OAAS,IACdI,GAAeH,KACjBE,EAAQH,EAAO,OAASE,GAAa,IAMjCC,GAASD,IAAc,UACzBA,EAAYF,EAAO,MACnBA,EAAO,MAAQG,EACf7wB,EAAS0wB,CAAM,GAIzB,CACA,ECHMK,GAAmB,IAChB,MAAM,KAAK,IAAG,CAAE,IAAI,KAAK,MAAM,KAAK,OAAQ,GAAI,KAAO,EAAE,EAAI,IAAI,GCJpEC,GAA0C,IAAM,CAEpD,MAAMC,EAAS30B,GAAO,YAAY,OAE5BwJ,EAAOxJ,GAAO,YAAY,WAAW,KAErC40B,EAAkB,CACtB,UAAW,aACX,UAAW,EACX,KAAMprB,GAAQ,EAAI,eAAiBA,IAAS,EAAI,SAAW,UAC/D,EAEE,UAAWtI,KAAOyzB,EACZzzB,IAAQ,mBAAqBA,IAAQ,WACvC0zB,EAAgB1zB,CAAG,EAAI,KAAK,IAAKyzB,EAAOzzB,GAAUyzB,EAAO,gBAAiB,CAAC,GAG/E,OAAOC,CACT,EAEMC,GAAqB,IACrB70B,GAAO,wBAEPA,GAAO,cACL,YAAY,kBAAoB,YAAY,iBAAiB,YAAY,EAAE,CAAC,GAC5E00B,MAGG10B,GAAO,aAAe,YAAY,kBAAoB,YAAY,iBAAiB,YAAY,EAAE,CAAC,EC5BvG80B,GAAqB,IAAM,CAC/B,MAAMC,EAAWF,KACjB,OAAQE,GAAYA,EAAS,iBAAoB,CACnD,ECAMC,GAAa,CAACp1B,EAAM6E,IAAU,CAClC,MAAMswB,EAAWF,KACjB,IAAII,EAAiB,WAErB,OAAIF,IACE/0B,GAAO,SAAS,cAAgB80B,GAAkB,EAAK,EACzDG,EAAiB,YAEjBA,EAAiBF,EAAS,KAAK,QAAQ,KAAM,GAAG,GAI7C,CACL,KAAAn1B,EACA,MAAO,OAAO6E,EAAU,IAAc,GAAKA,EAC3C,OAAQ,OACR,MAAO,EACP,QAAS,CAAE,EACX,GAAIgwB,GAAkB,EACtB,eAAAQ,CACJ,CACA,EClCMC,GAAU,CACd1rB,EACA9F,EACAyxB,IACG,CACH,GAAI,CACF,GAAI,oBAAoB,oBAAoB,SAAS3rB,CAAI,EAAG,CAC1D,MAAM4rB,EAAK,IAAI,oBAAoBC,GAAQ,CACzC3xB,EAAS2xB,EAAK,WAAU,EAChC,CAAO,EACD,OAAAD,EAAG,QACD,OAAO,OACL,CACE,KAAA5rB,EACA,SAAU,EACX,EACD2rB,GAAQ,CAAE,CACX,CACT,EACaC,CACR,CACF,MAAW,CAEX,CAEH,ECfME,GAAW,CAACC,EAAIC,IAAS,CAC7B,MAAMC,EAAsBjpB,GAAU,EAChCA,EAAM,OAAS,YAAcxM,GAAO,SAAS,kBAAoB,YACnEu1B,EAAG/oB,CAAK,EACJgpB,IACF,oBAAoB,mBAAoBC,EAAoB,EAAI,EAChE,oBAAoB,WAAYA,EAAoB,EAAI,GAGhE,EACE,iBAAiB,mBAAoBA,EAAoB,EAAI,EAG7D,iBAAiB,WAAYA,EAAoB,EAAI,CACvD,ECUMC,GAASC,GAAa,CAC1B,MAAMvB,EAASY,GAAW,MAAO,CAAC,EAClC,IAAIY,EAEAC,EAAe,EACfC,EAAiB,GAGrB,MAAMC,EAAiBC,GAAY,CACjCA,EAAQ,QAAQC,GAAS,CAEvB,GAAI,CAACA,EAAM,eAAgB,CACzB,MAAMC,EAAoBJ,EAAe,CAAC,EACpCK,EAAmBL,EAAeA,EAAe,OAAS,CAAC,EAM/DD,GACAC,EAAe,SAAW,GAC1BG,EAAM,UAAYE,EAAiB,UAAY,KAC/CF,EAAM,UAAYC,EAAkB,UAAY,KAEhDL,GAAgBI,EAAM,MACtBH,EAAe,KAAKG,CAAK,IAEzBJ,EAAeI,EAAM,MACrBH,EAAiB,CAACG,CAAK,GAKrBJ,EAAezB,EAAO,QACxBA,EAAO,MAAQyB,EACfzB,EAAO,QAAU0B,EACbF,GACFA,IAGL,CACP,CAAK,CACL,EAEQR,EAAKF,GAAQ,eAAgBa,CAAa,EAChD,GAAIX,EAAI,CACNQ,EAASzB,GAAawB,EAAUvB,CAAM,EAEtC,MAAMgC,EAAgB,IAAM,CAC1BL,EAAcX,EAAG,YAAW,GAC5BQ,EAAO,EAAI,CACjB,EAEI,OAAAN,GAASc,CAAa,EAEfA,CACR,CAGH,EClFA,IAAIC,GAAkB,GAEtB,MAAMC,GAAiB,IAGdt2B,GAAO,SAAS,kBAAoB,UAAY,CAACA,GAAO,SAAS,aAAe,EAAI,IAGvFu2B,GAAe,IAAM,CAEzBjB,GAAS,CAAC,CAAE,UAAAkB,KAAgB,CAC1BH,GAAkBG,CACnB,EAAE,EAAI,CACT,EAEMC,GAAuB,KAGvBJ,GAAkB,IAKpBA,GAAkBC,GAAc,EAChCC,MAEK,CACL,IAAI,iBAAkB,CACpB,OAAOF,EACR,CACL,GClBMK,GAASf,GAAa,CAC1B,MAAMgB,EAAoBF,KACpBrC,EAASY,GAAW,KAAK,EAE/B,IAAIY,EAEJ,MAAMgB,EAAeX,GAAU,CAEzBA,EAAM,UAAYU,EAAkB,kBACtCvC,EAAO,MAAQ6B,EAAM,gBAAkBA,EAAM,UAC7C7B,EAAO,QAAQ,KAAK6B,CAAK,EACzBL,EAAO,EAAI,EAEjB,EAEQG,EAAiBC,GAAY,CAChCA,EAAU,QAAQY,CAAW,CAClC,EAEQxB,EAAKF,GAAQ,cAAea,CAAa,EAC/CH,EAASzB,GAAawB,EAAUvB,CAAM,EAElCgB,GACFE,GAAS,IAAM,CACbS,EAAcX,EAAG,YAAW,GAC5BA,EAAG,WAAU,CACd,EAAE,EAAI,CAEX,ECpCMyB,GAAoB,GAQpBC,GAASnB,GAAa,CAC1B,MAAMgB,EAAoBF,KACpBrC,EAASY,GAAW,KAAK,EAC/B,IAAIY,EAEJ,MAAMG,EAAiBC,GAAY,CACjC,MAAMe,EAAYf,EAAQA,EAAQ,OAAS,CAAC,EAC5C,GAAIe,EAAW,CAKb,MAAMtyB,EAAQ,KAAK,IAAIsyB,EAAU,UAAYjC,GAAkB,EAAI,CAAC,EAGhErwB,EAAQkyB,EAAkB,kBAC5BvC,EAAO,MAAQ3vB,EACf2vB,EAAO,QAAU,CAAC2C,CAAS,EAC3BnB,IAEH,CACL,EAEQR,EAAKF,GAAQ,2BAA4Ba,CAAa,EAE5D,GAAIX,EAAI,CACNQ,EAASzB,GAAawB,EAAUvB,CAAM,EAEtC,MAAMgC,EAAgB,IAAM,CACrBS,GAAkBzC,EAAO,EAAE,IAC9B2B,EAAcX,EAAG,YAAW,GAC5BA,EAAG,WAAU,EACbyB,GAAkBzC,EAAO,EAAE,EAAI,GAC/BwB,EAAO,EAAI,EAEnB,EAKI,OAAC,UAAW,OAAO,EAAE,QAAQpsB,GAAQ,CACnC,iBAAiBA,EAAM4sB,EAAe,CAAE,KAAM,GAAM,QAAS,EAAI,CAAE,CACzE,CAAK,EAEDd,GAASc,EAAe,EAAI,EAErBA,CACR,CAGH,EC9EA,SAASY,GAAmBvyB,EAAO,CACjC,OAAO,OAAOA,GAAU,UAAY,SAASA,CAAK,CACpD,CAOA,SAASwyB,GAAYjc,EAAa,CAAE,eAAA6R,EAAgB,GAAGqK,CAAG,EAAI,CAC5D,OAAIrK,GAAkB7R,EAAY,eAAiB6R,IACjD7R,EAAY,eAAiB6R,GAGxB7R,EAAY,WAAW,CAC5B,eAAA6R,EACA,GAAGqK,CACP,CAAG,CACH,CCPA,SAASC,GAAQC,EAAM,CACrB,OAAOA,EAAO,GAChB,CAEA,SAASC,IAA2B,CAClC,OAAOr3B,IAAUA,GAAO,kBAAoBA,GAAO,WACrD,CAEA,IAAIs3B,GAAqB,EAErBC,GAAgB,GAChBC,GACAC,GAOJ,SAASC,IAAyB,CAChC,MAAM9kB,EAAcykB,KACpB,GAAIzkB,GAAeS,GAA8B,CAC3CT,EAAY,MACd5S,GAAO,YAAY,KAAK,qBAAqB,EAE/C23B,KACA,MAAMC,EAAcC,KACdC,EAAcC,KAEpB,MAAO,IAAM,CACPH,GACFA,IAEEE,GACFA,GAER,CACG,CAED,MAAO,IAAM,EACf,CAKA,SAASE,IAAyB,CAmBhC9C,GAAQ,WAlBcc,GAAY,CAChC,UAAWC,KAASD,EAAS,CAC3B,MAAMhb,EAAcuC,KACpB,GAAI,CAACvC,EACH,OAEF,MAAMid,EAAYd,GAAS9jB,GAAiC4iB,EAAM,SAAS,EACrEtc,EAAWwd,GAAQlB,EAAM,QAAQ,EAEvCjb,EAAY,WAAW,CACrB,YAAa,yBACb,GAAI,eACJ,eAAgBid,EAChB,aAAcA,EAAYte,CAClC,CAAO,CACF,CACL,CAEkC,CAClC,CAKA,SAASue,IAA4B,CAsBnChD,GAAQ,QArBcc,GAAY,CAChC,UAAWC,KAASD,EAAS,CAC3B,MAAMhb,EAAcuC,KACpB,GAAI,CAACvC,EACH,OAGF,GAAIib,EAAM,OAAS,QAAS,CAC1B,MAAMgC,EAAYd,GAAS9jB,GAAiC4iB,EAAM,SAAS,EACrEtc,EAAWwd,GAAQlB,EAAM,QAAQ,EAEvCjb,EAAY,WAAW,CACrB,YAAa9a,GAAiB+1B,EAAM,MAAM,EAC1C,GAAI,kBAAkBA,EAAM,IAAI,GAChC,eAAgBgC,EAChB,aAAcA,EAAYte,CACpC,CAAS,CACF,CACF,CACL,EAEiC,CAAE,kBAAmB,CAAG,EACzD,CAGA,SAASke,IAAY,CAInB,OAAOnC,GAAMtB,GAAU,CACrB,MAAM6B,EAAQ7B,EAAO,QAAQ,IAAG,EAC3B6B,KAIJ,OAAO,iBAAqB,KAAe,mBAAqBhyB,EAAO,IAAI,2BAA2B,EACvGszB,GAAc,IAAS,CAAE,MAAOnD,EAAO,MAAO,KAAM,IACpDqD,GAAYxB,EAChB,CAAG,CACH,CAGA,SAAS8B,IAAY,CACnB,OAAOjB,GAAM1C,GAAU,CACrB,MAAM6B,EAAQ7B,EAAO,QAAQ,IAAG,EAC3B6B,KAIJ,OAAO,iBAAqB,KAAe,mBAAqBhyB,EAAO,IAAI,2BAA2B,EACvGszB,GAAc,IAAS,CAAE,MAAOnD,EAAO,MAAO,KAAM,eACpDoD,GAAYvB,EAChB,CAAG,CACH,CAGA,SAAS0B,IAAY,CACnBjB,GAAMtC,GAAU,CACd,MAAM6B,EAAQ7B,EAAO,QAAQ,IAAG,EAChC,GAAI,CAAC6B,EACH,OAGF,MAAMpjB,EAAaskB,GAAQ9jB,IACrB4kB,EAAYd,GAAQlB,EAAM,SAAS,GACxC,OAAO,iBAAqB,KAAe,mBAAqBhyB,EAAO,IAAI,2BAA2B,EACvGszB,GAAc,IAAS,CAAE,MAAOnD,EAAO,MAAO,KAAM,eACpDmD,GAAc,UAAU,EAAI,CAAE,MAAO1kB,EAAaolB,EAAW,KAAM,SACvE,CAAG,CACH,CAGA,SAASE,GAAsBnd,EAAa,CAC1C,MAAMpI,EAAcykB,KACpB,GAAI,CAACzkB,GAAe,CAAC5S,GAAO,YAAY,YAAc,CAACqT,GAErD,QAGD,OAAO,iBAAqB,KAAe,mBAAqBpP,EAAO,IAAI,0DAA0D,EACtI,MAAM4O,EAAaskB,GAAQ9jB,EAA4B,EAEjD+kB,EAAqBxlB,EAAY,aAEvC,IAAIylB,EACAC,EAoDJ,GAjDAF,EAAmB,MAAMd,EAAkB,EAAE,QAASrB,GAAU,CAC9D,MAAMgC,EAAYd,GAAQlB,EAAM,SAAS,EACnCtc,EAAWwd,GAAQlB,EAAM,QAAQ,EAEvC,GAAI,EAAAjb,EAAY,KAAO,cAAgBnI,EAAaolB,EAAYjd,EAAY,gBAI5E,OAAQib,EAAM,UAAS,CACrB,IAAK,aAAc,CACjBsC,GAAoBvd,EAAaib,EAAOpjB,CAAU,EAClDwlB,EAAyBxlB,EAAaskB,GAAQlB,EAAM,aAAa,EACjEqC,EAAwBzlB,EAAaskB,GAAQlB,EAAM,YAAY,EAC/D,KACD,CACD,IAAK,OACL,IAAK,QACL,IAAK,UAAW,CACduC,GAAiBxd,EAAaib,EAAOgC,EAAWte,EAAU9G,CAAU,EAGpE,MAAM4lB,EAAchC,KAEdiC,EAAezC,EAAM,UAAYwC,EAAY,gBAE/CxC,EAAM,OAAS,eAAiByC,KACjC,OAAO,iBAAqB,KAAe,mBAAqBz0B,EAAO,IAAI,0BAA0B,EACtGszB,GAAc,GAAQ,CAAE,MAAOtB,EAAM,UAAW,KAAM,gBAEpDA,EAAM,OAAS,0BAA4ByC,KAC5C,OAAO,iBAAqB,KAAe,mBAAqBz0B,EAAO,IAAI,2BAA2B,EACvGszB,GAAc,IAAS,CAAE,MAAOtB,EAAM,UAAW,KAAM,gBAEzD,KACD,CACD,IAAK,WAAY,CACf,MAAM0C,EAAgB1C,EAAM,KAAO,QAAQj2B,GAAO,SAAS,OAAQ,EAAE,EACrE44B,GAAkB5d,EAAaib,EAAO0C,EAAcV,EAAWte,EAAU9G,CAAU,EACnF,KACD,CAEF,CACL,CAAG,EAEDykB,GAAqB,KAAK,IAAIc,EAAmB,OAAS,EAAG,CAAC,EAE9DS,GAAgB7d,CAAW,EAGvBA,EAAY,KAAO,WAAY,CAG7B,OAAOqd,GAA2B,YACnC,OAAO,iBAAqB,KAAe,mBAAqBp0B,EAAO,IAAI,4BAA4B,EACxGszB,GAAc,KAAU,CACtB,OAAQc,EAAyBrd,EAAY,gBAAkB,IAC/D,KAAM,aACd,EAEU,OAAOsd,GAA0B,UAAYA,GAAyBD,IAGxEd,GAAc,kBAAkB,EAAI,CAClC,OAAQc,EAAyBC,GAAyB,IAC1D,KAAM,aAChB,IAII,CAAC,MAAO,KAAM,KAAK,EAAE,QAAQ14B,GAAQ,CACnC,GAAI,CAAC23B,GAAc33B,CAAI,GAAKiT,GAAcmI,EAAY,eACpD,OAKF,MAAM8d,EAAWvB,GAAc33B,CAAI,EAAE,MAC/Bm5B,EAAuBlmB,EAAaskB,GAAQ2B,CAAQ,EAGpDE,EAAkB,KAAK,KAAKD,EAAuB/d,EAAY,gBAAkB,GAAI,EACrFuZ,EAAQyE,EAAkBF,GAE/B,OAAO,iBAAqB,KAAe,mBAC1C70B,EAAO,IAAI,6BAA6BrE,CAAI,SAASk5B,CAAQ,OAAOE,CAAe,KAAKzE,CAAK,GAAG,EAClGgD,GAAc33B,CAAI,EAAE,MAAQo5B,CAClC,CAAK,EAED,MAAMC,EAAU1B,GAAc,UAAU,EACpC0B,GAAW1B,GAAc,MAE3BN,GAAYjc,EAAa,CACvB,YAAa,oBACb,aAAcie,EAAQ,MAAQ9B,GAAQI,GAAc,IAAO,KAAK,EAChE,GAAI,YACJ,eAAgB0B,EAAQ,KAChC,CAAO,EAGD,OAAO1B,GAAc,UAAU,GAK3B,QAASA,IACb,OAAOA,GAAc,IAGvB,OAAO,KAAKA,EAAa,EAAE,QAAQ2B,GAAmB,CACpDle,EAAY,eACVke,EACA3B,GAAc2B,CAAe,EAAE,MAC/B3B,GAAc2B,CAAe,EAAE,IACvC,CACA,CAAK,EAEDC,GAAene,CAAW,CAC3B,CAEDwc,GAAY,OACZC,GAAY,OACZF,GAAgB,EAClB,CAGA,SAASiB,GACPxd,EAEAib,EACAgC,EACAte,EACA9G,EACA,CACA,MAAMumB,EAAwBvmB,EAAaolB,EACrCoB,EAAsBD,EAAwBzf,EAEpD,OAAAsd,GAAYjc,EAAa,CACvB,YAAaib,EAAM,KACnB,aAAcoD,EACd,GAAIpD,EAAM,UACV,eAAgBmD,CACpB,CAAG,EAEMA,CACT,CAIA,SAASb,GAAoBvd,EAAaib,EAAOpjB,EAAY,CAC3D,CAAC,cAAe,WAAY,wBAAyB,YAAa,SAAS,EAAE,QAAQrG,GAAS,CAC5F8sB,GAAgCte,EAAaib,EAAOzpB,EAAOqG,CAAU,CACzE,CAAG,EACDymB,GAAgCte,EAAaib,EAAO,mBAAoBpjB,EAAY,UAAW,YAAY,EAC3GymB,GAAgCte,EAAaib,EAAO,QAASpjB,EAAY,QAAS,mBAAmB,EACrGymB,GAAgCte,EAAaib,EAAO,eAAgBpjB,EAAY,KAAK,EACrF0mB,GAAYve,EAAaib,EAAOpjB,CAAU,CAC5C,CAGA,SAASymB,GACPte,EAEAib,EACAzpB,EACAqG,EACA2mB,EACAC,EACA,CACA,MAAMC,EAAMD,EAAYxD,EAAMwD,CAAQ,EAAOxD,EAAM,GAAGzpB,CAAK,KAAK,EAC1DmtB,EAAQ1D,EAAM,GAAGzpB,CAAK,OAAO,EAC/B,CAACmtB,GAAS,CAACD,GAGfzC,GAAYjc,EAAa,CACvB,GAAI,UACJ,YAAawe,GAAehtB,EAC5B,eAAgBqG,EAAaskB,GAAQwC,CAAK,EAC1C,aAAc9mB,EAAaskB,GAAQuC,CAAG,CAC1C,CAAG,CACH,CAIA,SAASH,GAAYve,EAAaib,EAAOpjB,EAAY,CACnDokB,GAAYjc,EAAa,CACvB,GAAI,UACJ,YAAa,UACb,eAAgBnI,EAAaskB,GAAQlB,EAAM,YAAc,EACzD,aAAcpjB,EAAaskB,GAAQlB,EAAM,WAAa,CAC1D,CAAG,EAEDgB,GAAYjc,EAAa,CACvB,GAAI,UACJ,YAAa,WACb,eAAgBnI,EAAaskB,GAAQlB,EAAM,aAAe,EAC1D,aAAcpjB,EAAaskB,GAAQlB,EAAM,WAAa,CAC1D,CAAG,CACH,CAGA,SAAS2C,GACP5d,EACAib,EACA0C,EACAV,EACAte,EACA9G,EACA,CAGA,GAAIojB,EAAM,gBAAkB,kBAAoBA,EAAM,gBAAkB,QACtE,OAIF,MAAM/rB,EAAO,GACT,iBAAkB+rB,IACpB/rB,EAAK,eAAe,EAAI+rB,EAAM,cAE5B,oBAAqBA,IACvB/rB,EAAK,mBAAmB,EAAI+rB,EAAM,iBAEhC,oBAAqBA,IACvB/rB,EAAK,mBAAmB,EAAI+rB,EAAM,iBAEhC,yBAA0BA,IAC5B/rB,EAAK,iCAAiC,EAAI+rB,EAAM,sBAGlD,MAAMpJ,EAAiBha,EAAaolB,EAC9BxZ,EAAeoO,EAAiBlT,EAEtCsd,GAAYjc,EAAa,CACvB,YAAa2d,EACb,aAAAla,EACA,GAAIwX,EAAM,cAAgB,YAAYA,EAAM,aAAa,GAAK,iBAC9D,eAAApJ,EACA,KAAA3iB,CACJ,CAAG,CACH,CAKA,SAAS2uB,GAAgB7d,EAAa,CACpC,MAAM4e,EAAY55B,GAAO,UACzB,GAAI,CAAC45B,EACH,OAIF,MAAMC,EAAaD,EAAU,WACzBC,IACEA,EAAW,eACb7e,EAAY,OAAO,0BAA2B6e,EAAW,aAAa,EAGpEA,EAAW,MACb7e,EAAY,OAAO,iBAAkB6e,EAAW,IAAI,EAGlD7C,GAAmB6C,EAAW,GAAG,IACnCtC,GAAc,gBAAgB,EAAI,CAAE,MAAOsC,EAAW,IAAK,KAAM,iBAIjE7C,GAAmB4C,EAAU,YAAY,GAC3C5e,EAAY,OAAO,eAAgB,GAAG4e,EAAU,YAAY,KAAK,EAG/D5C,GAAmB4C,EAAU,mBAAmB,GAClD5e,EAAY,OAAO,sBAAuB,OAAO4e,EAAU,mBAAmB,CAAC,CAEnF,CAGA,SAAST,GAAene,EAAa,CAC/Bwc,MACD,OAAO,iBAAqB,KAAe,mBAAqBvzB,EAAO,IAAI,gCAAgC,EAIxGuzB,GAAU,SACZxc,EAAY,OAAO,cAAe9a,GAAiBs3B,GAAU,OAAO,CAAC,EAGnEA,GAAU,IACZxc,EAAY,OAAO,SAAUwc,GAAU,EAAE,EAGvCA,GAAU,KAEZxc,EAAY,OAAO,UAAWwc,GAAU,IAAI,KAAM,EAAC,MAAM,EAAG,GAAG,CAAC,EAGlExc,EAAY,OAAO,WAAYwc,GAAU,IAAI,GAI3CC,IAAaA,GAAU,WACxB,OAAO,iBAAqB,KAAe,mBAAqBxzB,EAAO,IAAI,gCAAgC,EAC5GwzB,GAAU,QAAQ,QAAQ,CAACxyB,EAAQoW,IACjCL,EAAY,OAAO,cAAcK,EAAQ,CAAC,GAAInb,GAAiB+E,EAAO,IAAI,CAAC,CACjF,EAEA,CCzdA,MAAM60B,GAAoC,CAAC,YAAa,KAAK,EAIvDC,GAAuC,CAC3C,WAAY,GACZ,SAAU,GAEV,eAAgBD,GAChB,wBAAyBA,EAC3B,EAGA,SAASE,GAA2BzQ,EAAU,CAE5C,KAAM,CAAE,WAAA0Q,EAAY,SAAAC,EAAU,wBAAAC,EAAyB,eAAAC,EAAgB,2BAAAC,CAA0B,EAAK,CACpG,WAAYN,GAAqC,WACjD,SAAUA,GAAqC,SAC/C,GAAGxQ,CACP,EAEQ+Q,EACJ,OAAOD,GAA+B,WAAaA,EAA8BtpB,GAAM,GAKnFwpB,EAAkC/vB,GACtCgwB,GAAoBhwB,EAAK2vB,GAA2BC,CAAc,EAE9DK,EAAQ,GAEVR,GACFjwB,GAA0B,QAAUU,GAAgB,CAClDgwB,GAAchwB,EAAa4vB,EAAkBC,EAAgCE,CAAK,CACxF,CAAK,EAGCP,GACFlwB,GAA0B,MAAQU,GAAgB,CAChDiwB,GAAYjwB,EAAa4vB,EAAkBC,EAAgCE,CAAK,CACtF,CAAK,CAEL,CAOA,SAASD,GAAoBhwB,EAAK2vB,EAAyB,CACzD,OAAOt1B,GAAyB2F,EAAK2vB,GAA2BL,EAAiC,CACnG,CAKA,SAASY,GACPhwB,EACA4vB,EACAE,EACAC,EACA,CACA,GAAI,CAACpd,MAAuB,EAAE3S,EAAY,WAAa4vB,EAAiB5vB,EAAY,UAAU,GAAG,GAC/F,OAGF,GAAIA,EAAY,aAAc,CAC5B,MAAMkW,EAASlW,EAAY,UAAU,OACrC,GAAI,CAACkW,EAAQ,OAEb,MAAMpG,EAAOigB,EAAM7Z,CAAM,EACrBpG,IACE9P,EAAY,SAGd8P,EAAK,cAAc9P,EAAY,SAAS,MAAM,EACrCA,EAAY,OACrB8P,EAAK,UAAU,gBAAgB,EAEjCA,EAAK,OAAM,EAGX,OAAOigB,EAAM7Z,CAAM,GAErB,MACD,CAED,MAAMga,EAAe3d,KAAgB,WAC/B4d,EAAcD,GAAgBA,EAAa,QAAO,EAClDhd,EAAoBid,GAAeA,EAAY,YAErD,GAAIA,GAAejd,EAAmB,CACpC,MAAMpD,EAAOqgB,EAAY,WAAW,CAClC,KAAM,CACJ,GAAGnwB,EAAY,UACf,KAAM,OACP,EACD,YAAa,GAAGA,EAAY,UAAU,MAAM,IAAIA,EAAY,UAAU,GAAG,GACzE,GAAI,aACV,CAAK,EAEDA,EAAY,UAAU,OAAS8P,EAAK,OACpCigB,EAAMjgB,EAAK,MAAM,EAAIA,EAErB,MAAMvL,EAAUvE,EAAY,KAAK,CAAC,EAGlCA,EAAY,KAAK,CAAC,EAAIA,EAAY,KAAK,CAAC,GAAK,GAG7C,MAAMtK,EAAUsK,EAAY,KAAK,CAAC,EAE9B8vB,EAAoB9vB,EAAY,UAAU,GAAG,IAC/CtK,EAAQ,QAAU06B,GAChB7rB,EACA2O,EAAkB,0BAA2B,EAC7CpD,EACApa,CACR,EAEG,CACH,CAKA,SAAS06B,GACP7rB,EACAuH,EACAgE,EACApa,EAGA,CACA,MAAM26B,EAAsBtiB,GAA4CjC,CAAsB,EACxFwkB,EAAoBxgB,EAAK,gBAEzBpG,EACJ,OAAO,QAAY,KAAe7V,GAAa0Q,EAAS,OAAO,EAAKA,EAAU,QAAU7O,EAAQ,QAElG,GAAKgU,EAEE,GAAI,OAAO,QAAY,KAAe7V,GAAa6V,EAAS,OAAO,EAAG,CAC3E,MAAM6mB,EAAa,IAAI,QAAQ7mB,GAE/B,OAAA6mB,EAAW,OAAO,eAAgBD,CAAiB,EAE/CD,GAGFE,EAAW,OAAOnjB,GAAqBijB,CAAmB,EAGrDE,CACR,SAAU,MAAM,QAAQ7mB,CAAO,EAAG,CACjC,MAAM6mB,EAAa,CAAC,GAAG7mB,EAAS,CAAC,eAAgB4mB,CAAiB,CAAC,EAEnE,OAAID,GAGFE,EAAW,KAAK,CAACnjB,GAAqBijB,CAAmB,CAAC,EAGrDE,CACX,KAAS,CACL,MAAMC,EAAwB,YAAa9mB,EAAUA,EAAQ,QAAU,OACjE+mB,EAAoB,GAE1B,OAAI,MAAM,QAAQD,CAAqB,EACrCC,EAAkB,KAAK,GAAGD,CAAqB,EACtCA,GACTC,EAAkB,KAAKD,CAAqB,EAG1CH,GACFI,EAAkB,KAAKJ,CAAmB,EAGrC,CACL,GAAI3mB,EACJ,eAAgB4mB,EAChB,QAASG,EAAkB,OAAS,EAAIA,EAAkB,KAAK,GAAG,EAAI,MAC5E,CACG,KA1CC,OAAO,CAAE,eAAgBH,EAAmB,QAASD,CAAmB,CA2C5E,CAKA,SAASJ,GACPjwB,EACA4vB,EACAE,EACAC,EACA,CACA,MAAMlM,EAAM7jB,EAAY,IAClBiB,EAAgB4iB,GAAOA,EAAInlB,EAAmB,EAEpD,GACE,CAACiU,GAAmB,GACnBkR,GAAOA,EAAI,wBACZ,EAAEA,GAAO5iB,GAAiB2uB,EAAiB3uB,EAAc,GAAG,GAE5D,OAIF,GAAIjB,EAAY,aAAc,CAC5B,MAAMkW,EAAS2N,EAAI,uBACnB,GAAI,CAAC3N,EAAQ,OAEb,MAAMpG,EAAOigB,EAAM7Z,CAAM,EACrBpG,IACFA,EAAK,cAAc7O,EAAc,WAAW,EAC5C6O,EAAK,OAAM,EAGX,OAAOigB,EAAM7Z,CAAM,GAErB,MACD,CAED,MAAMga,EAAe3d,KAAgB,WAC/B4d,EAAcD,GAAgBA,EAAa,QAAO,EAClDhd,EAAoBid,GAAeA,EAAY,YAErD,GAAIA,GAAejd,EAAmB,CACpC,MAAMpD,EAAOqgB,EAAY,WAAW,CAClC,KAAM,CACJ,GAAGlvB,EAAc,KACjB,KAAM,MACN,OAAQA,EAAc,OACtB,IAAKA,EAAc,GACpB,EACD,YAAa,GAAGA,EAAc,MAAM,IAAIA,EAAc,GAAG,GACzD,GAAI,aACV,CAAK,EAKD,GAHA4iB,EAAI,uBAAyB/T,EAAK,OAClCigB,EAAMlM,EAAI,sBAAsB,EAAI/T,EAEhC+T,EAAI,kBAAoBiM,EAAoB7uB,EAAc,GAAG,EAC/D,GAAI,CACF4iB,EAAI,iBAAiB,eAAgB/T,EAAK,cAAe,GAEzD,MAAMhE,EAAyBoH,EAAkB,4BAC3Cmd,EAAsBtiB,GAA4CjC,CAAsB,EAE1FukB,GAIFxM,EAAI,iBAAiBzW,GAAqBijB,CAAmB,CAEhE,MAAW,CAEX,CAEJ,CACH,CCnQA,SAASK,GACPC,EACAC,EAA6B,GAC7BC,EAAmC,GACnC,CACA,GAAI,CAACv7B,IAAU,CAACA,GAAO,SAAU,EAC9B,OAAO,iBAAqB,KAAe,mBAAqBiE,EAAO,KAAK,sEAAsE,EACnJ,MACD,CAED,IAAIu3B,EAAcx7B,GAAO,SAAS,KAE9B4d,EACA0d,IACF1d,EAAoByd,EAAuB,CACzC,KAAMr7B,GAAO,SAAS,SAEtB,eAAgBqT,GAChB,GAAI,WACJ,SAAU,CAAE,OAAQ,KAAO,CACjC,CAAK,GAGCkoB,GACFvxB,GAA0B,UAAW,CAAC,CAAE,GAAA8B,EAAI,KAAAxI,CAAI,IAAO,CAUrD,GAAIA,IAAS,QAAak4B,GAAeA,EAAY,QAAQ1vB,CAAE,IAAM,GAAI,CACvE0vB,EAAc,OACd,MACD,CAEGl4B,IAASwI,IACX0vB,EAAc,OACV5d,KACD,OAAO,iBAAqB,KAAe,mBAAqB3Z,EAAO,IAAI,oDAAoD2Z,EAAkB,EAAE,EAAE,EAEtJA,EAAkB,OAAM,GAE1BA,EAAoByd,EAAuB,CACzC,KAAMr7B,GAAO,SAAS,SACtB,GAAI,aACJ,SAAU,CAAE,OAAQ,KAAO,CACrC,CAAS,EAET,CAAK,CAEL,CCpDA,MAAMy7B,GAAiC,iBAIjCC,GAAkC,CACtC,GAAGhc,GACH,2BAA4B,GAC5B,uBAAwB0b,GACxB,iCAAkC,GAClC,2BAA4B,GAC5B,eAAgB,GAChB,aAAc,CAAE,EAChB,GAAGrB,EACL,EASA,MAAM4B,EAAgB,CAWnB,QAAS,CAAC,KAAK,KAAOF,EAA+B,CAErD,YAAYlS,EAAU,CAACoS,GAAe,UAAU,OAAO,KAAK,IAAI,EAC/D/Z,KAEA,KAAK,QAAU,CACb,GAAG8Z,GACH,GAAGnS,CACT,EAIQ,KAAK,QAAQ,aAAa,iBAAmB,SAC/C,KAAK,QAAQ,eAAiB,KAAK,QAAQ,aAAa,gBAOtDA,GAAY,CAACA,EAAS,yBAA2BA,EAAS,iBAE5D,KAAK,QAAQ,wBAA0BA,EAAS,gBAGlD,KAAK,kBAAoBmO,KACrB,KAAK,QAAQ,gBACfM,KAEE,KAAK,QAAQ,aAAa,oBAC5BE,IAEH,CAKA,UAAUnnB,EAAGkM,EAAe,CAC3B,KAAK,eAAiBA,EAEtB,KAAM,CACJ,uBAAwB2e,EACxB,iCAAAL,EACA,2BAAAD,EACA,2BAAAO,EACA,WAAA5B,EACA,SAAAC,EACA,wBAAAC,EACA,2BAAAE,EACA,aAAAyB,CACN,EAAQ,KAAK,QAETF,EACGtiB,GAAY,CACX,MAAM0B,EAAc,KAAK,wBAAwB1B,CAAO,EAExD,YAAK,QAAQ,aAAa,yBACxB,KAAK,QAAQ,aAAa,wBAAwB0B,EAAa1B,EAAS2D,CAAa,EAEhFjC,CACR,EACDsgB,EACAC,CACN,EAEQM,GACF5H,KAGE6H,EAAa,oBACf,KAAK,6BAA4B,EAGnC9B,GAA2B,CACzB,WAAAC,EACA,SAAAC,EACA,wBAAAC,EACA,2BAAAE,CACN,CAAK,CACF,CAGA,wBAAwB/gB,EAAS,CAChC,GAAI,CAAC,KAAK,eAAgB,EACvB,OAAO,iBAAqB,KAAe,mBAC1CrV,EAAO,KAAK,4BAA4BqV,EAAQ,EAAE,iDAAiD,EACrG,MACD,CAED,KAAM,CAAE,eAAAyiB,EAAgB,YAAAva,EAAa,aAAAC,EAAc,kBAAAE,CAAmB,EAAG,KAAK,QAExEqa,EAAwB1iB,EAAQ,KAAO,WAEvC2iB,EAA0BD,EAAwBE,GAAe,cAAc,EAAI,KACnFC,EAAsBH,EAAwBE,GAAe,SAAS,EAAI,KAE1EE,EAAkBH,EAA0BloB,GAAuBkoB,CAAuB,EAAI,OAC9FzlB,EAAyB2lB,EAC3BjkB,GAAsCikB,CAAmB,EACzD,OAEEE,EAAkB,CACtB,GAAG/iB,EACH,GAAG8iB,EACH,SAAU,CACR,GAAG9iB,EAAQ,SACX,uBAAwB8iB,GAAmB,CAAC5lB,EAAyB,CAAE,EAAGA,CAC3E,EACD,QAAS,EACf,EAEU8lB,EAAkB,OAAOP,GAAmB,WAAaA,EAAeM,CAAe,EAAIA,EAI3FE,EAAeD,IAAoB,OAAY,CAAE,GAAGD,EAAiB,QAAS,EAAO,EAAGC,EAG9FC,EAAa,SACXA,EAAa,OAASF,EAAgB,KAClC,CAAE,GAAGE,EAAa,SAAU,OAAQ,QAAU,EAC9CA,EAAa,SAEnB,KAAK,iBAAmBA,EAAa,KACrC,KAAK,mBAAqBA,EAAa,UAAYA,EAAa,SAAS,OAErEA,EAAa,UAAY,KAC1B,OAAO,iBAAqB,KAAe,mBAC1Ct4B,EAAO,IAAI,2BAA2Bs4B,EAAa,EAAE,yCAAyC,GAGjG,OAAO,iBAAqB,KAAe,mBAAqBt4B,EAAO,IAAI,sBAAsBs4B,EAAa,EAAE,uBAAuB,EAExI,MAAM1f,EAAM,KAAK,iBACX,CAAE,SAAA2f,CAAU,EAAGx8B,GAEfy8B,EAAkBlb,GACtB1E,EACA0f,EACA/a,EACAC,EACA,GACA,CAAE,SAAA+a,CAAU,EACZ7a,CACN,EACI,OAAA8a,EAAgB,6BAA6BzhB,GAAe,CAC1D,KAAK,kBAAiB,EACtBmd,GAAsBnd,CAAW,CACvC,CAAK,EAEMyhB,CACR,CAGA,8BAA+B,CAC9B,IAAIC,EACJ,MAAMC,EAAiC,IAAM,CAC3C,KAAM,CAAE,YAAAnb,EAAa,aAAAC,EAAc,kBAAAE,CAAiB,EAAK,KAAK,QACxDib,EAAK,kBAELC,EAAqBtf,KAC3B,GAAIsf,GAAsBA,EAAmB,IAAM,CAAC,aAAc,UAAU,EAAE,SAASA,EAAmB,EAAE,EAAG,EAC5G,OAAO,iBAAqB,KAAe,mBAC1C54B,EAAO,KACL,4BAA4B24B,CAAE,2EAC1C,EACQ,MACD,CAQD,GANIF,IACFA,EAA+B,gBAAgB,wBAAwB,EACvEA,EAA+B,OAAM,EACrCA,EAAiC,QAG/B,CAAC,KAAK,eAAgB,EACvB,OAAO,iBAAqB,KAAe,mBAAqBz4B,EAAO,KAAK,4BAA4B24B,CAAE,iDAAiD,EAC5J,MACD,CAED,GAAI,CAAC,KAAK,iBAAkB,EACzB,OAAO,iBAAqB,KAAe,mBAC1C34B,EAAO,KAAK,4BAA4B24B,CAAE,mDAAmD,EAC/F,MACD,CAED,MAAM/f,EAAM,KAAK,iBACX,CAAE,SAAA2f,CAAU,EAAGx8B,GAEfsZ,EAAU,CACd,KAAM,KAAK,iBACX,GAAAsjB,EACA,QAAS,GACT,SAAU,CACR,OAAQ,KAAK,oBAAsB,KACpC,CACT,EAEMF,EAAiCnb,GAC/B1E,EACAvD,EACAkI,EACAC,EACA,GACA,CAAE,SAAA+a,CAAU,EACZ7a,CACR,CACA,EAEI,CAAC,OAAO,EAAE,QAAQnY,GAAQ,CACxB,iBAAiBA,EAAMmzB,EAAgC,CAAE,KAAM,GAAO,QAAS,EAAI,CAAE,CAC3F,CAAK,CACF,CACH,CAGA,SAAST,GAAeY,EAAU,CAIhC,MAAMC,EAAUr7B,GAAc,aAAao7B,CAAQ,GAAG,EAEtD,OAAOC,EAAUA,EAAQ,aAAa,SAAS,EAAI,IACrD,CCnQA,SAASpJ,GAAKvzB,EAAS,CACrBA,EAAQ,UAAYA,EAAQ,WAAa,GACzCA,EAAQ,UAAU,IAAMA,EAAQ,UAAU,KAAO,CAC/C,KAAM,0BACN,SAAU,CACR,CACE,KAAM,oBACN,QAAS8oB,EACV,CACF,EACD,QAASA,EACb,EACE8T,GAAO58B,CAAO,CAChB,CCXA,SAAS68B,GAAiB7mB,EAAS,CACjC,MAAM8mB,EAAQ9mB,EAAQ,MAAM,UAAU,EACtC,OAAO8mB,IAAU,MAAQ,SAASA,EAAM,CAAC,CAAC,GAAK,EACjD,CAIA,MAAMC,GAAgB,CACpB,eAAgB,KAChB,MAAO,KACP,QAAS,IACX,EAEA,SAASC,GAASxyB,EAAOyyB,EAAO,CAC9B,MAAMC,EAAa,IAAI,QAEvB,SAASC,EAAQ3yB,EAAOyyB,EAAO,CAG7B,GAAI,CAAAC,EAAW,IAAI1yB,CAAK,EAGxB,IAAIA,EAAM,MACR,OAAA0yB,EAAW,IAAI1yB,EAAO,EAAI,EACnB2yB,EAAQ3yB,EAAM,MAAOyyB,CAAK,EAEnCzyB,EAAM,MAAQyyB,EACf,CAEDE,EAAQ3yB,EAAOyyB,CAAK,CACtB,CAQA,MAAMG,WAAsBC,WAAgB,CACzC,QAAS,CAAC,KAAK,MAAQN,EAAc,CAEpC,SAAU,CAAC,KAAK,0BAA4B,EAAK,CAElD,YAAYO,EAAO,CAClB,MAAMA,CAAK,EAAEF,GAAc,UAAU,OAAO,KAAK,IAAI,EAAEA,GAAc,UAAU,QAAQ,KAAK,IAAI,EAAEA,GAAc,UAAU,QAAQ,KAAK,IAAI,EAC3I,MAAM5hB,EAASqB,KAAgB,YAC3BrB,GAAUA,EAAO,IAAM8hB,EAAM,aAC/B,KAAK,0BAA4B,GACjC9hB,EAAO,GAAG,iBAAkBpP,GAAS,CAC/B,CAACA,EAAM,MAAQA,EAAM,WAAa,KAAK,cACzCqnB,GAAiB,CAAE,GAAG6J,EAAM,cAAe,QAAS,KAAK,YAAY,CAAE,CAEjF,CAAO,EAEJ,CAEA,kBAAkB9yB,EAAO,CAAE,eAAA+yB,GAAkB,CAC5C,KAAM,CAAE,cAAAC,EAAe,QAAAC,EAAS,WAAAC,EAAY,cAAApb,CAAe,EAAG,KAAK,MACnET,GAAUjI,GAAS,CASjB,GAAIijB,GAAiBc,EAAa,UAAK1/B,GAAQuM,CAAK,EAAG,CACrD,MAAMozB,EAAqB,IAAI,MAAMpzB,EAAM,OAAO,EAClDozB,EAAmB,KAAO,uBAAuBA,EAAmB,IAAI,GACxEA,EAAmB,MAAQL,EAG3BP,GAASxyB,EAAOozB,CAAkB,CACnC,CAEGJ,GACFA,EAAc5jB,EAAOpP,EAAO+yB,CAAc,EAE5C,MAAM3vB,EAAU6T,GAAiBjX,EAAO,CAAE,SAAU,CAAE,MAAO,CAAE,eAAA+yB,EAAkB,EAAE,EAC/EE,GACFA,EAAQjzB,EAAO+yB,EAAgB3vB,CAAO,EAEpC8vB,IACF,KAAK,aAAe9vB,EAChB,KAAK,2BACP6lB,GAAiB,CAAE,GAAGnR,EAAe,QAAA1U,CAAS,IAMlD,KAAK,SAAS,CAAE,MAAApD,EAAO,eAAA+yB,EAAgB,QAAA3vB,CAAS,EACtD,CAAK,CACF,CAEA,mBAAoB,CACnB,KAAM,CAAE,QAAAiwB,CAAO,EAAK,KAAK,MACrBA,GACFA,GAEH,CAEA,sBAAuB,CACtB,KAAM,CAAE,MAAArzB,EAAO,eAAA+yB,EAAgB,QAAA3vB,CAAO,EAAK,KAAK,MAC1C,CAAE,UAAAkwB,CAAS,EAAK,KAAK,MACvBA,GACFA,EAAUtzB,EAAO+yB,EAAgB3vB,CAAO,CAE3C,CAEA,SAAU,CAAC,KAAK,mBAAqB,IAAM,CAC1C,KAAM,CAAE,QAAAmwB,CAAO,EAAK,KAAK,MACnB,CAAE,MAAAvzB,EAAO,eAAA+yB,EAAgB,QAAA3vB,CAAO,EAAK,KAAK,MAC5CmwB,GACFA,EAAQvzB,EAAO+yB,EAAgB3vB,CAAO,EAExC,KAAK,SAASmvB,EAAa,CAC/B,CAAI,CAED,QAAS,CACR,KAAM,CAAE,SAAAiB,EAAU,SAAAC,GAAa,KAAK,MAC9B9sB,EAAQ,KAAK,MAEnB,GAAIA,EAAM,MAAO,CACf,IAAI+sB,EAYJ,OAXI,OAAOF,GAAa,WACtBE,EAAUF,EAAS,CACjB,MAAO7sB,EAAM,MACb,eAAgBA,EAAM,eACtB,WAAY,KAAK,mBACjB,QAASA,EAAM,OACzB,CAAS,EAED+sB,EAAUF,EAGRG,iBAAqBD,CAAO,EACvBA,GAGLF,IACD,OAAO,iBAAqB,KAAe,mBAAqBn6B,EAAO,KAAK,+CAA+C,EAIvH,KACR,CAED,OAAI,OAAOo6B,GAAa,WACdA,EAAQ,EAEXA,CACR,CACH,CChJA,MAAMG,GAAc,CAClB,0BAA2B,iBAC7B,EAEA,SAASC,GACPC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,MAAO,CACLzD,EACAC,EAA6B,GAC7BC,EAAmC,KAChC,CACH,MAAMwD,EAAe/+B,IAAUA,GAAO,UAAYA,GAAO,SAAS,SAC9Ds7B,GAA8ByD,GACZ1D,EAAuB,CACzC,KAAM0D,EACN,GAAI,WACJ,KAAMP,GACN,SAAU,CACR,OAAQ,KACT,CACT,CAAO,CAWP,CACA,WClDSQ,GAET,SAAQC,IAAA,CACP,GAAID,GAAO,OAAApjB,GACXojB,GAAoB,EAGpB,IAAIE,OAEFtjB,UAAK,WAAAsjB,EAAA,WACLtjB,GAAE,YAAAsjB,EAAA,2BCVDC,GAA+D,UAAW,CAC5E,OAAO,IACT,ECUO,MAAMC,GAAWC,GAAyB,CAChD9tB,MAAO,UACP+tB,OAAQ,GACRC,SAAU,GACVC,cAAe,KACfC,QAAS,CACRhf,GAAI,GACJif,UAAW,GACXtpB,QAAS,GACTupB,OAAQ,EACT,EACAC,KAAM,CACLC,QAAS,CAAE,EACXC,QAAS,CAAC,EACVC,aAAc,CAAC,EACfC,MAAO,CAAE,EACTC,SAAU,CAAC,EACX7/B,QAAS,CAAC,EACV8/B,aAAc,CAAE,CACjB,EACAC,kBAAmB,CAAC,CACrB,CAAG,ECjCUC,GAAcf,GAAsB,EAAiB,ECKrDgB,GAAoBhB,GAAkC,CAClEiB,KAAM,KACNC,WAAY,KACZC,SAAU,KACVC,WAAY,IACb,CAAG,ECHUC,GAAkBrB,GAAgC,CAC9DsB,SAAU,KACVL,KAAM,KACNM,aAAc,KACdC,WAAY,IACb,CAAG,ECPUC,GAAkD,CAAC,CAAEzC,cAAU,CAErE0C,QADSC,EAAY,IAAMZ,GAAYa,IAAG,GACrBC,KAAKC,sBAE1B,CAAEC,UAAWC,KAEnB,SACEC,IACAC,WAAY,CACXC,UAAW,CACVC,aAAcL,EAAOM,MAAM,CAAE,CAC9B,EACAC,SAAU,CACTC,KAAM,CACLC,gBAAiB,OACjBC,UAAW,uCACXC,YAAaX,EAAOY,KAAK,CAAE,CAC5B,EACAC,QAAS,CACRC,YAAa,GACbC,aAAc,MACdL,UAAW,sCACZ,EACAM,eAAgB,CACfC,QAAS,MACV,EACAC,eAAgB,CACfC,QAAS,gBACT,UAAW,CACVT,UAAW,+CACZ,CACD,EACAU,kBAAmB,CAClBD,QAAS,gBACTE,WAAYrB,EAAOM,MAAM,GAAK,cAC9BI,UAAW,uCACXY,cAAe,YACfC,SAAU,OACVC,WAAY,OACZ,QAAS,CACRP,QAAS,MACV,EACA,WAAY,CACXA,QAAS,MACV,EACA,UAAW,CACVR,gBAAiBT,EAAOM,MAAM,GAAK,aACpC,CACD,CACD,CACD,EACAmB,eAAgB9B,EAEf1C,YAGJ,ECvDayE,GAAoDC,GAAS,CAAC,CAAE1E,cAAU,CACtF,MAAM9sB,EAAQyxB,GAA8B,CAAEnpB,OAAQ,UAAU,EAE1DopB,EAAcC,GAAS,CAC5BC,SAAU,CAAC,QAAS,EACpBC,QAAS,IACDC,MAAM,gBAAgBC,KAAKvsB,IAAO,KAAEwsB,KAAMC,IAChD,GAAIA,EAAI3pB,SAAW,IAAW,UAAI4pB,MAAM,oBACxC,OAAOD,EAAIE,MAAI,CAChB,CACD,CACD,EAEAhF,mBAAU,KACT,OAAQuE,EAAYppB,OAAM,CACzB,IAAK,UAAW,CACf,MAAM8pB,EAASV,EAAY/4B,KAC3B,GAAI,CAACy5B,EAAQ,CACZpyB,EAAMqyB,IAAI,CAAE/pB,OAAQ,QAAShY,QAAS,qBAAqB,EAC3D,MACD,CACAgiC,GAAM,KACLtyB,EAAMqyB,IAAI,CAAE/pB,OAAQ,QAAQ,EAC5BumB,GAAY0D,OAAOH,GACpB,EACA,KACD,CACA,IAAK,QAAS,CACb,MAAM/4B,EAAQq4B,EAAYr4B,MACpB/I,EAAU+I,aAAiB64B,MAAQ74B,EAAM/I,QAAU,gBACzD0P,EAAMqyB,IAAI,CAAE/pB,OAAQ,QAAShY,UAAQ,EACrC,KACD,CACD,GACE,CAACohC,EAAY/4B,KAAM+4B,EAAYr4B,MAAOq4B,EAAYppB,OAAQtI,EAAM,IAGjEwyB,IAAOt/B,MAAO8M,EAAMsI,OACnB,UACAmqB,MAAO,IAAM3F,EACbzzB,MAAO,WAAMq5B,SAACC,iBAAI,WAAQ3yB,IAAM1P,UAAN0P,cAAe0vB,UACzCkD,QAAS,IAAOC,QACjB,GAGH,CAAG,mPCpDCC,GAEJ,SAASC,IAAiB,CACzB,OAAID,KACJA,GAAoB,EACnB,SAAUE,EAAS,CAInB,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5DA,EAAQ,cAAgBA,EAAQ,UAAY,OAO5C,IAAIC,GACH,SAAUA,EAAW,CAMlBA,EAAU,iBAAsB,oBAMhCA,EAAU,qBAA0B,wBAMpCA,EAAU,eAAoB,mBAK9BA,EAAU,iBAAsB,oBAKhCA,EAAU,YAAiB,eACjC,GAAKA,EAAYD,EAAQ,YAAcA,EAAQ,UAAY,CAAE,EAAC,EAE5DA,EAAQ,cAAgB,IAAI,IAAI,CAC5B,CAACC,EAAU,iBAAkB,6CAA6C,EAC1E,CACIA,EAAU,qBACV,iDACH,EACD,CACIA,EAAU,eACV,wEACH,EACD,CACIA,EAAU,iBACV,uHAEH,EACD,CAACA,EAAU,YAAa,4CAA4C,CAC1E,CAAG,CACD,EAAEC,EAAM,GACFA,EACR,CCnEA,IAAIC,GAEJ,SAASC,IAAe,CACvB,OAAID,KACJA,GAAkB,EACjB,SAAUH,EAAS,CAEnB,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5DA,EAAQ,MAAQA,EAAQ,cAAgBA,EAAQ,UAAY,OAC5D,MAAMK,EAAWC,KACjB,OAAO,eAAeN,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOK,EAAS,SAAU,CAAI,GACjH,OAAO,eAAeL,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOK,EAAS,aAAc,CAAI,GASzH,SAASE,EAAcC,EAAK,CAExB,MADuB,CAACA,EAAI,MAAM,YAAY,EACtB,SAASA,EAAK,EAAE,EAAI,GAC/C,CAYD,SAASC,EAAoBD,EAAKE,EAAWC,EAAgB,CACzD,MAAMC,EAAYL,EAAcC,CAAG,EACnC,GAAI,OAAO,MAAMI,CAAS,GACrBD,IAAmB,QAAaA,IAAmBH,EAAI,OACxD,MAAM,IAAI,YAAYH,EAAS,cAAc,IAAIK,CAAS,CAAC,EAE/D,OAAOE,CACV,CASD,SAASC,EAAqBC,EAAM,CAChC,MAAMC,EAAaN,EAAoBK,EAAMT,EAAS,UAAU,qBAAsB,CAAC,EACvF,OAAO,OAAO,aAAaU,CAAU,CACxC,CAWD,SAASC,EAAiBF,EAAMG,EAAe,CAC3C,MAAMF,EAAaN,EAAoBK,EAAMT,EAAS,UAAU,iBAAkB,CAAC,EACnF,GAAIY,IAAkB,OAAW,CAC7B,MAAMC,EAAsBT,EAAoBQ,EAAeZ,EAAS,UAAU,iBAAkB,CAAC,EACrG,OAAO,OAAO,aAAaU,EAAYG,CAAmB,CAC7D,CACD,OAAO,OAAO,aAAaH,CAAU,CACxC,CAMD,SAASI,EAAcC,EAAM,CACzB,OAAOA,EAAK,OAAO,CAAC,IAAM,KAAOA,EAAK,OAAOA,EAAK,OAAS,CAAC,IAAM,GACrE,CASD,SAASC,EAA0BC,EAAW,CAC1C,GAAI,CAACH,EAAcG,CAAS,EACxB,MAAM,IAAI,YAAYjB,EAAS,cAAc,IAAIA,EAAS,UAAU,gBAAgB,CAAC,EAEzF,MAAMkB,EAAgBD,EAAU,MAAM,EAAG,EAAE,EACrCP,EAAaN,EAAoBc,EAAelB,EAAS,UAAU,gBAAgB,EACzF,GAAI,CACA,OAAO,OAAO,cAAcU,CAAU,CACzC,OACMv8B,EAAK,CACR,MAAMA,aAAe,WACf,IAAI,YAAY67B,EAAS,cAAc,IAAIA,EAAS,UAAU,cAAc,CAAC,EAC7E77B,CACT,CACJ,CAGD,SAASg9B,EAAeV,EAAMz6B,EAAQ,GAAO,CACzC,GAAIA,EACA,MAAM,IAAI,YAAYg6B,EAAS,cAAc,IAAIA,EAAS,UAAU,gBAAgB,CAAC,EAIzF,MAAMU,EAAa,SAASD,EAAM,CAAC,EACnC,OAAO,OAAO,aAAaC,CAAU,CACxC,CAKD,MAAMU,EAAyB,IAAI,IAAI,CACnC,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK;AAAA,CAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,CAChB,CAAG,EAMD,SAASC,EAAyBZ,EAAM,CACpC,OAAOW,EAAuB,IAAIX,CAAI,GAAKA,CAC9C,CAiBD,MAAMa,EAAc,yHAUpB,SAASC,EAAMC,EAAKC,EAAc,GAAO,CACrC,OAAOD,EAAI,QAAQF,EAAa,SAAUn1B,EAAGu1B,EAAWvB,EAAKc,EAAWU,EAAsBC,EAAWC,EAASC,EAAOC,EAAiB,CAGtI,GAAIL,IAAc,OACd,MAAO,KAEX,GAAIvB,IAAQ,OACR,OAAOK,EAAqBL,CAAG,EAEnC,GAAIc,IAAc,OACd,OAAOD,EAA0BC,CAAS,EAE9C,GAAIU,IAAyB,OACzB,OAAOhB,EAAiBgB,EAAsBC,CAAS,EAE3D,GAAIC,IAAY,OACZ,OAAOlB,EAAiBkB,CAAO,EAEnC,GAAIC,IAAU,IACV,MAAO,KAEX,GAAIA,IAAU,OACV,OAAOX,EAAeW,EAAO,CAACL,CAAW,EAE7C,GAAIM,IAAoB,OACpB,OAAOV,EAAyBU,CAAe,EAEnD,MAAM,IAAI,YAAY/B,EAAS,cAAc,IAAIA,EAAS,UAAU,WAAW,CAAC,CAC1F,CAAO,CACJ,CACDL,EAAQ,MAAQ4B,EAChB5B,EAAQ,QAAU4B,CAClB,EAAEphB,EAAI,GACAA,EACR,aCtMA,MAAMlmB,GAAYqgB,GAAM,OAAOA,GAAM,SAC/B0nB,GAAcC,GAAM,OAAOA,GAAM,WAEjCC,GAAwB,IAAI,IAC5BtH,GAAgB,KACtB,SAASuH,GAAiBlH,EAAS,CAEjC,MAAO,CAAC,GADI,MAAM,QAAQA,CAAO,EAAIA,EAAU,CAACA,CAAO,EACvCL,EAAa,CAC/B,CACA,SAASwH,GAAKnH,EAASp7B,EAAOwiC,EAAQ,CACpC,MAAMC,EAAWH,GAAiBlH,CAAO,EAKzC,OAJkBsH,GAChB,IAAMC,GAAS,OAAQF,EAAUD,CAAM,EACvC,IAAM,IAAI,KAAK,eAAeC,EAAUD,CAAM,CAClD,EACmB,OAAOpoC,GAAS4F,CAAK,EAAI,IAAI,KAAKA,CAAK,EAAIA,CAAK,CACnE,CACA,SAAS4iC,GAAOxH,EAASp7B,EAAOwiC,EAAQ,CACtC,MAAMC,EAAWH,GAAiBlH,CAAO,EAKzC,OAJkBsH,GAChB,IAAMC,GAAS,SAAUF,EAAUD,CAAM,EACzC,IAAM,IAAI,KAAK,aAAaC,EAAUD,CAAM,CAChD,EACmB,OAAOxiC,CAAK,CAC/B,CACA,SAAS6iC,GAAOzH,EAAS0H,EAAS9iC,EAAO,CAAE,OAAAoR,EAAS,EAAG,GAAG2xB,GAAS,CACjE,MAAMN,EAAWH,GAAiBlH,CAAO,EACnC4H,EAAUF,EAAUJ,GACxB,IAAMC,GAAS,iBAAkBF,CAAQ,EACzC,IAAM,IAAI,KAAK,YAAYA,EAAU,CAAE,KAAM,UAAW,CAC5D,EAAMC,GACF,IAAMC,GAAS,kBAAmBF,CAAQ,EAC1C,IAAM,IAAI,KAAK,YAAYA,EAAU,CAAE,KAAM,WAAY,CAC7D,EACE,OAAOM,EAAM/iC,CAAK,GAAK+iC,EAAMC,EAAQ,OAAOhjC,EAAQoR,CAAM,CAAC,GAAK2xB,EAAM,KACxE,CACA,SAASL,GAAYO,EAAQC,EAAW,CACtC,MAAMzmC,EAAMwmC,IACZ,IAAIE,EAAYd,GAAM,IAAI5lC,CAAG,EAC7B,OAAK0mC,IACHA,EAAYD,EAAS,EACrBb,GAAM,IAAI5lC,EAAK0mC,CAAS,GAEnBA,CACT,CACA,SAASR,GAAS59B,EAAMq2B,EAASz/B,EAAS,CACxC,MAAMynC,EAAYhI,EAAQ,KAAK,GAAG,EAClC,MAAO,GAAGr2B,CAAI,IAAIq+B,CAAS,IAAI,KAAK,UAAUznC,CAAO,CAAC,EACxD,CAUA,MAAM0nC,GAAgB,sCAChBC,GAAgB,0BAChBC,GAAoB,CAACC,EAAQC,EAAeC,EAAU,KAAO,CACjE,MAAMtI,EAAUqI,GAAiBD,EAC3BG,EAASnB,GACN,OAAOA,GAAW,SAAWA,EAASkB,EAAQlB,CAAM,GAAK,CAAE,MAAOA,GAErEoB,EAAoB,CAAC5jC,EAAO5C,IAAY,CAC5C,MAAMymC,EAAe,OAAO,KAAKH,CAAO,EAAE,OAASC,EAAM,QAAQ,EAAI,OAC/DG,EAAWlB,GAAOxH,EAASp7B,EAAO6jC,CAAY,EACpD,OAAOzmC,EAAQ,QAAQ,IAAI,OAAOkmC,GAAe,GAAG,EAAGQ,CAAQ,CACnE,EACE,MAAO,CACL,OAAQ,CAAC9jC,EAAO+jC,IAAU,CACxB,KAAM,CAAE,OAAA3yB,EAAS,CAAG,EAAG2yB,EACjB3mC,EAAUylC,GAAOzH,EAAS,GAAOp7B,EAAO+jC,CAAK,EACnD,OAAOH,EAAkB5jC,EAAQoR,EAAQhU,CAAO,CACjD,EACD,cAAe,CAAC4C,EAAO+jC,IAAU,CAC/B,KAAM,CAAE,OAAA3yB,EAAS,CAAG,EAAG2yB,EACjB3mC,EAAUylC,GAAOzH,EAAS,GAAMp7B,EAAO+jC,CAAK,EAClD,OAAOH,EAAkB5jC,EAAQoR,EAAQhU,CAAO,CACjD,EACD,OAAQ4mC,GACR,OAAQ,CAAChkC,EAAOwiC,IAAWI,GAAOxH,EAASp7B,EAAO2jC,EAAMnB,CAAM,CAAC,EAC/D,KAAM,CAACxiC,EAAOwiC,IAAWD,GAAKnH,EAASp7B,EAAO2jC,EAAMnB,CAAM,CAAC,CAC/D,CACA,EACMwB,GAAkB,CAAChkC,EAAO+iC,IAAUA,EAAM/iC,CAAK,GAAK+iC,EAAM,MAChE,SAASkB,GAAYC,EAAaV,EAAQpI,EAAS,CACjD,MAAO,CAAC1xB,EAAS,CAAE,EAAEg6B,IAAY,CAC/B,MAAMS,EAAaZ,GAAkBC,EAAQpI,EAASsI,CAAO,EACvDU,EAAgB,CAACC,EAAQT,EAAoB,KAC5C,MAAM,QAAQS,CAAM,EAElBA,EAAO,OAAO,CAACjnC,EAASknC,IAAU,CACvC,GAAIA,IAAU,KAAOV,EACnB,OAAOxmC,EAAUkmC,GAEnB,GAAIlpC,GAASkqC,CAAK,EAChB,OAAOlnC,EAAUknC,EAEnB,KAAM,CAACnpC,EAAM4J,EAAMy9B,CAAM,EAAI8B,EAC7B,IAAIC,EAAqB,GACrBx/B,IAAS,UAAYA,IAAS,iBAAmBA,IAAS,SAC5D,OAAO,QAAQy9B,CAAM,EAAE,QACrB,CAAC,CAAC/lC,EAAK+nC,CAAM,IAAM,CACjBD,EAAmB9nC,CAAG,EAAI2nC,EACxBI,EACAz/B,IAAS,UAAYA,IAAS,eAC9C,CACa,CACb,EAEUw/B,EAAqB/B,EAEvB,IAAIxiC,EACJ,GAAI+E,EAAM,CACR,MAAMo+B,EAAYgB,EAAWp/B,CAAI,EACjC/E,EAAQmjC,EAAUz5B,EAAOvO,CAAI,EAAGopC,CAAkB,CAC5D,MACUvkC,EAAQ0J,EAAOvO,CAAI,EAErB,OAAI6E,GAAS,KACJ5C,EAEFA,EAAU4C,CAClB,EAAE,EAAE,EAjCIqkC,EAmCLlgC,EAASigC,EAAcF,CAAW,EACxC,OAAI9pC,GAAS+J,CAAM,GAAKk/B,GAAc,KAAKl/B,CAAM,EACxCu9B,SAAMv9B,EAAO,KAAI,CAAE,EAExB/J,GAAS+J,CAAM,EACVA,EAAO,OACTA,EAAS,OAAOA,CAAM,EAAI,EACrC,CACA,CAEA,IAAIsgC,GAAc,OAAO,eACrBC,GAAoB,CAAC3pC,EAAK0B,EAAKuD,IAAUvD,KAAO1B,EAAM0pC,GAAY1pC,EAAK0B,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAuD,CAAO,GAAIjF,EAAI0B,CAAG,EAAIuD,EAC1J2kC,GAAkB,CAAC5pC,EAAK0B,EAAKuD,KAC/B0kC,GAAkB3pC,EAAK,OAAO0B,GAAQ,SAAWA,EAAM,GAAKA,EAAKuD,CAAK,EAC/DA,GAET,MAAM4kC,EAAa,CACjB,aAAc,CACZD,GAAgB,KAAM,UAAW,EAAE,CACpC,CACD,GAAG58B,EAAOM,EAAU,CAClB,IAAIw8B,EACJ,OAACA,EAAK,KAAK,SAAS98B,CAAK,IAAM88B,EAAG98B,CAAK,EAAI,IAC3C,KAAK,QAAQA,CAAK,EAAE,KAAKM,CAAQ,EAC1B,IAAM,KAAK,eAAeN,EAAOM,CAAQ,CACjD,CACD,eAAeN,EAAOM,EAAU,CAC9B,MAAMy8B,EAAiB,KAAK,cAAc/8B,CAAK,EAC/C,GAAI,CAAC+8B,EACH,OACF,MAAMluB,EAAQkuB,EAAe,QAAQz8B,CAAQ,EACzC,CAACuO,GACHkuB,EAAe,OAAOluB,EAAO,CAAC,CACjC,CACD,KAAK7O,KAAUtI,EAAM,CACnB,MAAMqlC,EAAiB,KAAK,cAAc/8B,CAAK,EAC1C+8B,GAELA,EAAe,IAAKz8B,GAAaA,EAAS,MAAM,KAAM5I,CAAI,CAAC,CAC5D,CACD,cAAcsI,EAAO,CACnB,MAAM+8B,EAAiB,KAAK,QAAQ/8B,CAAK,EACzC,OAAO,MAAM,QAAQ+8B,CAAc,EAAIA,EAAiB,EACzD,CACH,CAEA,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACjqC,EAAK0B,EAAKuD,IAAUvD,KAAO1B,EAAMgqC,GAAUhqC,EAAK0B,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAuD,CAAO,GAAIjF,EAAI0B,CAAG,EAAIuD,EACtJilC,GAAgB,CAAClqC,EAAK0B,EAAKuD,KAC7BglC,GAAgBjqC,EAAK,OAAO0B,GAAQ,SAAWA,EAAM,GAAKA,EAAKuD,CAAK,EAC7DA,GAET,MAAMklC,WAAaN,EAAa,CAC9B,YAAYO,EAAQ,CAClB,QACAF,GAAc,KAAM,UAAW,EAAE,EACjCA,GAAc,KAAM,UAAU,EAC9BA,GAAc,KAAM,cAAe,EAAE,EACrCA,GAAc,KAAM,YAAa,EAAE,EACnCA,GAAc,KAAM,UAAU,EAI9BA,GAAc,KAAM,IAAK,KAAK,EAAE,KAAK,IAAI,CAAC,EACtCE,EAAO,SAAW,OACpB,KAAK,SAAWA,EAAO,SACrBA,EAAO,UAAY,MACrB,KAAK,KAAKA,EAAO,QAAQ,EACvBA,EAAO,YAAc,MACvB,KAAK,eAAeA,EAAO,UAAU,GACnC,OAAOA,EAAO,QAAW,UAAYA,EAAO,UAC9C,KAAK,SAASA,EAAO,QAAUpK,GAAeoK,EAAO,OAAO,CAE/D,CACD,IAAI,QAAS,CACX,OAAO,KAAK,OACb,CACD,IAAI,SAAU,CACZ,OAAO,KAAK,QACb,CACD,IAAI,UAAW,CACb,OAAO,KAAK,UAAU,KAAK,OAAO,GAAK,EACxC,CAID,IAAI,YAAa,CACf,OAAO,KAAK,YAAY,KAAK,OAAO,GAAK,EAC1C,CACD,gBAAgB3B,EAAQ4B,EAAY,CAClC,MAAMC,EAAkB,KAAK,YAAY7B,CAAM,EAC1C6B,EAGH,OAAO,OAAOA,EAAiBD,CAAU,EAFzC,KAAK,YAAY5B,CAAM,EAAI4B,CAI9B,CAKD,eAAeE,EAAiBF,EAAY,CACtCA,GAAc,KAChB,KAAK,gBAAgBE,EAAiBF,CAAU,EAEhD,OAAO,KAAKE,CAAe,EAAE,QAC1B9B,GAAW,KAAK,gBAAgBA,EAAQ8B,EAAgB9B,CAAM,CAAC,CACxE,EAEI,KAAK,KAAK,QAAQ,CACnB,CACD,MAAMA,EAAQ+B,EAAU,CACtB,MAAMC,EAAgB,KAAK,UAAUhC,CAAM,EACtCgC,EAGH,OAAO,OAAOA,EAAeD,CAAQ,EAFrC,KAAK,UAAU/B,CAAM,EAAI+B,CAI5B,CACD,KAAKE,EAAkBF,EAAU,CAC3B,OAAOE,GAAoB,UAAY,OAAOF,GAAa,SAC7D,KAAK,MAAME,EAAkBF,CAAQ,EAErC,OAAO,QAAQE,CAAgB,EAAE,QAC/B,CAAC,CAACjC,EAAQkC,CAAS,IAAM,KAAK,MAAMlC,EAAQkC,CAAS,CAC7D,EAEI,KAAK,KAAK,QAAQ,CACnB,CAID,gBAAgB,CAAE,OAAAlC,EAAQ,QAAApI,EAAS,SAAAmK,CAAQ,EAAI,CAC7C,KAAK,QAAU/B,EACf,KAAK,SAAWpI,GAAW,OAC3B,KAAK,UAAU,KAAK,OAAO,EAAImK,EAC/B,KAAK,KAAK,QAAQ,CACnB,CACD,SAAS/B,EAAQpI,EAAS,CAMxB,KAAK,QAAUoI,EACf,KAAK,SAAWpI,EAChB,KAAK,KAAK,QAAQ,CACnB,CACD,EAAEpf,EAAItS,EAAQ/N,EAAS,CACrB,IAAIyB,EAAUzB,GAAA,YAAAA,EAAS,QAClBqgB,IACHA,EAAK,IAEF5hB,GAAS4hB,CAAE,IACdtS,EAASsS,EAAG,QAAUtS,EACtBtM,EAAU4e,EAAG,QACbA,EAAKA,EAAG,IAEV,MAAM2pB,EAAe,KAAK,SAAS3pB,CAAE,EAC/B4pB,EAAiBD,IAAiB,OAClCE,EAAU,KAAK,SACrB,GAAIA,GAAWD,EACb,OAAOzD,GAAW0D,CAAO,EAAIA,EAAQ,KAAK,QAAS7pB,CAAE,EAAI6pB,EAEvDD,GACF,KAAK,KAAK,UAAW,CAAE,GAAA5pB,EAAI,OAAQ,KAAK,OAAO,CAAE,EAEnD,IAAIkoB,EAAcyB,GAAgBvoC,GAAW4e,EAI7C,OAAI5hB,GAAS8pC,CAAW,GAAKb,GAAc,KAAKa,CAAW,EAClD,KAAK,MAAM,IAAIA,CAAW,GAAG,EAClC9pC,GAAS8pC,CAAW,EACfA,EACFD,GACLC,EACA,KAAK,QACL,KAAK,QACX,EAAMx6B,EAAQ/N,GAAA,YAAAA,EAAS,OAAO,CAC3B,CACD,KAAKqE,EAAOwiC,EAAQ,CAClB,OAAOD,GAAK,KAAK,UAAY,KAAK,QAASviC,EAAOwiC,CAAM,CACzD,CACD,OAAOxiC,EAAOwiC,EAAQ,CACpB,OAAOI,GAAO,KAAK,UAAY,KAAK,QAAS5iC,EAAOwiC,CAAM,CAC3D,CACH,CACA,SAASsD,GAAUX,EAAS,GAAI,CAC9B,OAAO,IAAID,GAAKC,CAAM,CACxB,CAEA,MAAMY,GAAOD,GAAW,EClUXE,GAAuBC,IAGnCC,OAAOC,UAAY,CAAE,GAAGD,OAAOC,UAAW,GAAGF,EAC9C,ECOaG,GAAc,MAAO5C,IACjC,KAAM,CAAE+B,UAAU,EAAG,MAAMc,mQAC3BN,GAAKO,gBAAgB,CAAE9C,SAAQ+B,WAAS,CACzC,EAEMgB,GAAmB,UAEZC,GAAkD,CAAC,CAAE5M,cAAU,CAC3E,MAAMmB,EAAgBwB,EAAY,IAAM5B,GAASI,cAAcyB,KAAG,EAC5D,CAACiK,EAAeC,CAAiB,EAAGC,WAAS,IAwBnD,OAtBA1M,YAAU,KACGc,MAAe+D,KAAK,KAC/B4H,EAAiB,IAClB,EAGA,IAAIE,EAAmBb,GAAKvC,OACRwC,GAAA,CACnBa,6BAA8B,KACzBd,GAAKvC,SAAW+C,IACnBK,EAAmBb,GAAKvC,OACxB4C,GAAYG,KAEZH,GAAYQ,EAEd,EACAE,iBAAmBtD,IAClB4C,GAAY5C,EACb,EACD,CACD,EAAG,CAAE,GAEAiD,IAIGM,IAAmBhB,QAAanM,aAHhCoN,EAACrH,MAIV,EC3CasH,GAAkB,MAAOC,IAC/BC,QAAMC,GAAcC,cAGpBC,EAAO,MAAMH,EACjBI,UAAUL,CACVpI,OAAMC,GAAQA,EAAIE,KAAI,GAIlBuI,EAAcF,EAAKG,gBACvBC,OAAQtS,GAAeA,EAAWuS,QAAQ,EAC1CC,IAAKxS,GACLA,EAAWyS,iBAAiBD,IAAKE,IAAY,CAC5CC,YAAaD,EAAOC,YACpBC,YAAaF,EAAOE,gBAGrBC,OAEIC,EAAqC,MAAMC,QAAQC,IACxDZ,EAAYI,IAAI,MAAOxS,IAGf,CAAE,GADkC,MAD/B,MAAM+R,EAAIkB,UAAUjT,EAAW2S,WAAW,GACD9I,OACjC,GAAG7J,GACxB,GAGM,OAAEkS,OAAMY,UAChB,ECjCaI,GAAsB,MAClCC,EACA/E,KAEY,MAAMgF,GAASnB,YAAcoB,gBAAcF,EAAU/E,IACtDvE,OCLCyJ,GAAiC,MAC7CvD,IAEY,MAAMiC,GAAcC,YAAW,EAAGsB,sBAAsBxD,IACzDlG,OCJC2J,GAAmB,MAC/BzD,IAEY,MAAMiC,GAAcC,YAAW,EAAGwB,YAAY1D,IAC/ClG,OCJC6J,GAA4B,MACxCP,IAEY,MAAMC,GAASnB,YAAW,EAAG0B,WAAWR,IACzCtJ,OCJC+J,GAAuB,MAAOnO,IAC9B,MAAMoO,GAAU5B,YAAW,EAAG6B,UAAUrO,IACzCoE,OCFCkK,GAAoB,MAChCtpC,IAEY,MAAMunC,GAAcC,YAAW,EAAG+B,YAAYvpC,IAC/Co/B,OCJCoK,GAA+B,MAC3ClE,IAEY,MAAMiC,GAAcC,YAAW,EAAGiC,wBAAwBnE,IAC3DlG,OCJCsK,GAA0B,MACtCpE,IAEY,MAAMiC,GAAcC,YAAW,EAAGmC,mBAAmBrE,IAEtDlG,OCDNwK,GAA+B,CACpCC,EACAz8B,EACAk4B,IAEOwE,GAAa,CACnBjL,SAAU,CAAC,mBAAoBgL,EAAMz8B,EAAOk4B,CAAO,EACnDxG,QAAS,IAAMiK,GAAiB,CAAE,GAAGzD,EAAQuE,OAAMz8B,QAAM,EACzD28B,UAAW,EACZ,EAGYC,GAAsB,CAClCH,EACAz8B,EACAk4B,IAEO1G,GAASgL,GAA6BC,EAAMz8B,EAAOk4B,IAG9C2E,GAA+B5C,GACpCyC,GAAa,CACnBjL,SAAU,CAAC,kBAAmBwI,CAAU,EACxCvI,QAAS,IAAMiK,GAAiB,CAAEc,KAAM,EAAGz8B,MAAO,GAAIi6B,YAAU,EAChE0C,UAAW,GAAK,IAChBG,OAAQ,CAAC,CAAEC,WAAUC,gBAAiB,CAAEC,QAASF,EAASp6B,MAAM,CAAE,EAAEq6B,aAAU,CAC/E,EAGYE,GAAsBjD,GAC3BzI,GAASqL,GAA4B5C,IAGvCkD,GAA2B,IACzBT,GAAa,CACnBjL,SAAU,CAAC,cAAe,EAC1BC,QAAS,IAAMiK,GAAiB,CAAEc,KAAM,EAAGz8B,MAAO,GAAG,EACrD28B,UAAW,GAAK,IAChBG,OAAQ,CAAC,CAAEE,YAAWI,mBAAoB,CAAEJ,YAAWI,gBAAa,CACrE,EAGYC,GAAkB,IACvB7L,GAAS2L,MCzCJG,GAAuBrD,GAC5ByC,GAAa,CACnBjL,SAAU,CAAC,WAAYwI,CAAU,EACjCvI,QAAS,IAAMsI,GAAgBC,GAC/B0C,UAAW,GAAK,IACjB,EAGYY,GAActD,GACnBzI,GAAS8L,GAAoBrD,IAGxBuD,GAA2B,KACjC,MAAEhlC,QAAS6kC,KACXD,EAAe5kC,iBAAM4kC,aACrBK,EAAcC,KAEpB,OAAOC,GAAY,CAClBC,WAAY,MAAO,CAClBC,cACAC,wBACAC,4BAMEC,oBAAiBZ,EAAc,wBAErB,MAAMjD,GAAcC,cAAc6D,iBAC7Cb,EACA,UACAS,EACA,CACCK,mBAAoB,CACnB,CAECC,gBAAiB,CAChBC,YAAaN,CACd,EACAO,QAASN,CACV,EACA,CAECI,gBAAiB,CAChBC,YAAa,qBACd,EACAC,QAAS,CAAEC,sBAAuB,UAAW,CAC9C,CACA,EACDC,uBAAwB,CAAE,EAC3B,GAGUvM,QAEZwM,UAAW,UACV,MAAMf,EAAYgB,kBAAkB,CAAEhN,SAAU,CAAC,kBAAmB,EAAC,CACtE,EACD,CACD,EC/DaiN,GAAwBC,IACpC,MAAMC,EAAcD,EAAkBE,OAAO,CAAC76B,EAAKwJ,KAClDxJ,EAAIwJ,EAAEsxB,OAAO,EAAI96B,EAAIwJ,EAAEsxB,OAAO,GAAK,GACnC96B,EAAIwJ,EAAEsxB,OAAO,EAAEtxB,EAAE4wB,WAAW,EAAI,GACzBp6B,GACL,CAAC,GAEJ,OAAO04B,GAAa,CACnBjL,SAAU,CAAC,WAAYmN,CAAY,EACnClN,QAAS,UACI,MAAMyI,GAAcC,YAAW,EAAG2E,aAAaJ,IAChD3M,OAGZ2K,UAAW,EACXqC,OAAQ,EACT,CACD,EAOaC,GAAmB,CAC/BN,EACAjwC,EAA0C,KAEnC8iC,GAAS,CAAE,GAAGkN,GAAqBC,CAAkB,EAAE,GAAGjwC,EAAQ,EC3BnE,SAASwwC,GACfC,EAAyC,CAEzC,MAAMC,EAA4D,GAC5DC,EAAgB/P,EAAY,IAAM5B,GAASe,kBAAkBc,KAAG,EAExD+P,iBAASlB,IAClBiB,EAAcjB,KACHA,KAAeiB,EAAcjB,CAAY,EACxD,CACD,EAEOgB,CACR,CCEO,MAAMG,GAAmB,KAC/B,MAAMrH,EAASsH,KACT1U,EAAWmC,KAEb,IAACiL,EAAO+B,UACL,UAAIlI,MAAM,wBAGjB,MAAM0N,EAAe3U,EAAS4U,OAC5BC,QAAQ,IAAK,EACbtuC,QAAM,KACNwtC,OAAO,CAAC76B,EAAKugB,KACb,KAAM,CAAC/0B,EAAKuD,GAASwxB,EAAMlzB,MAAM,KAC1B,OAAE,GAAG2S,EAAK,CAACxU,GAAMuD,EACzB,EAAG,CAAC,GAEE,OACNknC,UAAW2F,SAAS1H,EAAO+B,UAAW,IACtC4F,eAAgB3H,EAAO2H,eACpB3H,EAAO2H,eAAeC,WAAW,IAAK,GAAKC,gBAC3C,GACHC,aAAcJ,SAAS1H,EAAO8H,cAAgB,IAAK,IACnDC,SAAUL,SAAS1H,EAAO+H,UAAY,IAAK,IAC3CC,SAAUhI,EAAOgI,UAAY,GAC7BC,UAAWjI,EAAOnpB,IAAM,GACxB0wB,eAEF,EC7CaW,GAAqB,KAC3B,MAAEnG,aAAcsF,KAChB,CAAE/mC,QAAS+kC,GAAWtD,GAE5B,GAAI,CAACzhC,EACE,UAAIu5B,MAAM,qBAGVv5B,QACR,ECVa6nC,GAAoC,MAAO,CACvDtF,cACAviC,UACoD,CACxC,MAAM2hC,GAAcC,cAAciG,kCAAkCtF,EAAaviC,EAC9F,ECAa8nC,GAA8B,MAAO,CACjDrG,YACAsG,UAEY,MAAMpG,GAAcC,YAAcoG,sBAAoBvG,EAAWsG,IAClEE,GCLCC,GAA6B,MAAO,CAChDzG,YACA0G,eAEY,MAAMxG,GAAcC,YAAcwG,gBAAc3G,EAAW0G,IAC5DF,GCVCI,GAAwC,MAAO,CAC3D9F,cACA+F,UACAC,aACqD,CACrD,MAAM5G,GAAcC,cAAc4G,mCAAmCjG,EAAa+F,EAAS,CAC1FC,UACD,CACD,ECRaE,GAAwB,MACpCruC,GAGY,MADAunC,GAAcC,cACJ8G,cAActuC,CAAOi/B,OAAMsP,GAAMA,EAAEnP,KAAI,GCgBjDoP,GAAiB,CAACC,EAAwB3yC,KAChD,MAAE2rC,QAAS+F,KAEXvgC,EAAQyxB,GAAqB,CAClCgQ,UAAW,CAAC,EACb,EAEMC,EAA8BlH,EAAKmH,aACvC/G,OAAQjtB,GACD6zB,EAAaI,SAASj0B,EAAEk0B,gBAAgBtD,WAAW,CAC3D,EACCzD,IAAKntB,IAAO,CAAE,GAAGA,EAAEk0B,gBAAiBC,WAAYn0B,EAAEo0B,UAAW,IAEzDC,EAAgB5C,GAAiBsC,GAEvCvU,YAAU,KACT,GAAI6U,EAAcrpC,KAAM,CACvB,MAAMspC,EAA6B,CAClCrlC,OAAQ,CAAC,EACT6kC,UAAW,CAAC,GAEFS,eAAeF,EAAcrpC,KAAM,CAC7C,KAAM,CAAEwpC,OAAM3D,WAAY0D,EAAYE,UAChC7D,EAAc4D,EAAKN,gBAAgBtD,YAC/B3hC,SAAO2hC,GAAeC,EAChCyD,EAAUR,UAAUlD,GAAe4D,EAAKE,SAAS5G,QAClD,CACAz7B,EAAMuyB,OAAO0P,EACd,GACE,CAACD,EAAcrpC,KAAMqH,EAAM,EAE9B,MAAM49B,EAAcC,KACdyE,EAA8B,MAAO,CAAE1lC,SAAQ2lC,+BAA2B,CAC/E,MAAMz+B,EAA6C,GACnD,UAAW0+B,KAAed,EACrBc,EAAYV,aAAe,QAG/Bh+B,EAAQ2+B,KAAK,CACZnE,gBAAiBkE,EACjBhE,QAAS5hC,EAAO4lC,EAAYjE,WAAW,EACvCmE,iBAAkBH,EAA0BC,EAAYjE,WAAW,EACnE9C,SAAU,CACT,GAAGkH,GACHlH,SAAUz7B,EAAMyhC,UAAUmB,OAAOJ,EAAYjE,WAAW,CACzD,EACD,EAGKtM,QAAM,MAAMmP,GAAsBt9B,GAGxC,UAAWo+B,KAAejQ,EAAK,CAC9B,KAAM,CAAE4P,kBAAiBQ,YAAaH,EAAYE,UAAUD,KACtD5D,EAAcsD,EAAgBtD,YAC9BkD,YAAUpP,IAAKzkB,IAAU,CAAE,GAAGA,EAAM,CAAC2wB,GAAc8D,EAAS5G,QAAS,GAC5E,CAEAoH,EAAWC,QAAQ,iCACnB,MAAMlF,EAAYmF,eAAe/F,GAA4BxC,EAAKU,WAAW,GAC7E,MAAM0C,EAAYmF,eAAetF,GAAoBjD,EAAKU,WAAW,GACrE,MAAM0C,EAAYmF,eAAelE,GAAqB6C,IACtD7yC,EAAQ8vC,UAAS,GAGZqE,EAAU3D,GAAqBmC,GAE9B,OAAExhC,QAAOgjC,UAAStB,eAAcY,eACxC,ECrFaW,GAAgC7I,GACrCyC,GAAa,CACnBjL,SAAU,CAAC,mBAAoBwI,CAAU,EACzCvI,QAAS,UAEI,MADAyI,GAAcC,cACJ2I,gBAAgB9I,IAC3BjI,OAEZ2K,UAAW,GAAK,IACjB,EAGYqG,GAAuB/I,GAC5BzI,GAASsR,GAA6B7I,ICXxCgJ,OAAmBC,IAAsC,CAC9D,CAAC,QAAS,OAAQ,EAClB,CAAC,kBAAmB,iBAAkB,EACtC,CAAC,eAAgB,gBAAiB,EAClC,CAAC,kBAAmB,iBAAkB,EACtC,CAAC,WAAY,UAAW,CACxB,GAIKC,OAAoBD,IAA+B,CACxD,CAAC,YAAa,aAAc,EAC5B,CAAC,WAAY,UAAW,EACxB,CAAC,SAAU,QAAS,EACpB,CAAC,YAAa,WAAY,EAC1B,CAAC,WAAY,UAAW,EACxB,CAAC,SAAU,QAAS,EACpB,CAAC,WAAY,UAAW,CACxB,GAOYE,GAAW,CAACrwC,EAAe0wB,KACvC,KAAM,CAAE4f,OAAO,WAAYC,OAAO,QAAQ,EAAK7f,GAAQ,GAEvD,OAAI6f,IAAS,cACLL,GAAa1T,IAAIx8B,CAAsCA,KAG3DuwC,IAAS,iBACLH,GAAc5T,IAAIx8B,CAA+BA,IAI1D,ECtCawwC,GAAkBC,UAExBryC,SAAQk9B,EADOoV,OAAOnf,QAAQoJ,GAASQ,KAAKG,aAAaoU,MAAI,EACxCiB,KAAK,CAAC,CAACl2B,KAAOA,IAAMg2B,CAAa,IAA9CnV,cAA+C,GAE7D,GAAI,CAACl9B,EACJ,MAAM,IAAI4gC,MAAM,0CAA0CyR,IAAa,EAGjEryC,QACR,ECLawyC,GAAiB,CAC7B,CAAE5wC,MAAK,UAAuB6wC,MAAO,SAAU,EAC/C,CAAE7wC,MAAK,WAAwB6wC,MAAO,UAAW,EACjD,CAAE7wC,MAAK,kBAA+B6wC,MAAO,iBAAkB,EAC/D,CAAE7wC,MAAK,iBAA8B6wC,MAAO,gBAAiB,EAC7D,CAAE7wC,MAAK,gBAA6B6wC,MAAO,eAAgB,EAC3D,CAAE7wC,MAAK,wBAAqC6wC,MAAO,yBAA0B,EAC7E,CAAE7wC,MAAK,uBAAoC6wC,MAAO,wBAAyB,GCFrE,IAAAC,YAAKA,mTAOX,MCZM,MAAMC,GAAiE,CAC7E,CAACD,GAAiBE,yBAAyB,EAAG,qBAC9C,CAACF,GAAiBG,wBAAwB,EAAG,iBAC7C,CAACH,GAAiBI,qBAAqB,EAAG,qBAC1C,CAACJ,GAAiBK,gBAAgB,EAAG,kBACrC,CAACL,GAAiBM,uBAAuB,EAAG,cAC5C,CAACN,GAAiBO,qBAAqB,EAAG,sBAC3C,EAEaC,GAA4E,CACxF,CAACR,GAAiBE,yBAAyB,IAAIO,GAAiB,IAChE,CAACT,GAAiBG,wBAAwB,IAAIM,GAAiB,IAC/D,CAACT,GAAiBI,qBAAqB,IAAIK,GAAyB,IACpE,CAACT,GAAiBK,gBAAgB,IAAII,GAAgB,IACtD,CAACT,GAAiBM,uBAAuB,IAAIG,GAAoB,IACjE,CAACT,GAAiBO,qBAAqB,IAAIE,GAAY,GACxD,ECtBaC,GAAkB,IACvBd,OAAOnf,QAAQwf,IAAcnJ,IAAI,CAAC,CAAC5nC,EAAO6wC,CAAM,KAC/C,CACN7wC,QACA6wC,SAEF,ECJYY,GAAkBh8B,GACb,GAAGA,EAAKi8B,SAAS,IAAIj8B,EAAKk8B,QAAQ,GAAGC,QAEnCn8B,EAAKo8B,SCDZC,GAAiCC,GAChCC,KACDC,qBAAqBvD,SAASqD,GCuC9BG,GAAyB,KAC/B,MAAE5K,QAAS+F,KAEXvgC,EAAQyxB,GAAqB,EAAC,EAG9B4T,EAAkB3B,GAAelJ,EAAKmJ,UAAU,EAChDjC,EAA8BlH,EAAKmH,aACvC/G,OAAQjtB,IACF4wB,QAAc5wB,EAAEk0B,gBAAgBtD,YAO/B+G,MANkB,CACxBD,EACA,sBACA,8BACA,4BAEuBzD,SAASrD,GAClC,EACCzD,IAAKntB,IAAO,CAAE,GAAGA,EAAEk0B,gBAAiBC,WAAYn0B,EAAEo0B,UAAW,IAGzDC,EAAgB5C,GAAiBsC,GAEvCvU,YAAU,KACL6U,EAAcrpC,MACjB4sC,EAAavD,EAAcrpC,IAAI,CAChC,EACE,CAACqpC,EAAcrpC,KAAK,EAEvB,SAAS4sC,EAAa5sC,EAAmC,CACxD,MAAMspC,EAA6B,CAClCrlC,OAAQ,CAAC,EACT6kC,UAAW,CAAC,EACZ+D,mBAAoB,CAAC,GAGtB,UAAWtD,KAAevpC,EAAM,CAC/B,KAAM,CAAEwpC,OAAM3D,UAASkE,oBAAqBR,EAAYE,UAClD7D,EAAc4D,EAAKN,gBAAgBtD,YAC/B3hC,SAAO2hC,GAAeC,EAChCyD,EAAUR,UAAUlD,GAAe4D,EAAKE,SAAS5G,SACvC+J,qBAAmBjH,GAAemE,CAC7C,CAEA1iC,EAAMuyB,OAAO0P,EACd,CAEA,MAAMrE,EAAcC,KAEd4H,EAAkB7oC,oBACvB,MAAMkH,EAA6C,GACnD,UAAW0+B,KAAed,EACrBc,EAAYV,aAAe,QAI/Bh+B,EAAQ2+B,KAAK,CACZnE,gBAAiBkE,EACjBhE,QAAS,CACR,IAAGx+B,OAAMpD,SAANoD,cAAc0vB,QAAd1vB,cAAsBwiC,EAAYjE,aACrC,GAAG3hC,EAAO4lC,EAAYjE,WAAW,CAClC,EACA9C,SAAU,CACT,GAAGkH,GACHlH,WAAUz7B,OAAMyhC,YAANzhC,cAAiB4iC,SAAjB5iC,cAA0BwiC,EAAYjE,eAAgBoE,GAAYlH,QAC7E,EACAiH,kBAAkB1iC,OAAMwlC,qBAANxlC,cAA0B4iC,SAA1B5iC,cAAmCwiC,EAAYjE,YAAW,CAC7E,EAGD,OAAO6C,GAAsBt9B,IAGxB66B,EAAa1M,IAElB,UAAWiQ,KAAejQ,EAAK,CAC9B,KAAM,CAAE4P,kBAAiBQ,YAAaH,EAAYE,UAAUD,KACtD5D,EAAcsD,EAAgBtD,YAChCv+B,EAAMyhC,WACHA,YAAUpP,IAAKzkB,IAAU,CAAE,GAAGA,EAAM,CAAC2wB,GAAc8D,EAAS5G,QAAS,GAE7E,CAEAoH,EAAWC,QAAQ,iCACnBlF,EAAYmF,eAAe/F,GAA4BxC,EAAKU,WAAW,GACvE0C,EAAYmF,eAAetF,GAAoBjD,EAAKU,WAAW,GACnD6H,iBAAelE,GAAqB6C,IAChD9D,EAAYgB,kBAAkBqE,GAA6BzI,EAAKU,WAAW,IAItEoI,EAAgB7T,EACrB,eAAMzvB,iBAAMpD,SAANoD,cAAc0vB,QAAd1vB,cAAqB0lC,sBAArB1lC,cAA0Cy+B,wBAE3CkH,EAAiBlW,EAAY,aAAMzvB,cAAMpD,SAANoD,cAAc0vB,QAAd1vB,cAAqB0lC,oBAAoBE,kBAC5EC,EAAcpW,EAAY,aAAMzvB,cAAMpD,SAANoD,cAAc0vB,QAAd1vB,cAAqB0lC,oBAAoBI,eAEzEC,EAAkBtW,EACvB,eAAMzvB,iBAAMpD,SAANoD,cAAc0vB,QAAd1vB,cAAqBgmC,2BAArBhmC,cAA+CimC,oBAGhDC,EAA0BpI,GAAY,CAC3CC,WAAaoI,GACLV,EAAe,CAAEO,yBAA0B,CAAEC,kBAAmBE,CAAQ,EAAE,EAElFxH,YACD,EAEMyH,EAAoB3W,EACzB,eAAMzvB,iBAAMpD,SAANoD,cAAc0vB,QAAd1vB,cAAqBgmC,2BAArBhmC,cAA+CqmC,uBAGhDC,EAA4BxI,GAAY,CAC7CC,WAAaoI,GACLV,EAAe,CAAEO,yBAA0B,CAAEK,qBAAsBF,CAAQ,EAAE,EAErFxH,YACD,EAEM4H,EAAsBzI,GAAY,CACvCC,WAAY,CAAC,CACZU,wBACAmH,kBACAE,eACAU,gBAEOf,EAAe,CACrBC,oBAAqB,CACpBjH,wBACAmH,kBACAE,eACAU,YACD,EACD,EAED7H,YACD,EAEM8H,EAAkBhX,EACvB,eAAMzvB,iBAAMpD,SAANoD,cAAc0vB,QAAd1vB,cAAqB0mC,8BAArB1mC,cAAkD2mC,oBAUlD,OACN3mC,QACAsjC,gBACAqC,iBACAE,cACAE,kBACAG,0BACAE,oBACAE,4BACA5E,eACA6E,sBACAE,kBACAG,cAnBqB,CACrB,CAAEC,UAAW,kBAAmBC,UAAW,MAAO,EAClD,CAAED,UAAW,eAAgBC,UAAW,MAAO,EAC/C,CAAED,UAAW,oBAAqBC,UAAW,MAAO,EACpD,CAAED,UAAW,uBAAwBC,UAAW,MAAO,EAevDF,CAEF,EC/Ma1B,GAAiB,KACvB,MAAE6B,gBAAiBC,KACvB7I,oBAAiB4I,EAAc,yBAE3B,MAAEp+B,QAASs+B,KACf9I,oBAAiBx1B,EAAM,gCAEnBu+B,QAAgBv+B,EAAKw+B,wBAAwBtD,KAAMlW,GAAMA,EAAEoZ,aAAa73B,KAAO63B,EAAa73B,EAAE,EAClGivB,2BAAiB+I,EAAe,qDAE3B,CACNE,OAAQz+B,EAAKuG,GACb61B,SAAUp8B,EAAKo8B,UAAY,GAC3BH,UAAWj8B,EAAKi8B,WAAa,GAC7BC,SAAUl8B,EAAKk8B,UAAY,GAC3BwC,SAAU1+B,EAAK0+B,SACfC,SAAU3+B,EAAK2+B,SACfnC,qBAAsB+B,EAAcK,eAClCtD,aAEJ,EChBauD,GAA6B7D,IACzC,MAAMjV,EAAWe,EAAY,IAAM5B,GAASQ,KAAKK,SAASgB,KAAG,EACvD+X,EAA2B,GAEjC/Y,SAASiV,CAAW,EAAC+D,oBAAoBjI,QAASnX,YAC1CA,IAAWmb,IAAI,EAAI,CACzBkE,WAAUrf,IAAWmf,SAAXnf,cAAmBqf,WAAYC,GAAEC,SAASvf,EAAWmb,IAAI,EACnE1N,SAAQzN,IAAWmf,SAAXnf,cAAmByN,SAAU6R,GAAEC,SAASvf,EAAWmb,IAAI,EAChE,CACD,EAEOgE,CACR,ECdaK,GAAoB,KAChC,MAAMzZ,EAAOoB,EAAY,IAAM5B,GAASQ,KAAKqB,KAAG,EAEzC,OAACiU,UACPtV,YAAKK,SAASiV,KAAdtV,cAA2B0V,QAAS6D,GAAEC,SAASlE,GACjD,ECXuB,IAAI,YACpB,MAAMoE,GAAU,IAAI,YCcdC,GAAgBC,GAAY,CACrC,MAAMC,EAAS,KAAKD,CAAO,EACrBE,EAAQ,IAAI,WAAWD,EAAO,MAAM,EAC1C,QAASr4C,EAAI,EAAGA,EAAIq4C,EAAO,OAAQr4C,IAC/Bs4C,EAAMt4C,CAAC,EAAIq4C,EAAO,WAAWr4C,CAAC,EAElC,OAAOs4C,CACX,EACaC,GAAUr1C,GAAU,CAC7B,IAAIk1C,EAAUl1C,EACVk1C,aAAmB,aACnBA,EAAUF,GAAQ,OAAOE,CAAO,GAEpCA,EAAUA,EAAQ,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAAE,QAAQ,MAAO,EAAE,EACzE,GAAI,CACA,OAAOD,GAAaC,CAAO,CAC9B,MACU,CACP,MAAM,IAAI,UAAU,mDAAmD,CAC1E,CACL,ECpCO,MAAMI,WAAkB,KAAM,CACjC,WAAW,MAAO,CACd,MAAO,kBACV,CACD,YAAY/3C,EAAS,CACjB,IAAIynC,EACJ,MAAMznC,CAAO,EACb,KAAK,KAAO,mBACZ,KAAK,KAAO,KAAK,YAAY,MAC5BynC,EAAK,MAAM,qBAAuB,MAAQA,IAAO,QAAkBA,EAAG,KAAK,MAAO,KAAM,KAAK,WAAW,CAC5G,CACL,CAqEO,MAAMuQ,WAAmBD,EAAU,CACtC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,KAAO,iBACf,CACD,WAAW,MAAO,CACd,MAAO,iBACV,CACL,CCxFA,SAASE,GAAar1C,EAAO,CACzB,OAAO,OAAOA,GAAU,UAAYA,IAAU,IAClD,CACe,SAASs1C,GAASz1C,EAAO,CACpC,GAAI,CAACw1C,GAAax1C,CAAK,GAAK,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,kBAClE,MAAO,GAEX,GAAI,OAAO,eAAeA,CAAK,IAAM,KACjC,MAAO,GAEX,IAAIiB,EAAQjB,EACZ,KAAO,OAAO,eAAeiB,CAAK,IAAM,MACpCA,EAAQ,OAAO,eAAeA,CAAK,EAEvC,OAAO,OAAO,eAAejB,CAAK,IAAMiB,CAC5C,CCbO,MAAMo0C,GAASK,GCEf,SAASC,GAAUC,EAAK,CAC3B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAIL,GAAW,+DAA+D,EACxF,KAAM,CAAE,EAAGxkC,EAAS,OAAA8kC,CAAQ,EAAGD,EAAI,MAAM,GAAG,EAC5C,GAAIC,IAAW,EACX,MAAM,IAAIN,GAAW,0DAA0D,EACnF,GAAIM,IAAW,EACX,MAAM,IAAIN,GAAW,aAAa,EACtC,GAAI,CAACxkC,EACD,MAAM,IAAIwkC,GAAW,6BAA6B,EACtD,IAAIO,EACJ,GAAI,CACAA,EAAUC,GAAUhlC,CAAO,CAC9B,MACU,CACP,MAAM,IAAIwkC,GAAW,+CAA+C,CACvE,CACD,IAAIjxC,EACJ,GAAI,CACAA,EAAS,KAAK,MAAM0wC,GAAQ,OAAOc,CAAO,CAAC,CAC9C,MACU,CACP,MAAM,IAAIP,GAAW,6CAA6C,CACrE,CACD,GAAI,CAACE,GAASnxC,CAAM,EAChB,MAAM,IAAIixC,GAAW,wBAAwB,EACjD,OAAOjxC,CACX,CCRA,MAAM0xC,GAAyBC,IAC9B,GAAI,OAAOA,EAAO,UAAgB,SAC1B,SAGR,GAAI,wBAAyBA,EAAQ,CACpC,MAAMC,EAAcD,EAAOE,oBAC3B,GAAI,iBAAkBD,EACrB,OAAOE,MAAMC,QAAQH,EAAYhF,YAAY,GAAKgF,EAAYhF,aAAa2E,OAAS,CAEtF,CAEO,QACR,EAMaS,GAAoB,CAAC,CAAEC,cAAwB,CAAEA,WAAY,EAAM,IAAC,OAChF,MAAMlX,EAAS3C,EAAY,IAAMZ,GAAYa,IAAG,GAC1C,CAAE6Z,WAAUC,UAASC,WAAUC,cAAeC,KAC9CC,EAAQC,KAERC,GAEH1Q,SAAOnO,SAAS8e,SAASz4C,MAAM,SAAY,IAA3C8nC,cAA4C,GAAG4Q,cAE5CC,EAAc,CAAC35C,EAAiByX,eAChCuhC,GAIE/4B,GAAe,mBAAmBjgB,IAAW,CACnDgC,MAAO,QACP0W,YAAa,CAACowB,OAAOnO,SAAS8e,SAAUz5C,CAAQ,EAChDyY,MAAO,CACNmhC,cAAeT,EACfC,aACAK,SAAU3Q,OAAOnO,SAAS8e,SAC1BD,iBACA1C,QAAQwC,IAAMjhC,OAANihC,cAAY16B,GACpBi7B,kBAAkBP,OAAMjhC,OAANihC,cAAYQ,sBAAZR,cAAiCS,aACnD,GAAGtiC,CACJ,EACD,GAGKuiC,EAAiBC,cAAY,UAC5B/S,QAAQ,MAAM+R,EAAS,CAAEiB,SAAUpY,EAAOzC,KAAK8a,aAAgBC,QAAOrxC,IAC3E4wC,EAAY,uBAAwB,CACnCU,YAAavY,EAAOzC,KAAK8a,aACzBpxC,QACD,EACO,KACR,EAEA,GAAI,CAACm+B,EACJyS,SAAY,4BAA6B,CACxCU,YAAavY,EAAOzC,KAAK8a,aAC1B,EACO,KAGFzB,QAASN,GAAUlR,GACzB,MAAI,CAACwR,EAAO4B,KAAO,CAAC7B,GAAsBC,CAAS,GAClDiB,EAAY,mBAAoB,CAC/BU,YAAavY,EAAOzC,KAAK8a,aACzBzB,SACD,EACO,MAGD,CACN91C,MAAOskC,EACP4P,OAAQ4B,EAAO4B,IACf7c,OAAQib,EAAO,QAAW,CAC3B,EACE,CAAC5W,EAAOzC,KAAK8a,aAAclB,EAAS,EAEvC,OAAO,gBAAesB,OACfrT,QAAQ,MAAM8S,IAEpB,IAAI9S,iBAAOzJ,OAAOic,iBAAkBF,EAC5BtS,SAIFsT,SAAkBlB,IAAMjhC,OAANihC,cAAYzC,wBAC9B4D,EAAqBD,iBAAiBjH,KAAMlW,GAC1CA,EAAEoZ,aAAa14C,KAAK27C,gBAAkBF,GAG9C,GAAI,CAACiB,EAEJd,SAAY,gDAAiD,CAC5Da,gBAAiBA,iBAAiBhQ,IAAKnN,GAAMA,EAAEoZ,aAAa14C,KAAK27C,cAAW,CAC7E,EACO,KAGR,MAAMJ,EAAMoB,UAAU,CAAEjE,aAAcgE,EAAmBhE,aAAa,EAEhEkE,QAAc,MAAMX,IAE1B,MAAI,CAACW,GAAeA,EAAYld,OAAOic,gBAAkBF,GACxDG,EAAY,uDAAwD,CACnEiB,UAAW1T,iBAAOzJ,OAClBod,UAAWF,iBAAald,OACxBqd,gBAAgB5T,iBAAOtkC,UAAU+3C,iBAAa/3C,OAC/C,EACA,MAAMs2C,IACC,MAGDyB,EAET,EC/HaI,GAAoB,CAAC,CAAEpM,UAASrC,OAAMz8B,WAAgC,CAClF,MAAMY,EAAQ4wB,GAAS,CACtBC,SAAU,CAAC,gBAAiBqN,EAASrC,EAAMz8B,CAAM,EACjD0xB,QAAS,IACR0K,GAA6B,CAC5BrB,YAAa+D,EACbrC,OACAz8B,QACD,EACD28B,UAAWwO,IACZ,EAEAne,mBAAU,KACT,GAAIpsB,EAAMpI,KAAM,CAETo2B,QAAOhuB,EAAMpI,KAAK+J,QAAQo4B,IAAKtlC,GAASA,EAAK+1C,YAAYC,GAAG,EAElErc,GAAgBoD,OAAO,CACtBxD,OACAO,WAAYvuB,EAAMpI,KAAK22B,WACxB,CACD,GACE,CAACvuB,EAAMpI,KAAK,EAERoI,CACR,EC9Ba0qC,GAAc,KACpB,MAAEjR,QAAS+F,KAEX,CAAE5nC,MAAS0kC,KAAmB7C,EAAKU,WAAW,EAE9CwQ,EAAiB5N,GAAY,CAClCC,WAAY,CAAC,CACZ+C,WACA1G,eAKOyG,GAA2B,CACjCzG,UAAWA,GAAaI,EAAKU,YAC7B4F,WACD,CACD,CACD,EAEO,OACNA,SAAUnoC,iBAAMykC,QAAQuO,WACxBD,iBAEF,EC7BaE,GAAoC,KAC1C,MAAExR,aAAcsF,KAChB,CAAE/mC,QAAS+kC,GAAWtD,GAE5B,GAAI,CAACzhC,EACE,UAAIu5B,MAAM,qBAGX2Z,QAAkBlzC,EAAKyiC,QAAQyI,KAAMvC,GAAMA,EAAEtB,iBAAmB,aACtE,GAAI,CAAC6L,EACE,UAAI3Z,MAAM,8BAGV2Z,QACR,ECNaC,GAA0B,KAChCC,QAAkB/G,GAA8BhB,GAAiBE,yBAAyB,EAC1F8H,EAAoBhH,GAA8BhB,GAAiBG,wBAAwB,EAE3F/G,EAAUmD,KACV0L,EAAWxc,EAAY,IAAM5B,GAASQ,KAAKqB,MAAMjB,KAAK,EACtDyd,EAAazc,EAAY,IAAM5B,GAASQ,KAAKqB,MAAMhB,QAAQ,EAQ1Dyd,OANcC,UAAQ,KAC5B,MAAMhR,EAAUgC,EAAQhC,QAAQiR,KAAK,CAACv2C,EAAGC,IAAMD,EAAEkqC,eAAesM,cAAcv2C,EAAEiqC,cAAc,GAE9F,OAAOuM,GAAgB,CAAEN,WAAUC,aAAY9R,UAAWgD,EAAQ5C,KAAKU,YAAaE,UAAQ,GAC1F,CAAC6Q,EAAUC,EAAY9O,EAAQ5C,KAAKU,YAAakC,EAAQhC,QAAQ,EAEhDN,IAAK0R,IACjB,CACN,GAAGA,EACH9d,SAAU8d,EAAY9d,SAASoM,IAAK2R,IAC5B,CACN,GAAGA,EACHC,MAAOD,EAAYC,MAAM9R,OAAQr6B,IAChC,OAAQA,EAAKtI,KAAI,CAChB,IAAK,eACL,IAAK,oBACL,IAAK,WACL,IAAK,sBACL,IAAK,sCACL,IAAK,qCACG8zC,SACR,IAAK,iBACL,IAAK,kBACGC,SACR,QACO,UAAI9Z,MAAM,4CAA4C,CAC9D,EACD,GAEF,GAEF,CACD,ECjDaya,GAA+B,IACtBb,KAED9M,OAAO,CAAC4N,EAAOJ,IAEjCI,EACAJ,EAAY9d,SAASsQ,OAAO,CAAC6N,EAAa,CAAEH,WACpCG,EAAcH,EAAM9D,OACzB,GAEF,GCRSkE,GAA8B,IACnCrd,EAAY,KACZ2N,QAAUjO,GAAgBC,SAASM,IAAG,EAC5C,GAAI,CAAC0N,EACE,UAAIlL,MAAM,oBAGVkL,SACR,ECTY2P,GAAoB,KAC1B,MAAE5M,gBAAiBT,KACnB,CAAEtF,aAAcsF,KAChB,CAAE/mC,QAAS+kC,GAAWtD,GAE5B,GAAI,CAACzhC,EACE,UAAIu5B,MAAM,qBAGX8a,QAASr0C,EAAKyiC,QAAQyI,KAAMvC,GAAMA,EAAErG,cAAgBkF,GAC1D,GAAI,CAAC6M,EACE,UAAI9a,MAAM,oBAGV8a,QACR,EClBA,IAAIC,GAAW,OAAO,OAClBhV,GAAY,OAAO,eACnBiV,GAAmB,OAAO,yBAC1BC,GAAoB,OAAO,oBAC3BC,GAAe,OAAO,eACtBC,GAAe,OAAO,UAAU,eAChCC,GAAa,CAACtpB,EAAIvmB,IAAQ,UAAqB,CACjD,OAAOA,MAAWumB,EAAGmpB,GAAkBnpB,CAAE,EAAE,CAAC,CAAC,IAAIvmB,EAAM,CAAE,QAAS,KAAM,QAASA,CAAG,EAAGA,EAAI,OAC7F,EACI8vC,GAAc,CAAChzC,EAAIxI,EAAMy7C,EAAQC,IAAS,CAC5C,GAAI17C,GAAQ,OAAOA,GAAS,UAAY,OAAOA,GAAS,WACtD,QAASpC,KAAOw9C,GAAkBp7C,CAAI,EAChC,CAACs7C,GAAa,KAAK9yC,EAAI5K,CAAG,GAAKA,IAAQ69C,GACzCvV,GAAU19B,EAAI5K,EAAK,CAAE,IAAK,IAAMoC,EAAKpC,CAAG,EAAG,WAAY,EAAE89C,EAAOP,GAAiBn7C,EAAMpC,CAAG,IAAM89C,EAAK,UAAU,CAAE,EAEvH,OAAOlzC,CACT,EACImzC,GAAU,CAACjwC,EAAKkwC,EAAYl5C,KAAYA,EAASgJ,GAAO,KAAOwvC,GAASG,GAAa3vC,CAAG,CAAC,EAAI,CAAE,EAAE8vC,GAKnGI,GAAc,CAAClwC,GAAO,CAACA,EAAI,WAAaw6B,GAAUxjC,EAAQ,UAAW,CAAE,MAAOgJ,EAAK,WAAY,EAAI,CAAE,EAAIhJ,EACzGgJ,CACF,GAGImwC,GAA0BN,GAAW,CACvC,oGAAoGta,EAASxxB,EAAQ,CAEnHA,EAAO,QAAU,SAAyBqsC,EAAM,CAC9C,IAAIC,EAAMD,EAAK,IAAKx/C,EAAOw/C,EAAK,KAAM51C,EAAO41C,EAAK,KAClD,KAAK,IAAMC,EACX,KAAK,KAAOz/C,EACZ,KAAK,KAAO4J,CAClB,CACG,CACH,CAAC,EAGG81C,GAA4BT,GAAW,CACzC,sGAAsGta,EAASxxB,EAAQ,CAErH,IAAIwsC,EAAkBJ,KACtBpsC,EAAO,QAAU,SAA2BtO,EAAO,CACjD,OAAO,OAAO,KAAS,KAAeA,aAAiB,MAAQ,OAAO,KAAS,KAAeA,aAAiB,MAAQA,aAAiB86C,CAC9I,CACG,CACH,CAAC,EAGGC,GAAuBX,GAAW,CACpC,iGAAiGta,EAASxxB,EAAQ,CAEhH,IAAI0sC,EAA2BH,KAC/BvsC,EAAO,QAAU,SAAS2sC,EAAaj7C,EAAOnC,EAAMq9C,EAAmB,CACjEr9C,IAAS,SACXA,EAAO,IAELq9C,IAAsB,SACxBA,EAAoBF,GAEtB,IAAIG,EACAC,EAAwB,IAAI,IAChC,SAASC,EAAQC,EAAOC,EAAM,CAC5B,IAAIC,EAAcJ,EAAM,IAAIG,CAAI,EAC5BC,EAAaA,EAAY,KAAK,MAAMA,EAAaF,CAAK,EACrDF,EAAM,IAAIG,EAAMD,CAAK,CAC3B,CACD,GAAIJ,EAAkBl7C,CAAK,EACzBm7C,EAAQ,KACRE,EAAQ,CAACx9C,CAAI,EAAGmC,CAAK,MAChB,CACL,IAAIy7C,EAAS59C,EAAOA,EAAO,IAAM,GACjC,GAAI,OAAO,SAAa,KAAemC,aAAiB,SACtDm7C,EAAQ,MAAM,UAAU,IAAI,KAAKn7C,EAAO,SAASu7C,EAAMG,EAAI,CACzD,OAAAL,EAAQ,CAAC,GAAKI,EAASC,CAAE,EAAGH,CAAI,EACzB,IACnB,CAAW,UACM,MAAM,QAAQv7C,CAAK,EAC1Bm7C,EAAQn7C,EAAM,IAAI,SAAS27C,EAAOD,EAAI,CACpC,IAAIE,EAAUX,EAAaU,EAAO,GAAKF,EAASC,EAAIR,CAAiB,EACrE,OAAAU,EAAQ,MAAM,QAAQP,CAAO,EACtBO,EAAQ,KAC3B,CAAW,UACM57C,GAASA,EAAM,cAAgB,OAAQ,CAC9Cm7C,EAAQ,GACR,QAASx+C,KAAKqD,EAAO,CACnB,IAAImE,EAAS82C,EAAaj7C,EAAMrD,CAAC,EAAG,GAAK8+C,EAAS9+C,EAAGu+C,CAAiB,EACtE/2C,EAAO,MAAM,QAAQk3C,CAAO,EAC5BF,EAAMx+C,CAAC,EAAIwH,EAAO,KACnB,CACX,MAAeg3C,EAAQn7C,CAChB,CACD,MAAO,CACL,MAAAm7C,EACA,MAAAC,CACR,CACA,CACG,CACH,CAAC,EAGGS,GAAsBrB,GAAQO,GAAsB,EAAE,CAAC,EAGvDe,GAAsB,cAAc,KAAM,CAM5C,YAAY,CACV,MAAAjuC,EACA,UAAAkvB,EACA,SAAA72B,EACA,QAAA9I,EACA,WAAA2+C,EACA,YAAAC,CACJ,EAAK,CACD,MAAM,0BAA0B5+C,CAAO,EAAE,EAb3C6nC,GAAA,cACAA,GAAA,kBACAA,GAAA,iBACAA,GAAA,mBACAA,GAAA,oBAUE,KAAK,MAAQp3B,EACTkvB,IACF,KAAK,UAAYA,GAEfgf,IACF,KAAK,WAAaA,GAEhBC,IACF,KAAK,YAAcA,GAErB,OAAO,eAAe,KAAM,WAAY,CACtC,WAAY,GACZ,MAAO91C,CACb,CAAK,CACF,CACH,EAGA,SAAS+1C,GAAOC,EAAWzzC,EAAK,CAC9B,GAAI,CAACyzC,EACH,MAAM,IAAI,MAAMzzC,CAAG,CAEvB,CAGA,SAAS0zC,GAAoB,CAC3B,SAAAj+B,EACA,MAAArQ,EACA,UAAAkvB,CACF,EAAG,CACD,MAAM2P,EAAe,IAAI,gBACzB,OAAAA,EAAa,IAAI,QAAS7+B,CAAK,EAC3BkvB,GAAa,OAAO,KAAKA,CAAS,EAAE,OAAS,GAC/C2P,EAAa,IAAI,YAAa,KAAK,UAAU3P,CAAS,CAAC,EAElD,GAAG7e,CAAQ,IAAIwuB,EAAa,SAAU,GAC/C,CAGA,IAAI0P,GAAgBp8C,GAAU,OAAOA,GAAU,UAAYA,IAAU,MAAQ,OAAOA,EAAM,MAAS,WAC/Fq8C,GAAiBr8C,GAAU,OAAOA,GAAU,UAAYA,IAAU,MAAQ,OAAOA,EAAM,MAAS,WAChGs8C,GAAgBt8C,GAAU,OAAO,KAAS,KAAeA,aAAiB,MAAQ,OAAO,KAAS,KAAeA,aAAiB,MAAQ,OAAO,OAAW,KAAeA,aAAiB,QAAUo8C,GAAap8C,CAAK,GAAKq8C,GAAcr8C,CAAK,EAGhPu8C,GAAkBr2C,IAAcA,EAAS,QAAQ,IAAI,cAAc,GAAK,IAAI,SAAS,kBAAkB,EAGvGs2C,GAAa7sC,GAAY,OAAOA,EAAQ,KAAQ,WAChD8sC,GAAqB9sC,GAAY,OAAOA,EAAQ,OAAO,QAAQ,GAAM,WACzE,SAAS+sC,GAAiB/sC,EAAS,CACjC,GAAIA,IAAY,OACd,MAAO,GAET,GAAI6sC,GAAU7sC,CAAO,EAAG,CACtB,MAAM6mB,EAAa,GACnB,OAAA7mB,EAAQ,QAAQ,CAAC3P,EAAOvD,IAAQ,CAC9B+5B,EAAW/5B,CAAG,EAAIuD,CACxB,CAAK,EACMw2B,CACR,CACD,GAAIimB,GAAkB9sC,CAAO,EAAG,CAC9B,MAAM6mB,EAAa,GACnB,SAAW,CAAC/5B,EAAKuD,CAAK,IAAK2P,EACzB6mB,EAAW/5B,EAAI,YAAa,GAAIuD,EAElC,OAAOw2B,CACR,CACD,OAAO,OAAO,YACZ,OAAO,QAAQ7mB,CAAO,EAAE,IAAI,CAAC,CAAClT,EAAKuD,CAAK,IAAM,CAACvD,EAAI,YAAa,EAAEuD,CAAK,CAAC,CAC5E,CACA,CAGA,IAAI28C,GAAuB,KAAM,CAQ/B,YAAYzd,EAAQ,CAPpB+F,GAAA,iBACAA,GAAA,cACAA,GAAA,qBACAA,GAAA,oBACAA,GAAA,iBACAA,GAAA,gBACAA,GAAA,qBAEEgX,GAAO/c,EAAO,WAAa,OAAQ,sBAAsB,EACzD+c,GACE/c,EAAO,QAAU,QAAU,OAAO,MAAU,IAC5C,2EACN,EACI+c,GACE,CAAC/c,EAAO,aAAe,OAAOA,EAAO,aAAgB,WACrD,wDACN,EACI+c,GACE,CAAC/c,EAAO,SAAW,OAAOA,EAAO,SAAY,WAC7C,oDACN,EACI+c,GACE,CAAC/c,EAAO,cAAgB,OAAOA,EAAO,cAAiB,WACvD,2DACN,EACI,KAAK,SAAWA,EAAO,SACvB,KAAK,MAAQA,EAAO,OAAS,MAAM,KAAK,IAAI,EAC5C,KAAK,aAAeA,EAAO,aAC3B,KAAK,SAAWA,EAAO,WAAa,OAASA,EAAO,SAAW,OAAO,SAAa,IAAc,SAAW,OAC5G,KAAK,YAAcA,EAAO,YAC1B,KAAK,QAAUA,EAAO,QACtB,KAAK,aAAeA,EAAO,cAAgBod,EAC5C,CACD,kBAAkBzuC,EAAOkvB,EAAW,CAClC,KAAM,CAAE,MAAAoe,EAAO,MAAAC,MAAcS,GAAoB,SAC/C,CAAE,MAAAhuC,EAAO,UAAAkvB,CAAW,EACpB,GACA,KAAK,YACX,EACU6f,EAAgB,KAAK,UAAUzB,CAAK,EAC1C,GAAIC,EAAM,OAAS,EACjB,OAAOwB,EAETX,GACE,KAAK,WAAa,OAClB,iFACN,EACI,MAAMY,EAAO,IAAI,KAAK,SACtBA,EAAK,OAAO,aAAcD,CAAa,EACvC,MAAMhV,EAAM,GACZ,IAAIjrC,EAAI,EACR,UAAW2+C,KAASF,EAAM,SACxBxT,EAAI,EAAEjrC,CAAC,EAAI2+C,EAEbuB,EAAK,OAAO,MAAO,KAAK,UAAUjV,CAAG,CAAC,EACtCjrC,EAAI,EACJ,UAAW4+C,KAAQH,EAAM,OACvByB,EAAK,OAAO,GAAG,EAAElgD,CAAC,GAAI4+C,CAAI,EAE5B,OAAOsB,CACR,CAMD,YAAY3+B,EAAU,CACpB+9B,GAAO/9B,IAAa,OAAQ,sBAAsB,EAClD,KAAK,SAAWA,CACjB,CAID,aAAc,CACZ,OAAO,KAAK,QACb,CAMD,gBAAgB4+B,EAAc,CAC5B,KAAK,aAAeA,CACrB,CAID,iBAAkB,CAChB,OAAO,KAAK,YACb,CAiBD,MAAM,YAAYjvC,EAAOkvB,EAAW+f,EAAc,WAChD,IAAIC,EACJ,GAAI,CACF,MAAMC,EAAgB,KAAK,YAAc,KAAK,YAAYnvC,CAAK,EAAIA,EACnEouC,GACE,OAAOe,GAAkB,SACzB,iCAAiC,OAAOA,CAAa,wCAC7D,EACM,MAAMrhD,EAAU,CACd,OAAQ,OACR,GAAG,KAAK,aACR,GAAGmhD,EACH,QAAS,CAEP,GAAGJ,IAAiB7X,EAAA,KAAK,eAAL,YAAAA,EAAmB,OAAO,EAE9C,GAAG6X,GAAiBI,GAAA,YAAAA,EAAc,OAAO,CAC1C,CACT,EACM,IAAI52C,EACJ,KAAI+2C,EAAAthD,EAAQ,SAAR,YAAAshD,EAAgB,iBAAkB,MAAO,CAC3C,MAAMl3C,EAAMo2C,GAAoB,CAC9B,SAAU,KAAK,SACf,MAAOa,EACP,UAAAjgB,CACV,CAAS,EACD72B,EAAW,MAAM,KAAK,MAAMH,EAAKpK,CAAO,CAChD,KAAa,CACL,MAAM2sB,EAAO,KAAK,kBAAkB00B,EAAejgB,CAAS,EAC5D72B,EAAW,MAAM,KAAK,MAAM,KAAK,SAAU,CACzC,GAAGvK,EACH,KAAA2sB,EACA,QAAS,OAAOA,GAAS,SAAW,CAAE,GAAG3sB,EAAQ,QAAS,eAAgB,oBAAuBA,EAAQ,OACnH,CAAS,CACF,CACD,GAAI,CAACuK,EAAS,GAAI,CAChB,GAAIq2C,GAAer2C,CAAQ,EAAG,CAC5B,KAAM,CAAE,KAAAT,EAAM,OAAAu6B,CAAM,EAAK,MAAM95B,EAAS,KAAI,EAC5C,IAAI85B,GAAA,YAAAA,EAAS,MAAO,OAClB,MAAA+c,EAAct3C,EACR,IAAIq2C,GAAoB,CAC5B,MAAOkB,EACP,UAAAjgB,EACA,SAAA72B,EACA,QAAS85B,EAAO,CAAC,EAAE,QACnB,WAAYA,EAAO,CAAC,EAAE,WACtB,YAAaA,CAC3B,CAAa,CAEJ,CACD,MAAM,IAAI8b,GAAoB,CAC5B,MAAOkB,EACP,UAAAjgB,EACA,SAAA72B,EACA,QAAS,eAAeA,EAAS,MAAM,EACjD,CAAS,CACF,CACD,MAAM/B,EAAS,MAAM+B,EAAS,OAC9B,KAAIg3C,EAAA/4C,EAAO,SAAP,YAAA+4C,EAAgB,MAAO,OACzB,MAAAH,EAAc54C,EAAO,KACf,IAAI23C,GAAoB,CAC5B,MAAOkB,EACP,UAAAjgB,EACA,SAAA72B,EACA,QAAS/B,EAAO,OAAO,CAAC,EAAE,QAC1B,WAAYA,EAAO,OAAO,CAAC,EAAE,WAC7B,YAAaA,EAAO,MAC9B,CAAS,EAEH,MAAO,CAAE,GAAI,GAAM,KAAMA,EAAO,KAAM,SAAA+B,EACvC,OAAQ5B,EAAK,CACZ,MAAM6B,EAAQ7B,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,EAChE,GAAI,KAAK,QACP,GAAI,CACF,KAAK,QAAQ6B,CAAK,CAC5B,MAAgB,CACN,MAAO,CAAE,GAAI,GAAO,MAAAA,EAAO,YAAA42C,CAAW,CACvC,CAEH,MAAO,CAAE,GAAI,GAAO,MAAA52C,EAAO,YAAA42C,CAAW,CACvC,CACF,CAWD,MAAM,QAAQlvC,EAAOkvB,EAAW+f,EAAc,CAC5C,MAAM34C,EAAS,MAAM,KAAK,YACxB0J,EACAkvB,EACA+f,CACN,EACI,GAAI,CAAC34C,EAAO,GACV,MAAMA,EAAO,MAEf,OAAOA,EAAO,IACf,CACH,EAGIg5C,GAAM,CAACC,KAAY1zC,IAAW,CAChC,IAAIvF,EAAS,GACb,SAAW,CAACyS,EAAOymC,CAAM,IAAKD,EAAQ,QAAO,EAC3Cj5C,GAAU,GAAGk5C,CAAM,GAAGzmC,KAASlN,EAASA,EAAOkN,CAAK,EAAI,EAAE,GAE5D,OAAOzS,EAAO,MAChB,ECxZO,MAAMm5C,GAGZ,aAAsB,CAAC,CAEvB,OAAOpuB,KAAKnpB,EAAaw3C,EAAkC,CACrDC,cAAW,IAAIb,GAAqB,CAAEz+B,SAAUnY,EAAK64B,MAAO2e,EAAY,CAC9E,CAGA,OAAOlW,aAAc,CAChB,QAAKmW,WAAa,KACf,UAAIxe,MAAM,qCAGjB,OAAO,KAAKwe,QACb,CACD,CAhBCvY,GADYqY,GACGE,WAAwC,MCYjD,MAAMC,GAAkBC,GAAY,CAAC,CAAEjS,YAAWrS,aAAgB,OAClE,MAAEukB,WAAYC,KAEdziB,EAAOoB,EAAY,IAAM5B,GAASQ,KAAKqB,KAAG,EAE1CqhB,GAAgB1iB,EAAKx/B,QAAQ,aAAkB,IAAIw9C,KAAK,CAACv2C,EAAGC,IACjED,EAAE5C,MAAMo5C,cAAcv2C,EAAE7C,KAAK,GAExB,CAAC89C,EAAqBC,CAAuB,EAAGpX,aACrDkX,IAAa,CAAE,IAAfA,cAAiB79C,QAAS,MAGrBs7B,EAAe4d,UAAQ,aAC5B,GAAI,CAAC4E,EACG,YAIR,MAAME,GAAsB7iB,OAAKK,SAASsiB,CAAoB,EAACtJ,oBAAoB7D,KACjFvnC,GAAMA,EAAEmnC,OAAS,eADSpV,cAEzB8iB,aAAa,KAFY9iB,cAERoV,KACpB2N,UAAEjT,iBACD+S,EACA,0CAA0CF,CAAqB,IAGzD,CACN5T,QAAS/O,EAAKG,aAAawiB,CAAoB,EAC/ChW,OAAQ3M,EAAKG,aAAa0iB,CAAoB,EAC/C,EACE,CAAC7iB,EAAKK,SAAUL,EAAKG,aAAcwiB,EAAoB,EAEpDhO,EAAU3D,GAAqB7Q,WAAcwM,OAAS,CAACxM,EAAawM,MAAO,EAAG,CAAE,GAEhFqW,EAAwB1T,KACxB2T,EAA+B,MAAO,CAAE10C,YAAQ,CACrD,GAAI,CAACo0C,GAAuB,EAACxiB,WAAcwM,QAAQ,CAC1C1O,EAAA,IAAI4F,MAAM,6BAClB,MACD,CAEAmf,EAAsBE,OACrB,CACCvT,YAAagT,EACb/S,sBAAuBzP,EAAawM,OACpCkD,sBAAuBthC,EAAO4xB,EAAawM,MAAM,GAElD,CACC2D,YACArS,UACD,GAIF,SACCklB,EAAA,aACEC,IACA9jB,EAAE,UACFoW,MAAM,eACN2N,YAAY,yBACZ/4C,KAAMo4C,EACNY,iBAAc,GACdz+C,MAAO89C,EACPY,SAAUX,KAGVziB,iBAAcwM,SACdd,EAAC2X,IACAC,SAAU,CAAC,CAAEvT,YAAa/P,EAAawM,OAAQiE,QAAS,EAAG6C,WAAY,QAAS,CAAE,EAClFlT,kBAAmBoU,EACnB+O,UAAWV,EAAsBW,UACjCC,SAAUX,EACVY,OAAQ,CAAEC,QAAS,CAAEnhB,QAAS,iBAAkB,CAAE,EAClDohB,eAAc,GACdC,qBAAuBN,GACtB7X,EAACoY,IAAYC,WAAW,iBAAiBC,WAAYT,EAAWU,SAAU5B,QAMhF,CAAG,ECzFU6B,GAA6B,KACzC,MAAMC,EAAkBC,KAElBC,EAAWC,KACXnU,EAAY,CAAC,CAAEoU,uBAAgE,CACpFlQ,EAAWC,QAAQ,mBACV+P,EAAA,aAAaE,CAAmB,KAGpCzmB,EAAW90B,IAChB,MAAMlH,EAAU,0BACTggB,GAAiB,IAAI4hB,MAAM5hC,EAAS,CAAEw7B,MAAOt0B,CAAI,IACxDqrC,EAAWxpC,MAAM/I,IAGlB,SACCkhD,EAAA,aACEwB,GAAOC,YAAcxO,KAAa,CAACyO,KAAM,GAAIC,OAAQ,OAAUC,QAAST,EAAgBU,KAAM,2BAI9F1C,IACA2C,MAAM,cACNC,OAAQZ,EAAgBa,OACxB3C,QAAS8B,EAAgBc,MACzBC,aAAc,CAAE/U,YAAWrS,SAAQ,MAIvC,EC/BMqnB,GAAiC,KACtC,MAAM/V,EAAcC,KAEpB,MAAO,WACN,MAAMD,EAAYgB,kBAAkB,CAAEhN,SAAU,CAAC,UAAW,EAAC,EAE/D,EASagiB,GAA8B,KAC1C,MAAMjV,EAAYgV,KAElB,OAAO7V,GAAY,CAClBC,WAAY,MAAO,CAClB8V,iBACA7T,iBACA2D,aACAmQ,qBAqBQ,MAnBS,MAAMxZ,GAAcC,cAAc6D,iBAClDyV,EACA7T,EACA2D,EACA,CACCtF,mBAAoB,CACnB,CACC5C,SAAUkH,GACVrE,gBAAiB,CAChBC,YAAamF,GAAeC,GAC5B1E,QAAS,EACV,EACAT,QAASsV,CACV,CACA,EACDpV,uBAAwB,CAAE,EAC3B,GAGsBvM,OAExBwM,YACD,CACD,EAQaoV,GAAmC,KAC/C,MAAMpV,EAAYgV,KAElB,OAAO7V,GAAY,CAClBC,WAAY,MAAO,CAClB8V,iBACA7T,iBACAI,cASQ,MAPS,MAAM9F,GAAcC,YAAW,EAAGyZ,sBAClDH,EACA7T,EACAI,EACA,EAAE,GAGoBjO,OAExBwM,YACD,CACD,EAQasV,GAA8B,KAC1C,MAAMrW,EAAcC,KAEpB,OAAOC,GAAY,CAClBC,WAAY,MAAO,CAAE8V,iBAAgB7T,iBAAgBI,cAO5C,MANS,MAAM9F,GAAcC,cAAc2Z,uBAClDL,EACA7T,EACAI,IAGsBjO,OAExBwM,UAAW,KACVf,EAAYgB,kBAAkB,CAAEhN,SAAU,CAAC,UAAW,EAAC,CACxD,EACD,CACD,ECtGauiB,GAA2B,CAACC,EAAwCrzC,IACzE87B,GAAa,CACnBjL,SAAU,CAAC,eAAgBwiB,EAAarzC,CAAM,EAC9C8wB,QAAS,SACJ9wB,EAAM6nC,SAAW,EACb,GAKA,MAFO,MAAMtO,GAAcC,cAAc8Z,aAAa,CAAEtzC,SAAgB,CAAEqzC,cAAY,GAEzEjiB,MACtB,CACD,EAGYmiB,GAAuB,CAACF,EAAwCrzC,IACrE4wB,GAASwiB,GAAyBC,EAAarzC,IAGjDwzC,GAAwBlc,IACtB,CACNzG,SAAU,CAAC,WAAYyG,CAAO,EAC9BxG,QAAS,UACI,MAAMyI,GAAcC,YAAW,EAAG7L,SAAS2J,IAC5ClG,MACZ,GAIWqiB,GAAenc,GACpB1G,GAAS4iB,GAAqBlc,IAGhCoc,GAAsBrU,IACpB,CACNxO,SAAU,CAAC,SAAUwO,CAAS,EAC9BvO,QAAS,UACI,MAAMyI,GAAcC,YAAW,EAAGE,UAAU2F,IAC7CjO,MACZ,GAIWuiB,GAAatU,GAClBzO,GAAS8iB,GAAmBrU,IAG9BuU,GAAkCtc,IAChC,CACNzG,SAAU,CAAC,qBAAsByG,CAAO,EACxCxG,QAAS,IAAM+J,GAA+BvD,KAInCuc,GAAyBvc,GAC9B1G,GAASgjB,GAA+Btc,ICxDnCwc,GAAsB,KAClC,MAAMhC,EAAWC,KACX1V,EAAUmD,KAEVuU,EAAgB,CACrBC,EACA/U,EACAgV,WAEMC,SAAe7X,IAAQhC,QAAQyI,KAAMvC,GAAMA,EAAEtB,iBAAmB,WAAc9E,IAA/DkC,cAA+DlC,YAE9Ega,EAAW,aAAa9X,EAAQ5C,KAAKU,WAAW,IAAI0M,GAAEuN,QAAQnV,CAAiB,IAE9EgV,WAAsBC,EAC1BC,EACA,GAAGA,KAAYH,YAA4BC,CAAmB,IAY3D,OAAEF,gBAAeM,iBATC,CACxBL,EACA/U,EACAgV,KAEOK,gBAAS,EAAG,GACZxC,EAASiC,EAAcC,EAAmB/U,EAAgBgV,IAG1CI,CACzB,ECAME,GAAYC,GAAa,CAAC,CAAE1lB,aAAc,CAC/CyjB,MAAO,CACNkC,MAAO3lB,EAAOY,KAAK,CAAE,EACrBY,WAAY,IACZD,SAAU,GACVqkB,WAAY,QACb,EACAC,SAAU,CACTC,UAAW,MACXH,MAAO3lB,EAAOY,KAAK,CAAE,EACrBY,WAAY,IACZD,SAAU,GACVqkB,WAAY,SACZG,WAAY,SACZC,SAAU,SACVC,aAAc,UACf,CACD,IAoBaC,GAAkC,CAAC,CAC/CC,eACAhW,iBACAgN,SACAiJ,eACAtX,eACA,OACM,MAAEyW,oBAAqBP,KACvB,CAAEnlD,WAAY4lD,KAKdY,EAFOzmB,EAAY,IAAM5B,GAASQ,KAAKqB,KAAG,EACzBhB,SAASsnB,EAAavS,IAAI,EACjBiE,oBAAoB7D,KAAMvnC,GAAMA,EAAEmnC,OAASzD,GACrEmW,GAAoBD,iBAAe/E,aAAarW,IAAKjiC,GAAMA,EAAE4qC,QAAS,GAEtE,CAAC2S,EAAcC,GAAmBxc,EAAiBsc,WAAkB,CAAE,GACvE,CAACG,EAAgBC,CAAkB,EAAG1c,WAAyB,YAC/D,CAAC2c,EAAaC,CAAe,EAAG5c,WAAS,IACzC,CAAC6c,EAAkBC,CAAoB,EAAG9c,WAAwB,MAElE94B,EAAQ61C,GAAYJ,EAAa,KACjCK,EAAoBvC,GAAqB6B,EAAmBp1C,GAC5D+1C,IAAoBD,IAAkBl+C,OAAlBk+C,cAAwBE,MAAM,EAAG,MAAO,GAC5DC,EAAiBlP,KAEjBmP,EAAgClD,KAChCmD,EAAwB,UACzB,IACH,GAAI,CAACR,EACE,UAAIxkB,MAAM,uBAGX76B,QAAS,MAAM4/C,EAA8BE,YAAY,CAC9DtD,eAAgBmC,EAAa/W,QAC7Be,iBACAI,SAAUsW,EACX,EAEoBr/C,IAAO+/C,gBAAiBV,SACpCl/C,EAAK,CACb,GAAIA,aAAe6/C,SACd,IACGC,SAAyC,MAAM9/C,EAAI26B,OACrDmlB,MAAchnD,UAAY,2BAA4B,CACzDuyC,EAAWxpC,MAAM,4BACjB,MACD,CACA,SAAW,CAAC1J,GAAKuD,KAAU0wC,OAAOnf,QAAQ6yB,EAAgB,EACzD,GAAIpkD,EAAM01C,OAAQ,CACNvvC,QAAMk+C,GAAoB5nD,EAAI,GACzC,MACD,QAEOkJ,GAAG,CACH2+C,YAAI,wBAAyB3+C,GACtC,KACM,CACN,MAAMvI,GAAUkH,aAAe06B,MAAQ16B,EAAIlH,QAAU,gBACrDuyC,EAAWxpC,MAAM/I,GAClB,CACD,GAGKmnD,EAAsB,CAC3BL,EACArE,MAEApU,IACAkE,EAAWC,QAAQ,mCAEfmT,KAIA,CAACjJ,GAAUA,EAAOhN,iBAAmBA,EAEvBoX,IAAiBpX,EAAgB+S,IAElDqC,EAAiBpI,EAAO/R,YAAa+R,EAAOhN,eAAgB+S,IAC7D,EAGK/P,EAAU3D,GAAqB8W,EAAkBrb,IAAKtlC,GAASkuC,GAAeluC,KAC9EkiD,EAA2B9D,KAC3B+D,EAAkC,MAAO,CAAE/6C,YAAQ,CACpD,IACGg7C,SAAclU,GAAe0S,GAC7BtC,GAAkBl3C,EAAOg7C,EAAY,EAErCvgD,EAAS,MAAMqgD,EAAyBP,YAAY,CACzDtD,eAAgBmC,EAAa/W,QAC7Be,iBACA2D,WAAYyS,EACZtC,mBACD,EAEoBz8C,IAAO+/C,gBAAiB//C,EAAO07C,iBAAiB,QAC5Dv7C,GAAK,CACb,MAAMlH,GAAUkH,cAAe06B,MAAQ16B,GAAIlH,QAAU,gBACrDuyC,EAAWxpC,MAAM/I,GAClB,GAGGgmD,WAAmB,YAActW,IAAmB,sBAEtDwR,EAAA,aACEqG,IAAMC,IAAI,IAAInqB,EAAE,kCACfoqB,IACAhU,MAAM,OACN2N,YAAY,wCACZx+C,MAAOsjD,EACP5E,SAAW/4C,IACKA,IAAEpE,OAAOvB,KAAK,EAC7ByjD,EAAoB,KACrB,EACAqB,aAAcnB,EAAkBoB,YAAc/d,EAACge,IAAOC,QAAQ,OAAOjF,KAAK,SAE1E,CAAC4D,EAAkBlO,QAAU7nC,EAAM6nC,OAAS,KAC3CwP,GAAOC,GAAG,MAAMnrD,UAAWwC,EAAQgmD,SAAU,gEAK9C4C,EAAQxB,EAAkBlO,UACzB2P,IAAWC,GAAG,OAAOC,EAAG3B,EAAkBlO,OAAS,GAAK,QAAU,OAClE,WAACiP,IAAMC,IAAI,eACThB,EAAkBhc,IAAI,CAAC,CAAEI,cAAa7sC,QAAMs1C,iBAAY,CACxD,MAAM+U,EAAaxd,IAAgBwb,EACnC,SACEiC,IACAvF,QAAS,KACQuD,EAAZ+B,EAAgC,KACXxd,CADW,CAErC,EACA0d,SAAUlC,IAAqBxb,EAE/BjjC,KAAK,QAEL,WAAC4gD,IAAKC,MAAM,SAASC,GAAG,OAAOC,EAAE,OAAOC,QAAQ,4BAC9CC,GAAIC,GAAG,OAAOC,IAAI,QAClB,WAAChB,GAAOlrD,UAAWwC,EAAQ4jD,MAAQjlD,kBAEnCgrD,IAAY5V,KAAMuT,EAAerT,UAP9Bt1C,IAWR,MAIFiqD,EAAQv3C,GAAUA,EAAM6nC,OAAS,KAChCoK,GACAE,KAAK,KACLsF,GAAG,MACHC,EAAE,OACF5hB,MAAO,CAAEjG,aAAc,KAAM,EAC7BqiB,YAAcxO,KAAa,CAACyO,KAAK,OAAOsC,MAAO,YAC/C2C,QAAQ,UACR/E,QAAS,IAAMmD,EAAkB,OAEjC,WAAC6B,GAAOlrD,UAAWwC,EAAQ4jD,MAAO,6BAIpCgF,EAAQxB,EAAkBlO,QAAW8N,KACpCpE,IACAC,WAAW,MACXR,UAAWkF,EAA8BjF,UACzCQ,WAAYkE,IAAqB,KACjCzE,SAAUiF,EACVoC,SAAQ,UAQZ9H,EAAA,WACExR,IAAmB,qBACnB9F,EAACqf,IACAC,GAAI,CAAC,CAAE3pB,aAAc,CACpB2lB,MAAO3lB,EAAOM,MAAM,CAAE,EACtB18B,KAAMo8B,EAAOM,MAAM,CAAE,EACrBkB,WAAY,IACZD,SAAU,GACV,UAAW,CACVokB,MAAO3lB,EAAOM,MAAM,CAAE,EACtB18B,KAAMo8B,EAAOM,MAAM,CAAE,CACtB,IAEDxC,EAAE,kBACFylB,QAAS,IAAMmD,EAAkB,YAEjC,WAACsC,IAAKC,MAAM,mBACX5e,EAACuK,GAAoB,CAACyO,KAAM,OAC3BkF,GAAO,yCAIVjC,EAAkBvN,OAAS,GAC3B1O,EAACuX,IACA1N,MAAM,cACN7wC,MAAOkjD,EACPxE,SAAW1+C,IACNA,GAAOmjD,EAAgBnjD,EAC5B,EACAw+C,YAAY,0BACZ/4C,KAAMw9C,EAAkBrb,IAAK2I,IAAU,CAAEvwC,MAAOuwC,EAAMM,MAAO6D,GAAEC,SAASpE,IAAM,EAC9E9V,EAAE,sBAGHkkB,IAEA4H,cAAeC,GAAmBlD,EAAaJ,GAC/CtE,SAAU,CACT,CACCvT,YAAamF,GAAe0S,GAC5BnX,QAAS,EACT6C,WAAY,QACb,CACA,EACDsQ,eAAc,GACdxjB,kBAAmBoU,EACnBkP,OAAQ,CAAEC,QAAS,CAAEnhB,QAAS,qBAAsB,CAAE,EACtDqhB,qBAAsB,IACrBnY,EAACoY,IACAP,UAAW2F,EAAyB1F,UACpCQ,WAAYkF,EAAyB1F,UACrCO,WAAW,QAGbN,SAAU0F,GAnBLvB,KAuBT,EAEMsD,GAAqB,CAACxmD,EAAeywC,IACtCA,IAAe,oBACX,CAAEgW,wBAAyB,CAAEC,UAAW1mD,CAAM,GAE/C,CAAE,CAAC,GAAGywC,SAAkB,EAAG,CAAEt1C,KAAM6E,CAAM,GCxS3CoiD,GAAYC,GAAa,CAAC,CAAE1lB,aAAc,CAC/CgqB,WAAY,CACXrE,MAAO3lB,EAAOY,KAAK,CAAE,EACrBY,WAAY,IACZP,QAAS,OACTgpB,WAAY,SACZC,eAAgB,SAChB3oB,SAAU,QACVJ,QAAS,SACTJ,aAAc,MACd,UAAW,CACV4kB,MAAO3lB,EAAOM,MAAM,CAAE,EACtBG,gBAAiBT,EAAOM,MAAM,CAAE,CACjC,CACD,CACD,IAQa6pB,GAAwC7tB,IAC9C,MAAEz8B,WAAY4lD,KACd2E,EAAkBrH,KAClBsH,EAAmB1S,GAA0Brb,EAAM6pB,aAAavS,IAAI,EACpEM,EAAQ5X,EAAM4X,OAASmW,EAAiB/tB,EAAM6T,cAAc,EAAE2H,SAEpE,OAAK3C,GAA8BhB,GAAiBE,yBAAyB,IAK5EsN,EAAA,WACErlB,EAAMguB,aAAe,OACrBjgB,EAACkgB,IAAQrW,MAAO,WAAWA,CAAO,GAAEsW,UAAW,IAC9C,WAACd,IAAenG,QAAS6G,EAAgB5G,KAAMnmD,UAAWwC,EAAQmqD,oBAChEpV,KAAa,CAACyO,KAAM,SAIvBxgB,EAACsgB,GACAE,KAAK,KACLoH,UAAS,GACTnC,QAAQ,QACRlF,YAAcxO,KAAa,CAACyO,KAAM,KAClCE,QAAS6G,EAAgB5G,KACxB,GAAGlnB,EAAMouB,sBACV,OACKxW,KAINkW,EAAgBzG,QAChBtZ,EAACsgB,IACAtH,KAAK,QACLK,OAAQ0G,EAAgBzG,OACxBF,MAAO,OAAOvP,CAAO,GACrB8M,QAASoJ,EAAgBxG,MAEzB,WAACsC,IACAC,aAAc7pB,EAAM6pB,aACpBhW,eAAgB7T,EAAM6T,eACtBgN,OAAQ7gB,EAAM6gB,OACdiJ,aAAc9pB,EAAM8pB,aACpBtX,UAAWsb,EAAgBxG,aApCxB,IA0CT,ECpFagH,GAA2B,MAAO1nD,IAClC,MAAMunC,GAAcC,cAAcmgB,OAAO,CACpD7Y,gBAAiB9uC,EAAM4nD,SACvBtmC,SAAUthB,EAAM07C,KACjB,GAEWtc,OAGCyoB,GAA+B,MAAO7nD,IACtC,MAAMunC,GAAcC,YAAcsgB,WAAS9nD,EAAM+nD,UAAU,GAE5DC,cAGCC,GAA0B,IAC/Bld,GAAY,CAClBC,WAAY,MAAO,CAAE0Q,UAAwC,CAEtDwM,QAAO,MADD,MAAM3gB,GAAcC,YAAcsgB,WAASpM,EAAKqM,UAAU,GAC/CC,cAEjB9hD,EAAMiiD,IAAIC,gBAAgB,IAAIC,KAAK,CAACH,CAAK,IACzCnlD,EAAIsmB,SAASi/B,cAAc,KACjCvlD,EAAEwlD,KAAOriD,EACTnD,EAAE+kD,SAAWpM,EAAKp6B,SAClBve,EAAEylD,MAAK,EACAL,WAAIM,gBAAgBviD,EAC5B,EACD,ECxBY44C,GAER1lB,IACJ,MAAMkC,EAAOoB,EAAY,IAAM5B,GAASQ,KAAKuU,MAAI,EAC3C,CAAEmC,YAAaG,KAErB,OAAItB,OAAO7uC,KAAKs5B,EAAKE,OAAO,EAAEqa,SAAW,EACjC,OAIN6S,IACC,GAAGtvB,EACJuvB,oBAAmB,GACnBC,UAAW,CACV5W,WACA6W,eAAgBhB,GAChBiB,aAAcpB,EACf,EACApsB,KAAM,CACLE,QAASF,EAAKE,QACd1/B,QAASw/B,EAAKx/B,OACf,GAGH,EC3BaitD,GAAkBlL,GAAY,KAC1C,KAAM,CAACmL,EAAcC,CAAgB,EAAGniB,WAAS,IAC3C,CAACh0B,EAAUo2C,CAAY,EAAGpiB,WAA6C,WACvE,CAAC5R,EAAai0B,CAAe,EAAGriB,WAAS,IACzC,CAAEgX,WAAYC,KACd,CAAEnoC,OAAM+gC,cAAezC,KAEvBkV,EAAe,UACpB,GAAKzS,EAGD,IACHsS,EAAgB,IACV1hB,SAAcC,YAAc6hB,gBAAc,CAC/Cv2C,WAEAoiB,YAAa,GAAGA,iBAA2BmR,OAAOnO,SAASqwB,IAAI,iBAC9DliB,OAAO/Q,UAAUnd,SAAS,cACbvC,EAAKuG,EAAE,iBACpBvG,EAAK0zC,eAAe,CAAE,YACRtqB,WAAOuqB,YAAW,mCAE9Brc,WAAW,YAAa,KAC5B,EACA4C,EAAWV,KAAK,8DAEhB8Z,EAAY,WACZC,EAAe,SACJ,CACXrZ,EAAWxpC,MAAM,wDACR,CACT2iD,EAAgB,IAChBnL,GACD,GAGD,SACCW,EAAA,aACEC,IACA9jB,EAAE,UACF6qB,GAAG,UACH+D,GAAG,UACHrpD,MAAO2S,EACP22C,SAAUT,EACVU,gBAAe,GACfC,cAAe,CAAEC,aAAc,EAAM,EACrC/K,SAAW1+C,GAAU+oD,EAAa/oD,GAAgD,WAClFyF,KAAM,CACL,CAAEzF,MAAO,UAAW6wC,MAAO,gBAAiB,EAC5C,CAAE7wC,MAAO,YAAa6wC,MAAO,kBAAmB,EAChD,CAAE7wC,MAAO,QAAS6wC,MAAO,cAAe,CACxC,EACD4N,iBAAc,OAEdiL,IACAjvB,EAAE,UACF4uB,GAAG,OACHM,WAAY,CAAE3J,KAAM,IAAK,EACzB4J,QAAS,EACTC,QAAS,GACT7pD,MAAO+0B,EACP2pB,SAAW/4C,GAAMqjD,EAAerjD,EAAEmkD,cAAc9pD,KAAK,EACrDspD,SAAUT,EACVkB,SAAQ,GACRvL,YAAY,iCAEZwH,GAAIvrB,EAAE,UACN,WAACqlB,GACApgB,QAASmpB,EACTzB,UAAS,GACTpH,KAAK,KACLsJ,SAAUv0B,EAAY2gB,OAAS,EAC/BsU,YAAa,CAAEhK,KAAM,EAAG,EACxBE,QAAS+I,EACT,wBAML,CAAG,ECvEG7G,GAAYC,GAAa,CAAC,CAAE4H,SAAQttB,SAAQutB,UAASC,cAAe,CACzEC,UAAW,CACV/sB,UAAW6sB,EAAQG,EACpB,EACAC,aAAc,CACbltB,gBAAiBT,EAAOY,KAAK,CAAE,EAC/BO,QAAS,SACTR,YAAa,OACd,EACAitB,SAAU,CACTpsB,WAAY,IACZD,SAAU,WACVqkB,WAAY,MACZD,MAAO3lB,EAAO6tB,MAAM,CAAE,EACtB9sB,aAAcusB,EAAOQ,QACrB3sB,QAAS,iBACT4sB,WAAY,gCACZ,UAAW,CACVttB,gBAAiBT,EAAO6tB,MAAM,CAAE,CACjC,EACA,kBAAmB,CAClBptB,gBAAiBT,EAAO6tB,MAAM,CAAE,EAChCG,aAAc,KACf,CACD,EACAC,gBAAiB,CAChBC,gBAAiBV,EAAQW,OAC1B,EACAC,gBAAiB,CAChB7sB,SAAU,UACVokB,MAAO3lB,EAAOY,KAAK,CAAE,CACtB,CACD,IAEaytB,GAAQ,KACd,MAAExuD,WAAY4lD,KACd,CAAEzlB,SAAQstB,SAAQE,WAAYvtB,KAE9BquB,EAAcvL,KACdwL,EAAcxL,KACd,CAACyL,EAAQhJ,GAAYiJ,KAEhB,OAAAC,GAAA,CAAC,CAAC,eAAgB,IAAMlJ,EAAS,CAAEmJ,EAAG,EAAE,CAAG,EAAC,IAGtDhN,EAAA,aACEiN,IAAQC,SAAU,CAAEC,OAAQ,OAAQC,MAAO,MAAO,EAClD,WAAC/G,IAAMC,IAAI,iBACT+G,IAAWjB,WAAW,WAAWkB,QAAST,EAAOG,EAAI,IACpD,SAACO,GACD7kB,EAACkgB,IAAQrW,MAAM,gBAAgB2a,SAAS,OACvC,WAACM,IACA9xD,UAAWwC,EAAQ4tD,UACnBpK,KAAM,GACNsC,MAAO3lB,EAAOY,KAAK,CAAE,EACrB0nB,QAAQ,QACRgF,OAAQA,EAAO8B,GACfpoB,MAAOkoB,EACP3L,QAAS,IAAMiC,EAAS,CAAEmJ,EAAG,EAAE,WAE9B/Z,KAAkB,CAACyO,KAAK,mBAK5BkH,IAAQrW,MAAM,qBAAqB2a,SAAS,OAC5C,WAACQ,IACA3L,OAAQ4K,EAAY3K,OACpB5B,SAAUuM,EAAYgB,OACtBT,SAAS,UACTp6C,OAAQ,GACR86C,UAAW,GACXC,MAAO,IACPlC,OAAQA,EAAOmC,SACfC,WAAY,CACX/pD,KAAM9F,EAAQ+tD,SACd+B,SAAU9vD,EAAQ8tD,aAClBiC,YAAa/vD,EAAQouD,eACtB,EACA4B,gBAAiB,CAChB9B,WAAY,UACZx1C,SAAU,GACX,YAEA8xB,EAACglB,GAAKS,OAAM,CACX,WAACX,IACA9xD,UAAWwC,EAAQ4tD,UACnBpK,KAAM,GACNiF,QAAQ,WACRyH,SAAU,CAAE7tD,KAAM89B,EAAOY,KAAK,CAAE,EAAEl2B,GAAIs1B,EAAOY,KAAK,CAAE,EAAEovB,IAAK,GAAI,EAC/D1C,OAAO,KAENgB,WAAY3K,OACZtZ,EAACuK,GAAU,CAACyO,KAAK,SAEjB,EAACzO,KAAgC,CAACyO,KAAK,eAI1CxgB,EAACwsB,GAAKY,SAAQ,WACb5lB,EAACglB,GAAKa,KAAI,CACT9M,YAAcxO,KAAa,CAACyO,KAAK,WACjCrhD,UAAU,IACVypD,KAAK,kCACL7mD,OAAO,SACP,wBAGDylC,EAACglB,GAAKa,KAAI,CACT9M,YAAcxO,KAA0B,CAACyO,KAAK,WAC9CE,QAASgL,EAAY/K,KACrB,6BAGDnZ,EAACglB,GAAKa,KAAI,CACT9M,YAAcxO,KAAa,CAACyO,KAAK,WACjCrhD,UAAU,IACVypD,KAAK,8BAEL,WAACzD,IAAMC,IAAKuF,EAAQ2C,oBAClB/2C,QAAK/b,UAAWwC,EAAQuuD,gBAAiB,+BACzCh1C,QAAK,sDAQZ6yC,IACA5I,KAAK,QACLK,OAAQ6K,EAAY5K,OACpBF,MAAM,kBACNzC,QAASuN,EAAY3K,UAIzB,ECjJM6B,GAAYC,GAAa,CAAC,CAAE1lB,aAAc,CAC/CowB,KAAM,CACLC,KAAM,EACNpvB,QAAS,OACTgpB,WAAY,QACb,EACAqG,KAAM,CACL7vB,gBAAiB,OACjBQ,QAAS,cACTsvB,YAAa,OACbnxD,OAAQ,GACRowD,MAAO,GACP,UAAW,CACV/uB,gBAAiBT,EAAOwwB,GACzB,CACD,EACAC,WAAY,CACXrxD,OAAQ,GACR2hC,aAAc,EACd2vB,kBAAmB,QACnBC,kBAAmB,IACnBC,kBAAmB,cACnB,wBAAyB,CACxBnwB,gBAAiBowB,GAAQ7wB,EAAOM,MAAM,GAAI,IAC1CswB,kBAAmB5wB,EAAOM,MAAM,CAAE,CACnC,CACD,CACD,IAEMwwB,GAAY,CACjB,CACC5c,MAAO,WACPhzC,KAAM,GACP,EAEA,CACCgzC,MAAO,gBACPhzC,KAAM,gBACP,CACA,EAEY6vD,GAAU,WAChB,MAAElxD,WAAY4lD,KACdljB,EAAS3C,EAAY,IAAMZ,GAAYa,IAAG,GAC1C,CAAEmxB,YAAazzB,KAEf0zB,EAAexI,EAAQyI,QAAO3uB,IAAO4uB,gBAAP5uB,cAAuB,eAAkB,EAIzE6uB,OAFsBjc,GAA8BhB,GAAiBI,qBAAqB,GAErE,CAACuc,GAAU9c,KAAMruC,GAASA,EAAKzE,OAAS,aAAgB,GAChF4vD,GAAUle,KAAK,CACdsB,MAAO,aACPhzC,KAAM,cACP,EAGG+vD,GACHH,GAAUle,KAAK,CACdsB,MAAO,WACPhzC,KAAM,YACP,IAICmoD,GAAIhsD,UAAWwC,EAAQuwD,iBACtBiB,IAAOrvD,UAAWsvD,GAAM5mD,GAAG,IAAIk+C,EAAG,GAClC,WAACS,GAAIhsD,UAAWwC,EAAQywD,KACvB,WAACiB,IAAOlO,KAAM,SAIfyN,GAAU7lB,IAAKtlC,IACXojD,MACApjD,SAAKzE,OAAS,IACjB6nD,EAAWiI,EAASQ,WAAW,cAAgBR,IAAa,IAEjDA,IAASQ,WAAW7rD,EAAKzE,IAAI,IAIvCiiD,GACAyF,EAAE,OAEF5mD,UAAWsvD,GACX5mD,GAAI/E,EAAKzE,KACTonD,QAAQ,SACRjrD,UAAWwC,EAAQ4wD,WACnBgB,cAAa1I,EAEZpjD,WAAKuuC,OAPDvuC,EAAKzE,IAAI,EAUjB,IAGH,ECxFawwD,gBAAyD,CAAC,CAAEC,WAAUtO,OAAO,IAAMuO,KACzFC,QAAW,GAAGF,EAAS5c,SAAS,IAAI4c,EAAS3c,QAAQ,GAAGC,OACxD6c,EAAW/Z,GAAEga,WAAWF,GACxBG,EAAcF,EAAS/Y,OAAS,EAEhCkZ,EAAMJ,EAASzhB,WAAW,IAAK,EAAMyhB,IAAWF,EAASzc,UAAY,GACrEgd,EAASP,EAASna,UAAY,CAACwa,EAAcL,EAASla,SAAW0a,OAEvE,SACEC,IAAOR,MAAUvO,OAAYgP,IAAKH,EAAQD,MAAU3E,OAAO,KAAK3H,MAAM,QACrEqM,WAAcF,EAAW,IAG7B,CAAG,EC9BI,IAAIQ,IACV,SAAUA,EAAkB,CACzBA,EAAiB,OAAY,SAC7BA,EAAiB,OAAY,QACjC,GAAGA,KAAqBA,GAAmB,CAAE,EAAC,EACvC,IAAIC,IACV,SAAUA,EAAc,CACrBA,EAAa,KAAU,MAC3B,GAAGA,KAAiBA,GAAe,GAAG,ECR/B,IAAIC,IACV,SAAUA,EAAgB,CACvBA,EAAe,MAAW,QAC1BA,EAAe,OAAY,QAC/B,GAAGA,KAAmBA,GAAiB,GAAG,ECJnC,IAAIC,IACV,SAAUA,EAAkB,CACzBA,EAAiB,IAAS,MAC1BA,EAAiB,OAAY,SAC7BA,EAAiB,QAAa,SAClC,GAAGA,KAAqBA,GAAmB,GAAG,ECHvC,IAAIC,IACV,SAAUA,EAAiB,CACxBA,EAAgB,MAAW,OAC/B,GAAGA,KAAoBA,GAAkB,CAAE,EAAC,EACrC,IAAIC,IACV,SAAUA,EAAwB,CAC/BA,EAAuB,OAAY,QACvC,GAAGA,KAA2BA,GAAyB,GAAG,ECTnD,IAAIC,IACV,SAAUA,EAA4B,CACnCA,EAA2B,YAAiB,cAC5CA,EAA2B,SAAc,WACzCA,EAA2B,QAAa,UACxCA,EAA2B,QAAa,SAC5C,GAAGA,KAA+BA,GAA6B,CAAE,EAAC,EAC3D,IAAIC,IACV,SAAUA,EAA4B,CACnCA,EAA2B,QAAa,UACxCA,EAA2B,QAAa,UACxCA,EAA2B,OAAY,SACvCA,EAA2B,QAAa,UACxCA,EAA2B,OAAY,SACvCA,EAA2B,kBAAuB,kBACtD,GAAGA,KAA+BA,GAA6B,GAAG,ECf3D,IAAIC,IACV,SAAUA,EAAgB,CACvBA,EAAe,QAAa,UAC5BA,EAAe,UAAe,YAC9BA,EAAe,QAAa,SAChC,GAAGA,KAAmBA,GAAiB,GAAG,ECLnC,IAAIC,IACV,SAAUA,EAAyB,CAChCA,EAAwB,QAAa,UACrCA,EAAwB,KAAU,MACtC,GAAGA,KAA4BA,GAA0B,GAAG,ECJrD,IAAIC,IACV,SAAUA,EAAkB,CACzBA,EAAiB,KAAU,OAC3BA,EAAiB,MAAW,QAC5BA,EAAiB,QAAa,SAClC,GAAGA,KAAqBA,GAAmB,CAAE,EAAC,EACvC,IAAIC,IACV,SAAUA,EAAoB,CAC3BA,EAAmB,QAAa,UAChCA,EAAmB,WAAgB,aACnCA,EAAmB,QAAa,UAChCA,EAAmB,UAAe,WAClCA,EAAmB,kBAAuB,iBAC1CA,EAAmB,cAAmB,cAC1C,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAC3C,IAAIC,IACV,SAAUA,EAAsB,CAC7BA,EAAqB,KAAU,OAC/BA,EAAqB,OAAY,SACjCA,EAAqB,KAAU,OAC/BA,EAAqB,OAAY,QACrC,GAAGA,KAAyBA,GAAuB,GAAG,ECrB/C,IAAIC,IACV,SAAUA,EAAiB,CACxBA,EAAgB,OAAY,SAC5BA,EAAgB,MAAW,QAC3BA,EAAgB,IAAS,MACzBA,EAAgB,KAAU,OAC1BA,EAAgB,KAAU,MAC9B,GAAGA,KAAoBA,GAAkB,CAAE,EAAC,EACrC,IAAIC,IACV,SAAUA,EAAc,CACrBA,EAAa,OAAY,SACzBA,EAAa,MAAW,QACxBA,EAAa,IAAS,MACtBA,EAAa,KAAU,OACvBA,EAAa,KAAU,OACvBA,EAAa,OAAY,SACzBA,EAAa,QAAa,UAC1BA,EAAa,MAAW,OAC5B,GAAGA,KAAiBA,GAAe,CAAE,EAAC,EAEjCA,GAAa,OAAQD,GAAgB,OACrCC,GAAa,MAAOD,GAAgB,MACpCC,GAAa,IAAKD,GAAgB,IAClCC,GAAa,KAAMD,GAAgB,KACnCC,GAAa,KAAMD,GAAgB,KAEjC,IAAIE,IACV,SAAUA,EAAoB,CAC3BA,EAAmB,SAAc,UACrC,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAC3C,IAAIC,IACV,SAAUA,EAA0B,CACjCA,EAAyB,OAAY,SACrCA,EAAyB,MAAW,QACpCA,EAAyB,QAAa,SAC1C,GAAGA,KAA6BA,GAA2B,CAAE,EAAC,EACvD,IAAIC,IACV,SAAUA,EAAe,CACtBA,EAAc,KAAU,OACxBA,EAAc,KAAU,OACxBA,EAAc,YAAiB,cAC/BA,EAAc,cAAmB,eACrC,GAAGA,KAAkBA,GAAgB,CAAE,EAAC,EACjC,IAAIC,IACV,SAAUA,EAAsB,CAC7BA,EAAqB,QAAa,UAClCA,EAAqB,KAAU,OAC/BA,EAAqB,MAAW,QAChCA,EAAqB,QAAa,UAClCA,EAAqB,GAAQ,KAC7BA,EAAqB,SAAc,UACvC,GAAGA,KAAyBA,GAAuB,CAAE,EAAC,EAChBL,GAAgB,MAAOA,GAAgB,ICpDtE,IAAIM,IACV,SAAUA,EAA2B,CAClCA,EAA0B,WAAgB,aAC1CA,EAA0B,MAAW,OACzC,GAAGA,KAA8BA,GAA4B,GAAG,ECJzD,IAAIC,IACV,SAAUA,EAAsB,CAC7BA,EAAqB,0BAA+B,4BACpDA,EAAqB,8BAAmC,gCACxDA,EAAqB,wCAA6C,0CAClEA,EAAqB,yBAA8B,0BACvD,GAAGA,KAAyBA,GAAuB,GAAG,ECN/C,IAAIC,IACV,SAAUA,EAAoB,CAC3BA,EAAmB,OAAY,SAC/BA,EAAmB,KAAU,MACjC,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAC3C,IAAIC,IACV,SAAUA,EAAe,CACtBA,EAAc,OAAY,SAC1BA,EAAc,KAAU,OACxBA,EAAc,MAAW,OAC7B,GAAGA,KAAkBA,GAAgB,GAAG,ECVjC,IAAIC,IACV,SAAUA,EAAoB,CAC3BA,EAAmBA,EAAmB,IAAS,CAAC,EAAI,MACpDA,EAAmBA,EAAmB,KAAU,EAAE,EAAI,MAC1D,GAAGA,KAAuBA,GAAqB,GAAG,ECJ3C,IAAIC,IACV,SAAUA,EAA8B,CACrCA,EAA6B,WAAgB,aAC7CA,EAA6B,SAAc,UAC/C,GAAGA,KAAiCA,GAA+B,GAAG,ECJ/D,IAAIC,IACV,SAAUA,EAAkB,CACzBA,EAAiB,IAAS,MAC1BA,EAAiB,IAAS,MAC1BA,EAAiB,OAAY,QACjC,GAAGA,KAAqBA,GAAmB,GAAG,ECLvC,IAAIC,IACV,SAAUA,EAAoB,CAC3BA,EAAmB,KAAU,OAC7BA,EAAmB,KAAU,OAC7BA,EAAmB,OAAY,SAC/BA,EAAmB,OAAY,QACnC,GAAGA,KAAuBA,GAAqB,GAAG,ECN3C,IAAIC,IACV,SAAUA,EAAoB,CAC3BA,EAAmB,SAAc,wBACjCA,EAAmB,OAAY,uBAC/BA,EAAmB,OAAY,sBACnC,GAAGA,KAAuBA,GAAqB,GAAG,ECwB7CtB,GAAuB,OAAvB,GAA6DW,GAAyB,OC7BpF,IAAIY,IACV,SAAUA,EAAe,CACtBA,EAAc,MAAW,QACzBA,EAAc,QAAa,UAC3BA,EAAc,KAAU,MAC5B,GAAGA,KAAkBA,GAAgB,CAAE,EAAC,EACjC,IAAIC,IACV,SAAUA,EAAa,CACpBA,EAAYA,EAAY,iBAAsB,GAAI,EAAI,mBACtDA,EAAYA,EAAY,oBAAyB,IAAI,EAAI,sBACzDA,EAAYA,EAAY,mBAAwB,IAAI,EAAI,qBACxDA,EAAYA,EAAY,UAAe,IAAI,EAAI,YAC/CA,EAAYA,EAAY,WAAgB,IAAI,EAAI,aAChDA,EAAYA,EAAY,qBAA0B,IAAI,EAAI,uBAC1DA,EAAYA,EAAY,uBAA4B,IAAI,EAAI,yBAC5DA,EAAYA,EAAY,6BAAkC,IAAI,EAAI,+BAClEA,EAAYA,EAAY,kBAAuB,IAAI,EAAI,oBACvDA,EAAYA,EAAY,WAAgB,IAAI,EAAI,aAChDA,EAAYA,EAAY,sBAA2B,IAAI,EAAI,wBAC3DA,EAAYA,EAAY,qBAA0B,IAAI,EAAI,uBAC1DA,EAAYA,EAAY,yBAA8B,IAAI,EAAI,2BAC9DA,EAAYA,EAAY,yBAA8B,IAAI,EAAI,2BAC9DA,EAAYA,EAAY,mCAAwC,IAAI,EAAI,qCACxEA,EAAYA,EAAY,sBAA2B,IAAI,EAAI,wBAC3DA,EAAYA,EAAY,0BAA+B,IAAI,EAAI,4BAC/DA,EAAYA,EAAY,wBAA6B,IAAI,EAAI,0BAC7DA,EAAYA,EAAY,yBAA8B,IAAI,EAAI,2BAC9DA,EAAYA,EAAY,yBAA8B,IAAI,EAAI,2BAC9DA,EAAYA,EAAY,wBAA6B,IAAI,EAAI,0BAC7DA,EAAYA,EAAY,yBAA8B,IAAI,EAAI,2BAC9DA,EAAYA,EAAY,mBAAwB,IAAI,EAAI,qBACxDA,EAAYA,EAAY,6BAAkC,IAAI,EAAI,+BAClEA,EAAYA,EAAY,YAAiB,IAAI,EAAI,cACjDA,EAAYA,EAAY,wBAA6B,IAAI,EAAI,yBACjE,GAAGA,KAAgBA,GAAc,GAAG,EClC7B,IAAIC,IACV,SAAUA,EAAsB,CAC7BA,EAAqB,KAAU,OAC/BA,EAAqB,iBAAsB,kBAC3CA,EAAqB,OAAY,SACjCA,EAAqB,eAAoB,gBACzCA,EAAqB,sBAA2B,uBAChDA,EAAqB,mBAAwB,mBACjD,GAAGA,KAAyBA,GAAuB,GAAG,ECR/C,IAAIC,IACV,SAAUA,EAAgB,CACvBA,EAAe,QAAa,UAC5BA,EAAe,QAAa,UAC5BA,EAAe,MAAW,QAC1BA,EAAe,KAAU,OACzBA,EAAe,MAAW,QAC1BA,EAAe,OAAY,QAC/B,GAAGA,KAAmBA,GAAiB,CAAE,EAAC,EACnC,IAAIC,IACV,SAAUA,EAAU,CACjBA,EAAS,OAAY,SACrBA,EAAS,QAAa,UACtBA,EAAS,UAAe,YACxBA,EAAS,SAAc,WACvBA,EAAS,OAAY,SACrBA,EAAS,SAAc,WACvBA,EAAS,OAAY,QACzB,GAAGA,KAAaA,GAAW,CAAE,EAAC,EACvB,IAAIC,IACV,SAAUA,EAAgB,CACvBA,EAAe,QAAa,UAC5BA,EAAe,QAAa,UAC5BA,EAAe,MAAW,OAC9B,GAAGA,KAAmBA,GAAiB,CAAE,EAAC,EACnC,IAAIC,IACV,SAAUA,EAAe,CACtBA,EAAc,QAAa,UAC3BA,EAAc,UAAe,WACjC,GAAGA,KAAkBA,GAAgB,CAAE,EAAC,EACjC,IAAIC,IACV,SAAUA,EAAiB,CACxBA,EAAgB,KAAU,OAC1BA,EAAgB,GAAQ,IAC5B,GAAGA,KAAoBA,GAAkB,CAAE,EAAC,EACrC,IAAIC,IACV,SAAUA,EAAa,CACpBA,EAAY,MAAW,IACvBA,EAAY,OAAY,IACxBA,EAAY,MAAW,IACvBA,EAAY,OAAY,IACxBA,EAAY,MAAW,IACvBA,EAAY,KAAU,MAC1B,GAAGA,KAAgBA,GAAc,CAAE,EAAC,EAC7B,IAAIC,IACV,SAAUA,EAAkB,CACzBA,EAAiB,IAAS,MAC1BA,EAAiB,QAAa,UAC9BA,EAAiB,QAAa,UAC9BA,EAAiB,OAAY,SAC7BA,EAAiB,OAAY,SAC7BA,EAAiB,QAAa,UAC9BA,EAAiB,UAAe,YAChCA,EAAiB,SAAc,WAC/BA,EAAiB,OAAY,SAC7BA,EAAiB,SAAc,UACnC,GAAGA,KAAqBA,GAAmB,GAAG,ECxDvC,IAAIC,IACV,SAAUA,EAAe,CACtBA,EAAc,QAAa,UAC3BA,EAAc,OAAY,SAC1BA,EAAc,QAAa,UAC3BA,EAAc,UAAe,YAC7BA,EAAc,OAAY,SAC1BA,EAAc,QAAa,UAC3BA,EAAc,SAAc,UAChC,GAAGA,KAAkBA,GAAgB,GAAG,ECTjC,IAAIC,GACV,SAAUA,EAAoB,CAC3BA,EAAmB,OAAY,SAC/BA,EAAmB,KAAU,OAC7BA,EAAmB,UAAe,YAClCA,EAAmB,OAAY,SAC/BA,EAAmB,SAAc,WACjCA,EAAmB,KAAU,OAC7BA,EAAmB,KAAU,OAC7BA,EAAmB,OAAY,SAC/BA,EAAmB,OAAY,SAC/BA,EAAmB,WAAgB,aACnCA,EAAmB,iBAAsB,mBACzCA,EAAmB,MAAW,QAC9BA,EAAmB,KAAU,OAC7BA,EAAmB,WAAgB,aACnCA,EAAmB,cAAmB,gBACtCA,EAAmB,SAAc,WACjCA,EAAmB,YAAiB,cACpCA,EAAmB,eAAoB,iBACvCA,EAAmB,QAAa,UAChCA,EAAmB,WAAgB,aACnCA,EAAmB,WAAgB,aACnCA,EAAmB,UAAe,YAClCA,EAAmB,WAAgB,aACnCA,EAAmB,YAAiB,cACpCA,EAAmB,KAAU,OAC7BA,EAAmB,WAAgB,YACvC,GAAGA,IAAuBA,EAAqB,CAAE,EAAC,EAC3C,IAAIC,IACV,SAAUA,EAAqB,CAC5BA,EAAoB,QAAa,UACjCA,EAAoB,QAAa,UACjCA,EAAoB,QAAa,UACjCA,EAAoB,SAAc,WAClCA,EAAoB,WAAgB,aACpCA,EAAoB,SAAc,WAClCA,EAAoB,SAAc,WAClCA,EAAoB,WAAgB,aACpCA,EAAoB,IAAS,MAC7BA,EAAoB,QAAa,UACjCA,EAAoB,QAAa,gBACjCA,EAAoB,OAAY,SAChCA,EAAoB,MAAW,QAC/BA,EAAoB,WAAgB,aACpCA,EAAoB,WAAgB,aACpCA,EAAoB,WAAgB,aACpCA,EAAoB,KAAU,aAC9BA,EAAoB,UAAe,YACnCA,EAAoB,aAAkB,eAC1C,GAAGA,KAAwBA,GAAsB,CAAE,EAAC,EAC7C,IAAIC,IACV,SAAUA,EAAmB,CAC1BA,EAAkB,MAAW,QAC7BA,EAAkB,MAAW,QAC7BA,EAAkB,MAAW,QAC7BA,EAAkB,WAAgB,cAClCA,EAAkB,IAAS,MAC3BA,EAAkB,OAAY,SAC9BA,EAAkB,OAAY,SAC9BA,EAAkB,QAAa,UAC/BA,EAAkB,SAAc,WAChCA,EAAkB,QAAa,cAC/BA,EAAkB,SAAc,YAChCA,EAAkB,WAAgB,aAClCA,EAAkB,aAAkB,iBACpCA,EAAkB,OAAY,SAC9BA,EAAkB,OAAY,SAC9BA,EAAkB,OAAY,SAC9BA,EAAkB,eAAoB,kBACtCA,EAAkB,KAAU,WAC5BA,EAAkB,UAAe,WACrC,GAAGA,KAAsBA,GAAoB,CAAE,EAAC,EACzC,IAAIC,IACV,SAAUA,EAAoB,CAC3BA,EAAmB,MAAW,QAC9BA,EAAmB,QAAa,UAChCA,EAAmB,QAAa,UAChCA,EAAmB,WAAgB,YACvC,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAC3C,IAAIC,IACV,SAAUA,EAAoB,CAC3BA,EAAmB,IAAS,MAC5BA,EAAmB,KAAU,OAC7BA,EAAmB,KAAU,OAC7BA,EAAmB,UAAe,aAClCA,EAAmB,YAAiB,cACxC,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAC3C,IAAIC,IACV,SAAUA,EAAqB,CAC5BA,EAAoB,KAAU,MAClC,GAAGA,KAAwBA,GAAsB,GAAG,ECzFhDL,EAAmB,OACnBA,EAAmB,UACnBA,EAAmB,MACnBA,EAAmB,SACnBA,EAAmB,eCLvB,MAAMM,GAAiB,CACnB,CACI,IAAKN,EAAmB,KACxB,YAAa,qBACb,YAAa,6EACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,WACxB,YAAa,cACb,KAAM,SACN,SAAU,EACb,CACL,EACMO,GAAgB,CAClB,CACI,IAAKP,EAAmB,KACxB,YAAa,OACb,KAAM,SACN,SAAU,EACb,CACL,EACMQ,GAAiB,GACK,CAEfR,EAAmB,OAMnBA,EAAmB,UAK5B,GAAGM,EACP,EACO,MAAMG,GAAgB,CACzB,CACI,IAAKT,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,QACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,KACxB,YAAa,YACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,SACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaI,GAAgB,CACzB,CACI,IAAKV,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaK,GAAc,CACvB,CACI,IAAKX,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACaK,GAAiB,CAC1B,CACI,IAAKZ,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaO,GAAmB,CAC5B,CACI,IAAKb,EAAmB,KACxB,YAAa,OACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,SACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,KACxB,YAAa,OACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,KACxB,YAAa,OACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,SACb,KAAM,UACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,WACxB,YAAa,cACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,WACxB,YAAa,cACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,oBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,oBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,WACxB,YAAa,qBACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaQ,GAAiB,CAC1B,CACI,IAAKd,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaS,GAAiB,CAC1B,CACI,IAAKf,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,WACxB,YAAa,eACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaU,GAAe,CACxB,CACI,IAAKhB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaW,GAAc,CACvB,CACI,IAAKjB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaY,GAAkB,CAC3B,CACI,IAAKlB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,KACb,YAAa,yDACb,KAAM,UACN,SAAU,EACb,EACD,GAAGM,EACP,EACaa,GAAgB,CACzB,CACI,IAAKnB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACac,GAAmB,CAC5B,CACI,IAAKpB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACae,GAAY,CACrB,CACI,IAAKrB,EAAmB,OACxB,YAAa,gBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,oBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,SACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACagB,GAAmB,CAC5B,CACI,IAAKtB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaiB,GAAc,CACvB,CACI,IAAKvB,EAAmB,WACxB,YAAa,cACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,MACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACaiB,GAAc,CACvB,CACI,IAAKxB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACakB,GAAe,CACxB,CACI,IAAKzB,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACamB,GAAiB,CAC1B,CACI,IAAK1B,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,CACL,EACa2B,GAAmB,CAC5B,CACI,IAAK3B,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,CACL,EACa4B,GAAY,CACrB,CACI,IAAK5B,EAAmB,OACxB,YAAa,gBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,oBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,CACL,EACa6B,GAAe,CACxB,CACI,IAAK7B,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,iBACxB,YAAa,qBACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACauB,GAAe,CACxB,CACI,IAAK9B,EAAmB,WACxB,YAAa,cACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,MACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACawB,GAAc,CACvB,CACI,IAAK/B,EAAmB,cACxB,YAAa,iBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,SACxB,YAAa,YACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,gBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,YACxB,YAAa,eACb,YAAa,kFACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,KACxB,YAAa,OACb,KAAM,SACN,SAAU,EACb,CACL,EACagC,GAAY,CACrB,CACI,IAAKhC,EAAmB,eACxB,YAAa,qCACb,KAAM,OACN,SAAU,EACb,EACD,GAAGQ,EACP,EACayB,GAAa,CACtB,CACI,IAAKjC,EAAmB,OACxB,YAAa,eACb,KAAM,OACN,SAAU,EACb,EACD,GAAGQ,EACP,EACa0B,GAAoB,CAC7B,CACI,IAAKlC,EAAmB,WACxB,YAAa,cACb,KAAM,SACN,YAAa,wDACb,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,kBACb,KAAM,SACN,YAAa,yCACb,SAAU,EACb,EACD,GAAGQ,EACP,EACa2B,GAAkB,CAC3B,CACI,IAAKnC,EAAmB,cACxB,YAAa,iBACb,KAAM,OACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,UACb,KAAM,OACN,SAAU,EACb,EACD,GAAGQ,EACP,EACa4B,GAAa,CACtB,CACI,IAAKpC,EAAmB,UACxB,YAAa,cACb,KAAM,OACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,SACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,YACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,cACxB,YAAa,YACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,OACxB,YAAa,aACb,KAAM,SACN,SAAU,EACb,EACD,GAAGQ,EACP,EACa6B,GAAgB,CACzB,CACI,IAAKrC,EAAmB,KACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,SACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,CACL,EACasC,GAAiB,CAC1B,CACI,IAAKtC,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACagC,GAAmB,CAC5B,CACI,IAAKvC,EAAmB,SACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACakC,GAAmB,CAC5B,CACI,IAAKxC,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,QACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACakC,GAAqB,CAC9B,CACI,IAAKzC,EAAmB,OACxB,YAAa,UACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,QACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,GAAGM,EACP,EACaoC,GAAqB,CAC9B,CACI,IAAK1C,EAAmB,KACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,SACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACaoC,GAAe,CACxB,CACI,IAAK3C,EAAmB,KACxB,YAAa,OACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,KACxB,YAAa,OACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,KACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,SACxB,YAAa,WACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACaqC,GAAe,CACxB,CACI,IAAK5C,EAAmB,OACxB,YAAa,gBACb,KAAM,SACN,SAAU,EACb,EACD,CACI,IAAKA,EAAmB,UACxB,YAAa,gBACb,KAAM,SACN,SAAU,EACb,EACD,GAAGO,EACP,EACasC,GAAmB,CAC5B,CACI,IAAK7C,EAAmB,K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wE,UACG,OAAOA,GAAQ,SACzB,GAAI,MAAM,QAAQA,CAAG,EACpB,IAAKpvD,EAAE,EAAGA,EAAIovD,EAAI,OAAQpvD,IACrBovD,EAAIpvD,CAAC,IACJusC,EAAI4iB,GAAMC,EAAIpvD,CAAC,CAAC,KACnB5gB,IAAQA,GAAO,KACfA,GAAOmtD,OAKV,KAAKvsC,KAAKovD,EACLA,EAAIpvD,CAAC,IACR5gB,IAAQA,GAAO,KACfA,GAAO4gB,GAMX,OAAO5gB,CACR,CAEe,SAAAiwE,IAAY,CAE1B,QADIzxE,EAAE,EAAG0xE,EAAKC,EAAGnwE,EAAI,GACdxB,EAAI,UAAU,SAChB0xE,EAAM,UAAU1xE,GAAG,KAClB2xE,EAAIJ,GAAMG,CAAG,KAChBlwE,IAAQA,GAAO,KACfA,GAAOmwE,GAIV,OAAOnwE,CACR,CCvCA,MAAMowE,GAAiB,CACrB,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,IAAK,CACH,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,KAAM,CACJ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EACD,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD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aC,GAAK,CACd,aAAc,CACV,cAAe,UACf,cAAe,uBACf,UAAW,cACX,SAAU,YACV,kBAAmB,oCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,YACf,cAAe,+BACf,UAAW,iBACX,SAAU,SACV,kBAAmB,iCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,kCACf,UAAW,+BACX,SAAU,SACV,kBAAmB,4CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,8BACf,UAAW,gBACX,SAAU,SACV,kBAAmB,+BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,WACf,cAAe,iCACf,UAAW,gBACX,SAAU,YACV,kBAAmB,uCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,UACf,cAAe,+BACf,UAAW,iBACX,SAAU,WACV,kBAAmB,wCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,aACf,cAAe,mBACf,UAAW,eACX,SAAU,SACV,kBAAmB,gCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,2BACf,UAAW,UACX,SAAU,WACV,kBAAmB,sCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,gBACf,cAAe,0BACf,UAAW,uBACX,SAAU,eACV,kBAAmB,wCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,WACf,cAAe,gCACf,UAAW,UACX,SAAU,YACV,kBAAmB,mCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,uBACf,UAAW,YACX,SAAU,gBACV,kBAAmB,2BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,qBACf,cAAe,6BACf,UAAW,MACX,SAAU,gBACV,kBAAmB,yCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,iCACf,UAAW,oBACX,SAAU,YACV,kBAAmB,2CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,gBACf,cAAe,mBACf,UAAW,aACX,SAAU,WACV,cAAe,iBACf,WAAY,eACZ,aAAc,iBACd,kBAAmB,6BACtB,EACD,KAAM,IACV,ECZaC,GAAK,CACd,aAAc,CACV,cAAe,iBACf,cAAe,yBACf,UAAW,oBACX,SAAU,gBACV,kBAAmB,iCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,sBACf,cAAe,oCACf,UAAW,aACX,SAAU,YACV,kBAAmB,+CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,UACf,cAAe,uCACf,UAAW,oBACX,SAAU,UACV,kBAAmB,2CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,mBACf,UAAW,2BACX,SAAU,YACV,kBAAmB,2CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,gBACf,cAAe,yBACf,UAAW,eACX,SAAU,aACV,kBAAmB,2CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,SACf,cAAe,gCACf,UAAW,mBACX,SAAU,YACV,kBAAmB,uCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,gBACf,cAAe,wBACf,UAAW,oBACX,SAAU,UACV,kBAAmB,sCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,QACf,cAAe,kCACf,UAAW,iBACX,SAAU,WACV,kBAAmB,sCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,SACf,cAAe,gBACf,UAAW,cACX,SAAU,SACV,kBAAmB,iCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,UACf,cAAe,+BACf,UAAW,iBACX,SAAU,WACV,kBAAmB,wCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,aACf,cAAe,2BACf,UAAW,aACX,SAAU,WACV,kBAAmB,sCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,gBACf,cAAe,kCACf,UAAW,YACX,SAAU,cACV,kBAAmB,8BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,8BACf,UAAW,cACX,SAAU,iBACV,kBAAmB,mCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,aACf,cAAe,4BACf,UAAW,sBACX,SAAU,aACV,kBAAmB,2CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,QACf,cAAe,2BACf,UAAW,kBACX,SAAU,aACV,kBAAmB,6BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,YACf,cAAe,yBACf,UAAW,aACX,SAAU,eACV,kBAAmB,sCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,KACf,cAAe,WACf,UAAW,KACX,SAAU,KACV,kBAAmB,mBACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,mCACf,UAAW,uBACX,SAAU,eACV,kBAAmB,gCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,kBACf,cAAe,kCACf,UAAW,gBACX,SAAU,YACV,kBAAmB,oEACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,gBACf,UAAW,cACX,SAAU,WACV,kBAAmB,uCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,KACf,cAAe,eACf,UAAW,UACX,SAAU,KACV,kBAAmB,uBACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,oBACf,cAAe,qCACf,UAAW,qBACX,SAAU,WACV,kBAAmB,mCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,uBACf,UAAW,sBACX,SAAU,aACV,kBAAmB,qCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,aACf,cAAe,gCACf,UAAW,UACX,SAAU,aACV,kBAAmB,8BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,aACf,cAAe,2BACf,UAAW,aACX,SAAU,cACV,kBAAmB,oCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,sCACf,UAAW,aACX,SAAU,eACV,kBAAmB,wCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,WACf,cAAe,qCACf,UAAW,iBACX,SAAU,WACV,kBAAmB,sCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,gBACf,cAAe,sCACf,UAAW,gBACX,SAAU,UACV,kBAAmB,2CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,UACf,cAAe,uBACf,UAAW,YACX,SAAU,gBACV,cAAe,gBACf,WAAY,gBACZ,aAAc,iBACd,kBAAmB,6BACtB,EACD,KAAM,IACV,ECZaC,GAAK,CACd,aAAc,CACV,cAAe,WACf,cAAe,mCACf,UAAW,iBACX,SAAU,WACV,kBAAmB,kCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,4BACf,UAAW,mBACX,SAAU,eACV,kBAAmB,kCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,YACf,cAAe,mCACf,UAAW,kBACX,SAAU,QACV,kBAAmB,sCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,WACf,cAAe,+BACf,UAAW,gBACX,SAAU,WACV,kBAAmB,mCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,oCACf,UAAW,kBACX,SAAU,aACV,kBAAmB,4CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,wBACf,UAAW,mBACX,SAAU,gBACV,kBAAmB,kCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,aACf,cAAe,iCACf,UAAW,eACX,SAAU,SACV,kBAAmB,8BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,+BACf,UAAW,gBACX,SAAU,YACV,kBAAmB,0BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,YACf,cAAe,4BACf,UAAW,kBACX,SAAU,aACV,kBAAmB,4CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,YACf,cAAe,+BACf,UAAW,iBACX,SAAU,UACV,kBAAmB,iCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,aACf,cAAe,+BACf,UAAW,YACX,SAAU,UACV,kBAAmB,+BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,gBACf,cAAe,oCACf,UAAW,eACX,SAAU,cACV,kBAAmB,iCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,YACf,cAAe,kCACf,UAAW,gBACX,SAAU,YACV,kBAAmB,0CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,cACf,cAAe,yBACf,UAAW,WACX,SAAU,gBACV,cAAe,qBACf,WAAY,mBACZ,aAAc,oBACd,kBAAmB,4BACtB,EACD,KAAM,IACV,ECZaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,0CACf,UAAW,wBACX,SAAU,aACV,kBAAmB,4CACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,iBACf,cAAe,4BACf,UAAW,iBACX,SAAU,eACV,kBAAmB,uCACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,kCACf,UAAW,gBACX,SAAU,aACV,kBAAmB,6BACtB,EACD,KAAM,IACV,ECTaC,GAAK,CACd,aAAc,CACV,cAAe,eACf,cAAe,mCACf,UAAW,gBACX,SAAU,WACV,kBAAmB,gCACtB,EACD,KAAM,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","names":["objectToString","isError","wat","isInstanceOf","isBuiltin","className","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","isElement","isRegExp","isThenable","isSyntheticEvent","isNaN","base","isGlobalObj","obj","GLOBAL_OBJ","getGlobalObject","getGlobalSingleton","name","creator","gbl","__SENTRY__","WINDOW","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","elem","options","currentElem","MAX_TRAVERSE_HEIGHT","out","height","len","separator","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","el","classes","key","attr","i","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","getLocationHref","getDomElement","selector","SentryError","message","logLevel","DSN_REGEX","isValidProtocol","protocol","dsnToString","dsn","withPassword","host","path","pass","port","projectId","publicKey","dsnFromString","str","match","lastPath","split","projectMatch","dsnFromComponents","components","validateDsn","component","makeDsn","from","PREFIX","CONSOLE_LEVELS","consoleSandbox","callback","originalConsole","wrappedLevels","level","originalWrappedFunc","makeLogger","enabled","logger","args","truncate","max","safeJoin","input","delimiter","output","value","isMatchingPattern","pattern","requireExactStringMatch","stringMatchesSomePattern","testString","patterns","fill","source","replacementFactory","original","wrapped","markFunctionWrapped","addNonEnumerableProperty","proto","getOriginalFunction","func","urlEncode","object","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","target","extractedProps","property","extractExceptionKeysForMessage","exception","maxLength","keys","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","memoizationMap","memoVal","returnValue","item","STACKTRACE_FRAME_LIMIT","WEBPACK_ERROR_REGEXP","createStackParser","parsers","sortedParsers","a","b","p","stack","skipFirst","frames","lines","line","cleanedLine","parser","frame","stripSentryFramesAndReverse","stackParserFromStackParserOptions","stackParser","localStack","lastFrameFunction","firstFrameFunction","defaultFunctionName","getFunctionName","fn","supportsFetch","isNativeFetch","supportsNativeFetch","result","doc","sandbox","err","supportsHistory","chrome","isChromePackagedApp","hasHistoryApi","SENTRY_XHR_DATA_KEY","handlers","instrumented","instrument","type","instrumentConsole","instrumentDOM","instrumentXHR","instrumentFetch","instrumentHistory","instrumentError","instrumentUnhandledRejection","addInstrumentationHandler","triggerHandlers","data","handler","e","originalConsoleMethod","originalFetch","method","url","parseFetchArgs","handlerData","response","error","hasProp","prop","getUrlFromResource","resource","fetchArgs","arg","xhrproto","originalOpen","xhrInfo","onreadystatechangeHandler","readyStateArgs","setRequestHeaderArgs","header","originalSend","sentryXhrData","lastHref","oldOnPopState","to","historyReplacementFunction","originalHistoryFunction","debounceDuration","debounceTimerID","lastCapturedEvent","shouldShortcircuitPreviousDebounce","previous","current","shouldSkipDOMEvent","event","makeDOMEventHandler","globalListener","triggerDOMHandler","globalDOMEventHandler","originalAddEventListener","listener","handlerForType","originalRemoveEventListener","_oldOnErrorHandler","msg","column","_oldOnUnhandledRejectionHandler","memoBuilder","hasWeakSet","inner","memoize","unmemoize","uuid4","crypto","getRandomByte","c","getFirstException","getEventDescription","eventId","firstException","addExceptionTypeValue","values","addExceptionMechanism","newMechanism","defaultMechanism","currentMechanism","mergedData","checkOrSetAlreadyCaught","arrayify","maybeArray","isBrowserBundle","getSDKSource","isNodeEnv","dynamicRequire","mod","request","normalize","depth","maxProperties","visit","normalizeToSize","maxSize","normalized","jsonSize","memo","stringified","stringifyValue","overriddenDepth","valueWithToJSON","jsonValue","numAdded","visitable","visitKey","visitValue","getConstructorName","prototype","utf8Length","States","RESOLVED","REJECTED","resolvedSyncPromise","SyncPromise","resolve","rejectedSyncPromise","reason","_","reject","executor","onfulfilled","onrejected","val","onfinally","isRejected","state","cachedHandlers","makePromiseBuffer","limit","buffer","isReady","remove","task","add","taskProducer","drain","timeout","counter","capturedSetTimeout","parseUrl","query","fragment","validSeverityLevels","severityLevelFromString","dateTimestampSource","getBrowserPerformance","performance","timeOrigin","getNodePerformance","module","platformPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","timestampWithMs","browserPerformanceTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","navigationStartDelta","navigationStartIsReliable","TRACEPARENT_REGEXP","extractTraceparentData","traceparent","matches","parentSampled","createEnvelope","headers","items","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","envelopeItem","envelopeItemType","encodeUTF8","textEncoder","serializeEnvelope","envHeaders","parts","append","next","itemHeaders","payload","stringifiedPayload","concatBuffers","buffers","totalLength","acc","buf","merged","offset","createAttachmentEnvelopeItem","attachment","ITEM_TYPE_TO_DATA_CATEGORY_MAP","envelopeItemTypeToDataCategory","getSdkMetadataForEnvelopeHeader","metadataOrEvent","version","createEventEnvelopeHeaders","sdkInfo","tunnel","dynamicSamplingContext","createClientReportEnvelope","discarded_events","timestamp","clientReportItem","DEFAULT_RETRY_AFTER","parseRetryAfterHeader","now","headerDelay","headerDate","disabledUntil","limits","category","isRateLimited","updateRateLimits","statusCode","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","delay","BAGGAGE_HEADER_NAME","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","MAX_BAGGAGE_STRING_LENGTH","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","curr","currBaggageObject","baggageHeaderToObject","nonPrefixedKey","dynamicSamplingContextToSentryBaggageHeader","sentryPrefixedDSC","dscKey","dscValue","objectToBaggageHeader","baggageEntry","keyOrValue","objectKey","objectValue","currentIndex","newBaggageHeader","DEFAULT_ENVIRONMENT","makeSession","context","startingTime","session","sessionToJSON","updateSession","duration","closeSession","status","DEFAULT_MAX_BREADCRUMBS","Scope","scope","newScope","user","requestSession","tags","extras","extra","fingerprint","span","captureContext","updatedScope","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","hint","transaction","transactionName","getGlobalEventProcessors","newData","processors","index","processor","final","addGlobalEventProcessor","API_VERSION","DEFAULT_BREADCRUMBS","Hub","client","_version","top","syntheticException","beforeBreadcrumb","finalBreadcrumb","oldHub","makeMain","integration","customSamplingContext","endSession","release","environment","userAgent","currentSession","sentry","getMainCarrier","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","getGlobalHub","hasHubOnCarrier","carrier","hasTracingEnabled","maybeOptions","getActiveTransaction","maybeHub","errorsInstrumented","registerErrorInstrumentation","errorCallback","activeTransaction","SpanRecorder","maxlen","Span","spanContext","childSpan","opStr","nameStr","idStr","logMessage","httpStatus","spanStatus","spanStatusfromHttpCode","endTimestamp","sampledString","Transaction","transactionContext","incomingDynamicSamplingContext","newName","unit","newMetadata","finishedSpans","s","prev","metadata","public_key","maybeSampleRate","sample_rate","user_segment","dsc","TRACING_DEFAULTS","FINISH_REASON_TAG","IDLE_TRANSACTION_FINISH_REASONS","IdleTransactionSpanRecorder","_pushActivity","_popActivity","transactionSpanId","IdleTransaction","_idleHub","_idleTimeout","_finalTimeout","_heartbeatInterval","_onScope","keepSpan","pushActivity","id","popActivity","restartOnChildSpanChange","spanId","heartbeatString","traceHeaders","sample","samplingContext","sampleRate","isValidSampleRate","rate","_startTransaction","configInstrumenter","transactionInstrumenter","startIdleTransaction","idleTimeout","finalTimeout","onScope","heartbeatInterval","addTracingExtensions","captureException","captureMessage","setTag","setUser","withScope","SENTRY_API_VERSION","getBaseApiEndpoint","_getIngestEndpoint","_encodedAuth","getEnvelopeEndpointWithUrlEncodedAuth","tunnelOrOptions","getReportDialogEndpoint","dsnLike","dialogOptions","endpoint","encodedOptions","enhanceEventWithSdkInfo","createSessionEnvelope","envelopeHeaders","createEventEnvelope","eventType","installedIntegrations","filterDuplicates","integrations","integrationsByName","currentInstance","existingInstance","k","getIntegrationsToSetup","defaultIntegrations","userIntegrations","finalIntegrations","debugIndex","findIndex","debugInstance","setupIntegrations","integrationIndex","setupIntegration","arr","prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","applyClientOptions","applyIntegrationsMetadata","applyDebugMetadata","finalScope","attachments","evt","normalizeEvent","dist","maxValueLength","debugIdStackParserCache","debugIdMap","debugIdStackFramesCache","cachedDebugIdStackFrameCache","filenameDebugIdMap","debugIdStackTrace","parsedStack","cachedParsedStack","stackFrame","errorFileNames","images","filename","integrationNames","maxBreadth","ALREADY_SEEN_ERROR","BaseClient","promisedEvent","transport","clientFinished","transportFlushed","integrationId","env","promise","sendResponse","_event","hook","rest","crashed","errored","exceptions","ex","mechanism","sessionNonTerminal","ticked","tick","interval","finalEvent","sentryError","isTransaction","isTransactionEvent","beforeSendLabel","dataCategory","processBeforeSend","_validateBeforeSendResult","processedEvent","transactionInfo","outcomes","beforeSendResult","invalidValueError","beforeSend","beforeSendTransaction","initAndBind","clientClass","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","makeRequest","rateLimits","flush","send","filteredEnvelopeItems","envelopeItemDataCategory","getEventForEnvelopeItem","filteredEnvelope","recordEnvelopeLoss","requestTask","SDK_VERSION","originalFunctionToString","FunctionToString","DEFAULT_IGNORE_ERRORS","InboundFilters","_options","eventProcess","self","clientOptions","_mergeOptions","_shouldDropEvent","internalOptions","_isSentryError","_isIgnoredError","_isIgnoredTransaction","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreErrors","_getPossibleEventMessages","ignoreTransactions","denyUrls","allowUrls","_getLastValidUrl","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","before","wrapper","sentryWrapped","wrappedArguments","exceptionFromError","parseStackFrames","extractMessage","eventFromPlainObject","isUnhandledRejection","eventFromError","stacktrace","popSize","getPopSize","reactMinifiedRegexp","eventFromException","attachStacktrace","eventFromUnknownInput","eventFromMessage","eventFromString","domException","MAX_ALLOWED_STRING_LENGTH","BREADCRUMB_INTEGRATION_ID","Breadcrumbs","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","dom","_innerDomBreadcrumb","_isEvent","startTimestamp","status_code","body","parsedLoc","parsedFrom","parsedTo","createUserFeedbackEnvelope","feedback","createUserFeedbackEnvelopeItem","BrowserClient","sdkSource","breadcrumbIntegration","cachedFetchImpl","getNativeFetchImplementation","document","fetchImpl","contentWindow","clearCachedFetchImplementation","makeFetchTransport","nativeFetch","pendingBodySize","pendingCount","requestSize","requestOptions","XHR_READYSTATE_DONE","makeXHRTransport","xhr","UNKNOWN_FUNCTION","CHROME_PRIORITY","WINJS_PRIORITY","GECKO_PRIORITY","createFrame","lineno","colno","chromeRegex","chromeEvalRegex","subMatch","extractSafariExtensionDetails","chromeStackLineParser","geckoREgex","geckoEvalRegex","gecko","geckoStackLineParser","winjsRegex","winjs","winjsStackLineParser","defaultStackLineParsers","defaultStackParser","isSafariExtension","isSafariWebExtension","GlobalHandlers","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","installFunc","globalHandlerLog","getHubAndOptions","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","addMechanismAndCapture","_eventFromRejectionWithPrimitive","ERROR_TYPES_RE","groups","ev","ev0","ev0s","ev0sf","DEFAULT_EVENT_TARGET","TryCatch","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","originalCallback","wrapOptions","originalFunction","globalObject","eventName","wrappedEventHandler","originalEventHandler","DEFAULT_KEY","DEFAULT_LIMIT","LinkedErrors","_handler","linkedErrors","_walkErrorTree","HttpContext","referrer","Dedupe","eventProcessor","currentEvent","previousEvent","_isSameMessageEvent","_isSameExceptionEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","previousException","_getExceptionFromEvent","currentException","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","previousFingerprint","Integrations.InboundFilters","Integrations.FunctionToString","init","startSessionTracking","showReportDialog","script","injectionPoint","startSessionOnHub","registerBackgroundTabDetection","statusType","bindReporter","metric","reportAllChanges","prevValue","delta","forceReport","generateUniqueID","getNavigationEntryFromPerformanceTiming","timing","navigationEntry","getNavigationEntry","getActivationStart","navEntry","initMetric","navigationType","observe","opts","po","list","onHidden","cb","once","onHiddenOrPageHide","onCLS","onReport","report","sessionValue","sessionEntries","handleEntries","entries","entry","firstSessionEntry","lastSessionEntry","stopListening","firstHiddenTime","initHiddenTime","trackChanges","timeStamp","getVisibilityWatcher","onFID","visibilityWatcher","handleEntry","reportedMetricIDs","onLCP","lastEntry","isMeasurementValue","_startChild","ctx","msToSec","time","getBrowserPerformanceAPI","_performanceCursor","_measurements","_lcpEntry","_clsEntry","startTrackingWebVitals","_trackFID","clsCallback","_trackCLS","lcpCallback","_trackLCP","startTrackingLongTasks","startTime","startTrackingInteractions","addPerformanceEntries","performanceEntries","responseStartTimestamp","requestStartTimestamp","_addNavigationSpans","_addMeasureSpans","firstHidden","shouldRecord","resourceName","_addResourceSpans","_trackNavigator","oldValue","measurementTimestamp","normalizedValue","fidMark","measurementName","_tagMetricInfo","measureStartTimestamp","measureEndTimestamp","_addPerformanceNavigationTiming","_addRequest","description","eventEnd","end","start","navigator","connection","DEFAULT_TRACE_PROPAGATION_TARGETS","defaultRequestInstrumentationOptions","instrumentOutgoingRequests","traceFetch","traceXHR","tracePropagationTargets","tracingOrigins","shouldCreateSpanForRequest","shouldCreateSpan","shouldAttachHeadersWithTargets","shouldAttachHeaders","spans","fetchCallback","xhrCallback","currentScope","currentSpan","addTracingHeadersToFetchRequest","sentryBaggageHeader","sentryTraceHeader","newHeaders","existingBaggageHeader","newBaggageHeaders","instrumentRoutingWithDefaults","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","BROWSER_TRACING_INTEGRATION_ID","DEFAULT_BROWSER_TRACING_OPTIONS","BrowserTracing","instrumentRouting","markBackgroundTransactions","_experiments","beforeNavigate","isPageloadTransaction","sentryTraceMetaTagValue","getMetaContent","baggageMetaTagValue","traceParentData","expandedContext","modifiedContext","finalContext","location","idleTransaction","inflightInteractionTransaction","registerInteractionTransaction","op","currentTransaction","metaName","metaTag","init$1","isAtLeastReact17","major","INITIAL_STATE","setCause","cause","seenErrors","recurse","ErrorBoundary","React.Component","props","componentStack","beforeCapture","onError","showDialog","React.version","errorBoundaryError","onMount","onUnmount","onReset","fallback","children","element","React.isValidElement","SENTRY_TAGS","reactRouterV6Instrumentation","useEffect","useLocation","useNavigationType","createRoutesFromChildren","matchRoutes","initPathName","hasRequiredClient","requireClient","m","ReactQueryDevtools2","appStore","observable","tenant","currency","defaultLocale","appMeta","clusterId","appUrl","defs","locales","structs","selfSegments","forms","entities","paletteItems","processingScripts","configStore","instantCheckStore","hits","selectedId","searchId","searchName","monitoringStore","selected","associations","searchInfo","AuthProvider","clerkPubKey","useSelector","get","auth","clerk_publishable_key","colors","useMantineTheme","ClerkProvider","appearance","variables","colorPrimary","brand","elements","card","backgroundColor","boxShadow","borderColor","gray","cardBox","borderWidth","borderRadius","headerSubtitle","display","formFieldInput","padding","formButtonPrimary","background","textTransform","fontSize","fontWeight","publishableKey","ConfigProvider","observer","useObservable","configQuery","useQuery","queryKey","queryFn","fetch","Date","then","res","Error","json","config","set","batch","assign","Switch","ready","_jsxs","div","loading","TFLoadingOverlay","hasRequiredErrors","requireErrors","exports","ErrorType","errors","hasRequiredDist","requireDist","errors_1","require$$0","parseHexToInt","hex","validateAndParseHex","errorName","enforcedLength","parsedHex","parseHexadecimalCode","code","parsedCode","parseUnicodeCode","surrogateCode","parsedSurrogateCode","isCurlyBraced","text","parseUnicodeCodePointCode","codePoint","withoutBraces","parseOctalCode","singleCharacterEscapes","parseSingleCharacterCode","escapeMatch","unraw","raw","allowOctals","backslash","unicodeWithSurrogate","surrogate","unicode","octal","singleCharacter","isFunction","f","cache","normalizeLocales","date","format","_locales","getMemoized","cacheKey","number","plural","ordinal","rules","plurals","getKey","construct","formatter","localeKey","UNICODE_REGEX","OCTOTHORPE_PH","getDefaultFormats","locale","passedLocales","formats","style","replaceOctothorpe","numberFormat","valueStr","cases","selectFormatter","interpolate","translation","formatters","formatMessage","tokens","token","interpolatedFormat","value2","__defProp$1","__defNormalProp$1","__publicField$1","EventEmitter","_a","maybeListeners","__defProp","__defNormalProp","__publicField","I18n","params","localeData","maybeLocaleData","localeOrAllData","messages","maybeMessages","localeOrMessages","messages2","messageForId","messageMissing","missing","setupI18n","i18n","addTFConsoleMethods","methods","window","tfConsole","loadCatalog","__variableDynamicImportRuntimeHelper","loadAndActivate","pseudoLocaleCode","I18nProvider","isInitialized","setIsInitialized","useState","prevActiveLocale","l10nTogglePseudolocalization","l10nSwitchLocale","LinguiI18nProvider","_jsx","getAccountQuery","accountId","api","BackendClient","getInstance","meta","entityGet","connections","listConnections","filter","isReview","map","listFromEntities","entity","graphLinkId","graphNodeId","flat","reviews","Promise","all","reviewGet","getDefinitionsQuery","revision","CSClient","getFrontendIr","getMonitoringAssociationsQuery","entityAssociationsGet","getOverviewQuery","getOverview","getProcessingScriptsQuery","getScripts","getTenantConfigQuery","TDMClient","getConfig","instantCheckQuery","adhocSearch","monitoringSearchDetailsQuery","monitoringSearchDetails","monitoringSearchesQuery","monitoringSearches","overviewAccountsQueryOptions","page","queryOptions","staleTime","useOverviewAccounts","overviewAccountQueryOptions","select","accounts","listUsers","account","useOverviewAccount","overviewDataQueryOptions","tenantNodeId","useOverviewData","accountQueryOptions","useAccount","useCreateAccountMutation","queryClient","useQueryClient","useMutation","mutationFn","accountKind","entitySelfSegmentKind","entitySelfSegmentData","assertNotNullish","entityConnectNew","listEntitySegments","segmentIdentity","segmentKind","segment","client_account_status","listConnectionSegments","onSuccess","invalidateQueries","segmentsQueryOptions","segmentIdentities","segmentsKey","reduce","graphId","segmentsRead","gcTime","useSegmentsQuery","useProcessingScripts","segmentsKinds","resultScripts","storedScripts","forEach","useAccountParams","useParams","searchParams","search","replace","parseInt","connectionKind","replaceAll","toUpperCase","connectionId","entityId","formKind","requestId","useSelectedAccount","monitoringSearchMatchStatusUpdate","setAccountAssigneesMutation","ids","setAssignedManagers","ok","setAccountPriorityMutation","priority","setImportance","updateMonitoringSearchCommentMutation","matchId","comment","monitoringSearchMatchCommentCreate","writeSegmentsMutation","segmentsWrite","r","useAccountForm","segmentKinds","revisions","formSegments","listSegments","includes","SegmentIdentity","accessMode","AccessMode","segmentsQuery","nextState","segmentData","info","container","Revision","handleSubmit","segmentValidationStatuses","formSegment","push","validationStatus","rawRevision","peek","TFNotifier","success","refetchQueries","scripts","accountEventLogsQueryOptions","accountEventLog","useAccountEventsLog","reviewStates","Map","accountStatus","getLabel","noun","kind","getSelfSegment","entityKind","Object","find","MATCH_STATUSES","label","UserCapabilities","capabilities","CAN_PREPARE_ACCOUNTS_DATA","CAN_REVIEW_ACCOUNTS_DATA","CAN_MANAGE_MONITORING","CAN_MANAGE_USERS","CAN_EXPORT_ACCOUNT_DATA","CAN_MANAGE_API_TOKENS","capabilitiesIcons","Icon","getCapabilities","getDisplayName","firstName","lastName","trim","username","useCurrentUserCapabilityCheck","capability","useCurrentUser","listRoleCapabilities","useAccountInfoSegments","selfSegmentKind","requiredSegments","prepareState","validationStatuses","updateSegments","COMMON__RM_FEEDBACK","onboardingDate","onboarding_date","closingDate","closing_date","kycApprovalDate","COMMON__COMPLIANCE_DATES","kyc_approval_date","kycApprovalDateMutation","newDate","nextKycReviewDate","next_kyc_review_date","nextKycReviewDateMutation","accountDataMutation","account_id","clientRiskLevel","COMMON__COMPLIANCE_FEEDBACK","client_risk_level","defaultValues","fieldName","fieldType","organization","useOrganization","useUser","orgMembership","organizationMemberships","userId","hasImage","imageUrl","publicMetadata","useEntityConnectionLabels","labels","possibleConnections","singular","S","prettify","useGetEntityLabel","decoder","decodeBase64","encoded","binary","bytes","decode","JOSEError","JWTInvalid","isObjectLike","isObject","base64url.decode","decodeJwt","jwt","length","decoded","base64url","hasMembershipMetadata","claims","orgMetadata","org_member_metadata","Array","isArray","useGetTenantToken","withLogger","getToken","signOut","isLoaded","isSignedIn","useAuth","clerk","useClerk","requiredTenant","hostname","toLowerCase","logToSentry","clerkIsLoaded","userPrimaryEmail","primaryEmailAddress","emailAddress","getParsedToken","useCallback","template","jwt_template","catch","jwtTemplate","sub","retrieveToken","userMemberships","requiredMembership","setActive","secondToken","oldTenant","newTenant","isTokenChanged","useMonitoringHits","Infinity","rawResponse","hit","usePriority","updatePriority","importance","useSelectedAccountApplicantReview","applicantReview","useSelectedAccountTasks","canEditAccounts","canReviewAccounts","formDefs","entityDefs","accountTasks","useMemo","sort","localeCompare","getAccountTasks","reviewTasks","entityTasks","tasks","useSelectedAccountTasksTotal","total","reviewTotal","useSelectedMonitoringEntity","useSelectedReview","review","__create","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","except","desc","__toESM","isNodeMode","require_ReactNativeFile","_ref","uri","require_isExtractableFile","ReactNativeFile","require_extractFiles","defaultIsExtractableFile","extractFiles","isExtractableFile","clone","files","addFile","paths","file","storedPaths","prefix","i2","child","result2","import_extractFiles","GraphQLRequestError","extensions","fieldErrors","assert","condition","formatGetRequestUrl","isStreamLike","isPromiseLike","isFileUpload","isResponseJSON","isHeaders","isIterableHeaders","normalizeHeaders","AwesomeGraphQLClient","operationJSON","form","fetchOptions","partialData","queryAsString","_b","_c","gql","strings","string","GraphQLClient","customFetch","instance","AddAccountModal","createModal","onClose","useModalControl","accountKinds","selectedAccountKind","setSelectedAccountKind","applicantEntityKind","fromEntities","T","createAccountMutation","submitHandler","mutate","_Fragment","Select","placeholder","data-autofocus","onChange","AppFormBuilder","segments","isLoading","isPending","onSubmit","styles","content","shouldValidate","submitButtonRenderer","ModalFooter","submitText","isDisabled","onCancel","AddAccountButton","addAccountModal","useDisclosure","navigate","useNavigate","connectedEntityId","Button","leftSection","size","stroke","onClick","open","title","opened","isOpen","close","contentProps","useNewConnectionSuccessHandler","useConnectNewEntityMutation","parentEntityId","selfSegmentData","useConnectExistingEntityMutation","entityConnectExisting","useDisconnectEntityMutation","entityDisconnectEntity","entityLookupQueryOptions","entityKinds","entityLookup","useEntityLookupQuery","entitiesQueryOptions","useEntities","entityQueryOptions","useEntity","entityAssociationsQueryOptions","useEntityAssociations","useNavigateToEntity","getEntityPath","connectionGraphId","entityGraphNodeId","mainEntityId","basePath","slugify","navigateToEntity","scrollTo","useStyles","createStyles","color","lineHeight","subtitle","marginTop","whiteSpace","overflow","textOverflow","ConnectionForm","parentEntity","skipRedirect","connectionDef","availableEntities","selectedKind","setSelectedKind","connectionType","setConnectionType","searchValue","setSearchValue","selectedEntityId","setSelectedEntityId","useDebounce","entityLookupQuery","suggestedEntities","slice","getEntityLabel","connectExistingEntityMutation","connectExistingEntity","mutateAsync","connectedLinkId","Response","errorResponse","connectionErrorsMap","log","onConnectionSuccess","connectNewEntityMutation","connectNewEntity","selfSegment","Stack","gap","TextInput","rightSection","isFetching","Loader","variant","TFText","pb","Boolean","ScrollArea","mt","h","isSelected","TFListCard","isActive","Flex","align","ml","w","justify","Box","mr","maw","EntityBadge","isSticky","UnstyledButton","sx","initialValues","getPrefilledValues","INDIVIDUAL_ENTITY__SELF","last_name","iconButton","alignItems","justifyContent","AddConnectionButton","connectionModal","connectionLabels","buttonKind","Tooltip","openDelay","fullWidth","buttonProps","Modal","fileUpload","upload","identity","fileDownload","download","storageKey","arrayBuffer","useDownloadFileMutation","blob","URL","createObjectURL","Blob","createElement","href","click","revokeObjectURL","FormBuilder","disableAutocomplete","apiConfig","fileDownloadFn","fileUploadFn","HaveIssuesModal","isSubmitting","setIsSubmitting","setCategory","setDescription","sendFeedback","feedbackIssue","emailAddresses","toUTCString","mb","disabled","data-readonly","comboboxProps","withinPortal","Textarea","labelProps","minRows","maxRows","currentTarget","autosize","loaderProps","radius","shadows","spacing","elevation","md","menuDropdown","menuItem","slate","round_8","transition","outlineWidth","menuItemSection","marginInlineEnd","space_8","menuItemCaption","Affix","supportMenu","issuesModal","scroll","useWindowScroll","useHotkeys","y","UIAffix","position","bottom","right","Transition","mounted","transitionStyles","ActionIcon","xl","Menu","toggle","withArrow","width","round_12","classNames","dropdown","itemSection","transitionProps","Target","gradient","deg","Dropdown","Item","space_2","menu","flex","logo","marginRight","bra","menuButton","borderBottomStyle","borderBottomWidth","borderBottomColor","lighten","menuItems","AppMenu","pathname","withObserver","Number","feature_flags","isMonitoringRules","Center","Link","TFLogo","startsWith","data-active","UserAvatar","userInfo","ref","fullName","initials","abbreviate","hasInitials","alt","imgSrc","undefined","Avatar","src","AuthProviderEnum","UserRoleEnum","MemberRoleEnum","MemberStatusEnum","TriggerTypeEnum","TriggerContextTypeEnum","ExecutionDetailsSourceEnum","ExecutionDetailsStatusEnum","ButtonTypeEnum","MessageActionStatusEnum","TimeOperatorEnum","FilterPartTypeEnum","PreviousStepTypeEnum","ChannelTypeEnum","StepTypeEnum","ChannelCTATypeEnum","TemplateVariableTypeEnum","ActorTypeEnum","SystemAvatarIconEnum","TriggerRecipientsTypeEnum","FeatureFlagsKeysEnum","EmailBlockTypeEnum","TextAlignEnum","OrderDirectionEnum","PreferenceOverrideSourceEnum","SignUpOriginEnum","MarkMessagesAsEnum","WebSocketEventEnum","LogStatusEnum","LogCodeEnum","ChangeEntityTypeEnum","DigestUnitEnum","DaysEnum","DigestTypeEnum","DelayTypeEnum","MonthlyTypeEnum","OrdinalEnum","OrdinalValueEnum","JobStatusEnum","CredentialsKeyEnum","EmailProviderIdEnum","SmsProviderIdEnum","ChatProviderIdEnum","PushProviderIdEnum","InAppProviderIdEnum","mailConfigBase","smsConfigBase","pushConfigBase","mailgunConfig","mailjetConfig","nexmoConfig","mandrillConfig","nodemailerConfig","postmarkConfig","sendgridConfig","resendConfig","plunkConfig","sparkpostConfig","netCoreConfig","sendinblueConfig","sesConfig","mailerSendConfig","plivoConfig","sms77Config","termiiConfig","burstSmsConfig","clickatellConfig","snsConfig","telnyxConfig","twilioConfig","slackConfig","fcmConfig","expoConfig","pushWebhookConfig","oneSignalConfig","apnsConfig","gupshupConfig","firetextConfig","outlook365Config","infobipSMSConfig","infobipEmailConfig","fortySixElksConfig","kannelConfig","maqsamConfig","smsCentralConfig","emailWebhookConfig","africasTalkingConfig","novuInAppConfig","sendchampConfig","darkButtonStyle","lightButtonStyle","HandlebarHelpersEnum","bind","thisArg","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isNumber","isBoolean","isDate","isFile","isBlob","isFileList","isStream","isFormData","isURLSearchParams","allOwnKeys","l","findKey","_key","_global","isContextDefined","merge","caseless","assignValue","targetKey","extend","stripBOM","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","lastIndex","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","isHTMLForm","toCamelCase","p1","p2","hasOwnProperty","reduceDescriptors","reducer","reducedDescriptors","descriptor","freezeMethods","toObjectSet","arrayOrString","define","noop","toFiniteNumber","defaultValue","ALPHA","DIGIT","ALPHABET","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","isAsyncFn","utils","AxiosError","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","platform","URLSearchParams","FormData","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","DEFAULT_CONTENT_TYPE","stringifySafely","rawValue","defaults","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","$internals","normalizeHeader","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","targets","asStrings","first","computed","accessors","defineAccessor","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","validateStatus","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","parseProtocol","speedometer","samplesCount","min","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","progressBytes","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","responseType","onCanceled","done","password","fullPath","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","cancel","knownAdapters","adapters","nameOrAdapter","adapter","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validator","opt","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","resolvePromise","_resolve","CancelToken$1","spread","isAxiosError","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","axios","promises","axios$1","__awaiter","this","_arguments","P","generator","adopt","step","HttpClient","backendUrl","NovuComponentEnum","JobTopicNameEnum","ObservabilityBackgroundTransactionEnum","reactPropsRegex","isPropValid","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","propName","isDevelopment","Insertion","isStringTag","registerStyles","useInsertionEffectAlwaysWithSyncFallback","insertStyles","createStyled","baseTag","identifierName","targetClassName","defaultShouldForwardProp","shouldUseAs","Styled","withEmotionCache","FinalTag","classInterpolations","mergedProps","React.useContext","ThemeContext","getRegisteredStyles","serializeStyles","finalShouldForwardProp","newProps","React.createElement","React.Fragment","nextTag","nextOptions","_extends","newStyled","tagName","insertWithoutScoping","registered","css","registeredStyles","rawClassName","createEmotion","createCache","_len","keyframes","_len2","_key2","animation","injectGlobal","_len3","_key3","cx","_len4","_key4","classnames","cls","toAdd","_createEmotion","findElementAncestor","_element","getPreviousIndex","loop","getNextIndex","onSameLevel","sibling","parentSelector","createScopedKeydownHandler","siblingSelector","onKeyDown","activateOnFocus","dir","orientation","node","_nextIndex","_previousIndex","nextIndex","previousIndex","last","getContextItemIndex","elementSelector","createSafeContext","errorMessage","Context","createContext","React","useContext","packSx","getSafeId","uid","closeOnEscape","createEventHandler","parentEventHandler","eventHandler","useHovered","hovered","setHovered","toVal","mix","clsx","tmp","x","DEFAULT_COLORS","fontStyles","theme","__getOwnPropSymbols","__propIsEnum","__spreadValues","focusStyles","primaryShade","colorScheme","themeColor","getPrimaryShade","shade","primaryFallback","useSplittedShade","splitterColor","_splittedShade","splittedShade","_shade","getGradientColorStops","stops","linearGradient","radialGradient","getThemeColor","computedSize","largerThan","breakpoint","smallerThan","isHexColor","hexToRgba","hexString","shorthandHex","g","rgbStringToRgba","toRgba","rgba","alpha","cover","darken","dark","light","defaultRadius","getColorIndexInfo","splittedColor","getGradient","variant2","gradient2","colorInfo","_primaryShade","_color","primaryColor","hover","hoverStyle","placeholderStyles","__defProps","__getOwnPropDescs","__spreadProps","attachFunctions","themeBase","_DEFAULT_THEME","DEFAULT_THEME","GlobalStyles","Global","assignSizeVariables","sizes","MantineCssVariables","headings","heading","mergeTheme","currentTheme","themeOverride","headingsAcc","mergeThemeWithFunctions","filterProps","NormalizeCSS","MantineProviderContext","useMantineProviderStyles","getStyles","useMantineEmotionCache","useComponentDefaultProps","defaultProps","contextPropsPayload","contextProps","MantineProvider","emotionCache","withNormalizeCSS","withGlobalStyles","withCSSVariables","inherit","mergedTheme","ThemeProvider","elevations","getDefaultZIndex","useGuaranteedMemo","deps","useRef","v","defaultMantineEmotionCache","useEmotionCache","refPropertyName","getRef","argCopy","cssFactory","_cssFactory","useCss","mergeClassNames","contextClassNames","part","createRef","refName","extractStyles","stylesPartial","getCssObject","cssObject","componentStyles","providerStyles","mergedStyles","popIn","transitions","DEFAULT_EVENTS","useClickOutside","events","nodes","shouldIgnore","attachMediaListener","getInitialValue","initialValue","useMediaQuery","getInitialValueInEffect","setMatches","queryRef","useIsomorphicEffect","useLayoutEffect","useDidUpdate","dependencies","useFocusReturn","shouldReturnFocus","lastActiveElement","returnFocus","clearFocusTimeout","TABBABLE_NODES","FOCUS_SELECTOR","hidden","visible","parentElement","getElementTabIndex","tabIndex","focusable","nodeName","isTabIndexNotNaN","tabbable","findTabbableDescendants","scopeTab","finalTabbable","root","createAriaHider","containerNode","rootNodes","ariaHidden","useFocusTrap","active","restoreAria","setRef","processNode","focusElement","handleKeyDown","randomId","useReactId","useClientId","uuid","setUuid","getReactId","useId","staticId","assignRef","mergeRefs","refs","useMergedRef","useUncontrolled","finalValue","uncontrolledValue","setUncontrolledValue","handleUncontrolledChange","useReducedMotion","useHover","onMouseEnter","onMouseLeave","ACCORDION_ERRORS","AccordionContextProvider","useAccordionContext","AccordionProvider","multiple","transitionDuration","disableChevronRotation","chevronPosition","chevronSize","order","chevron","unstyled","handleChange","isItemActive","itemValue","handleItemChange","nextValue","selectedValue","AccordionItemContextProvider","useAccordionItemContext","getVariantStyles","filledColor","useStyles$1M","__objRest","exclude","extractSystemStyles","others","mx","my","px","py","pt","pl","pr","bg","opacity","ff","fz","fw","lts","ta","lh","fs","tt","td","miw","mih","mah","bgsz","bgp","bgr","bga","pos","left","inset","getSortedKeys","sorted","getResponsiveValue","getValue","breakpointKey","baseValue","breakpointValue","cssValue","getColorValue","getDefaultValue","getFontSizeValue","NEGATIVE_VALUES","getSpacingValue","valueGetters","SYSTEM_PROPS","getSystemStyles","systemStyles","systemProps","systemProp","extractSx","useSx","partial","_Box","forwardRef","Element","AccordionItem","useStyles$1K","useStyles$1I","_UnstyledButton","AccordionControl","icon","shouldWrapWithHeading","Heading","_params","useStyles$1G","getAutoHeightDuration","constant","getElementHeight","raf","useCollapse","transitionTimingFunction","onTransitionEnd","collapsedHeight","collapsedStyles","setStylesRaw","setStyles","newStyles","flushSync","mergeStyles","oldStyles","getTransitionStyles","handleTransitionEnd","getCollapseProps","refKey","theirRef","Collapse","animateOpacity","shouldReduceMotion","AccordionPanel","ChevronIcon","Accordion","useStyles$1E","Bars","Oval","Dots","LOADERS","defaultLoader","_ActionIcon","loader","Portal","setMounted","createPortal","OptionalPortal","getTextDecoration","underline","strikethrough","getTextColor","getLineClamp","lineClamp","getTruncate","inline","weight","transform","italic","useStyles$1C","_Text","Text","getColor","useStyles$1A","Divider","labelPosition","vertical","horizontal","withLabel","useLabelDefaultStyles","$6ed0406888f73fc4$var$setRef","$6ed0406888f73fc4$export$43e446d32b3d21af","$6ed0406888f73fc4$export$c7b2cbe3552a0d05","$3vqmr$useCallback","$5e63c961fc1ce211$export$8c6ed5c666ac1360","$9IrjX$forwardRef","forwardedRef","slotProps","childrenArray","$9IrjX$Children","slottable","$5e63c961fc1ce211$var$isSlottable","newElement","newChildren","$9IrjX$isValidElement","$9IrjX$createElement","$5e63c961fc1ce211$var$SlotClone","$9IrjX$babelruntimehelpersesmextends","$9IrjX$cloneElement","$5e63c961fc1ce211$var$mergeProps","$9IrjX$composeRefs","$5e63c961fc1ce211$export$d9f1ccf0bdb05d45","$9IrjX$Fragment","childProps","overrideProps","slotPropValue","childPropValue","$8927f6f2acc4f386$var$NODES","$8927f6f2acc4f386$export$250ffa63cdc0d034","primitive","Node","$4q5Fq$forwardRef","asChild","primitiveProps","Comp","$4q5Fq$Slot","$4q5Fq$useEffect","$4q5Fq$createElement","$4q5Fq$babelruntimehelpersesmextends","$9f79659886946c16$export$e5c5a5f917a5871c","$dxlwH$useLayoutEffect","$fe963b355347cc68$export$3e6543de14f8614f","initialState","machine","$iqq3r$useReducer","$921a889cee6df7e8$export$99c2b779aa4e8b8b","present","presence","$921a889cee6df7e8$var$usePresence","$iqq3r$Children","$iqq3r$useComposedRefs","$iqq3r$cloneElement","node1","setNode","$iqq3r$useState","stylesRef","$iqq3r$useRef","prevPresentRef","prevAnimationNameRef","$iqq3r$useEffect","currentAnimationName","$921a889cee6df7e8$var$getAnimationName","$iqq3r$useLayoutEffect","wasPresent","prevAnimationName","handleAnimationEnd","isCurrentAnimation","$iqq3r$flushSync","handleAnimationStart","$iqq3r$useCallback","$c512c27ab02ef895$export$50c7b4e9d9f19c1","scopeName","createContextScopeDeps","defaultContexts","$c512c27ab02ef895$export$fd42f52fd3ae1109","rootComponentName","defaultContext","BaseContext","$3bkAK$createContext","Provider","$3bkAK$useMemo","$3bkAK$createElement","consumerName","$3bkAK$useContext","createScope","scopeContexts","contexts","$c512c27ab02ef895$var$composeContextScopes","scopes","baseScope","createScope1","scopeHooks","overrideScopes","nextScopes1","nextScopes","useScope","$b1b2314f5f9a1d84$export$25bec8c6f54ee79a","callbackRef","$lwiWj$useRef","$lwiWj$useEffect","$lwiWj$useMemo","_callbackRef$current","$f631663db3294ace$var$DirectionContext","$7Gjcd$createContext","$f631663db3294ace$export$b39126d51d94e6f3","localDir","globalDir","$7Gjcd$useContext","$ae6933e535247d3d$export$7d15b64cf5a3a4c4","$e42e1063c40fb3ef$export$b9ecd428b558ff10","ourEventHandler","checkForDefaultPrevented","$6c2e24571c90391f$export$3e6543de14f8614f","$fnFM9$useReducer","$57acba87d6e25586$var$SCROLL_AREA_NAME","$57acba87d6e25586$var$createScrollAreaContext","$57acba87d6e25586$export$488468afe3a6f2b1","$fnFM9$createContextScope","$57acba87d6e25586$var$ScrollAreaProvider","$57acba87d6e25586$var$useScrollAreaContext","$57acba87d6e25586$export$ccf8d8d7bbf3c2cc","$fnFM9$forwardRef","__scopeScrollArea","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","$fnFM9$useState","viewport","setViewport","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","composedRefs","$fnFM9$useComposedRefs","direction","$fnFM9$useDirection","$fnFM9$createElement","$fnFM9$Primitive","$fnFM9$babelruntimehelpersesmextends","$57acba87d6e25586$var$VIEWPORT_NAME","$57acba87d6e25586$export$a21cbf9f11fca853","viewportProps","$fnFM9$useRef","$fnFM9$Fragment","$57acba87d6e25586$var$SCROLLBAR_NAME","$57acba87d6e25586$export$2fabd85d0eba3c57","forceMount","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","$fnFM9$useEffect","$57acba87d6e25586$var$ScrollAreaScrollbarHover","$57acba87d6e25586$var$ScrollAreaScrollbarScroll","$57acba87d6e25586$var$ScrollAreaScrollbarAuto","$57acba87d6e25586$var$ScrollAreaScrollbarVisible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","$fnFM9$Presence","debounceScrollEnd","$57acba87d6e25586$var$useDebounceCallback","scrollDirection","prevScrollPos","handleScroll","scrollPos","$fnFM9$composeEventHandlers","handleResize","isOverflowX","isOverflowY","$57acba87d6e25586$var$useResizeObserver","thumbRef","pointerOffsetRef","setSizes","thumbRatio","$57acba87d6e25586$var$getThumbRatio","commonProps","thumb","pointerPos","getScrollPosition","$57acba87d6e25586$var$getScrollPositionFromPointer","$57acba87d6e25586$var$ScrollAreaScrollbarX","$57acba87d6e25586$var$getThumbOffsetFromScroll","$57acba87d6e25586$var$ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","composeRefs","$57acba87d6e25586$var$ScrollAreaScrollbarImpl","$57acba87d6e25586$var$getThumbSize","maxScrollPos","$57acba87d6e25586$var$isScrollingWithinScrollbarBounds","$57acba87d6e25586$var$toInt","$57acba87d6e25586$var$ScrollbarProvider","$57acba87d6e25586$var$useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","$fnFM9$useCallbackRef","handleThumbPositionChange","handleDragScroll","handleWheel","$57acba87d6e25586$var$THUMB_NAME","$57acba87d6e25586$export$9fba1154677d7cd2","thumbProps","scrollbarContext","$57acba87d6e25586$var$ScrollAreaThumbImpl","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","$57acba87d6e25586$var$addUnlinkedScrollListener","thumbRect","$57acba87d6e25586$var$CORNER_NAME","$57acba87d6e25586$export$56969d565df7cc4b","hasBothScrollbarsVisible","$57acba87d6e25586$var$ScrollAreaCornerImpl","cornerProps","width1","setWidth","height1","setHeight","hasSize","_context$scrollbarX","_context$scrollbarY","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","$57acba87d6e25586$var$linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","$fnFM9$clamp","prevPosition","rAF","isHorizontalScroll","isVerticalScroll","handleCallback","debounceTimerRef","$fnFM9$useCallback","$fnFM9$useLayoutEffect","resizeObserver","$57acba87d6e25586$export$be92b6f5f03c0fe9","$57acba87d6e25586$export$d5c6c08dc2d3ca7","$57acba87d6e25586$export$9a4e88b92edfce6b","$57acba87d6e25586$export$6521433ed15a34db","$57acba87d6e25586$export$ac61190d9fc311a9","scrollbarSize","offsetScrollbars","scrollbarHovered","useStyles$1y","_ScrollArea","viewportRef","onScrollPositionChange","setScrollbarHovered","RadixScrollArea.Root","RadixScrollArea.Viewport","RadixScrollArea.Scrollbar","RadixScrollArea.Thumb","RadixScrollArea.Corner","ScrollAreaAutosize","maxHeight","arrow","isRef","arrow$1","deepEqual","useLatestRef","React.useRef","useFloating","placement","strategy","middleware","whileElementsMounted","setData","React.useState","latestMiddleware","setLatestMiddleware","referenceRef","floatingRef","dataRef","whileElementsMountedRef","platformRef","reference","_setReference","floating","_setFloating","setReference","React.useCallback","setFloating","update","computePosition","fullData","isMountedRef","ReactDOM.flushSync","React.useMemo","createPubSub","_map$get","FloatingTreeContext","React.createContext","useFloatingTree","getDocument","getWindow","useInsertionEffect","useSafeInsertionEffect","useEvent","unstable_onOpenChange","nodeId","useFloating$1","tree","domReferenceRef","domReference","setDomReference","setPositionReference","positionReference","onOpenChange","useFloatingAutoUpdate","positionDependencies","delayedUpdate","setDelayedUpdate","autoUpdate","getPopoverMiddlewares","middlewares","shift","limitShift","flip","usePopover","_opened","setOpened","onToggle","rects","POPOVER_ERRORS","PopoverContextProvider","usePopoverContext","PopoverTarget","refProp","popupType","forwardedProps","targetRef","accessibleProps","cloneElement","shadow","useStyles$1w","transitionStatuses","timingFunction","shared","useTransition","exitDuration","onEnter","onExit","onEntered","onExited","reduceMotion","transitionStatus","setStatus","timeoutRef","handleStateChange","shouldMount","preHandler","preStateTimeout","FocusTrap","focusTrapRef","horizontalSide","arrowY","arrowOffset","arrowPosition","verticalSide","arrowX","radiusByFloatingSide","getArrowPositionStyles","withBorder","arrowSize","arrowRadius","side","baseStyles","arrowPlacement","FloatingArrow","PopoverDropdown","onKeyDownCapture","_a2","getFloatingPosition","flippedPosition","Popover","_d","_e","_f","_g","arrowRef","onPositionChange","closeOnClickOutside","clickOutsideEvents","trapFocus","onOpen","zIndex","defaultOpened","exitTransitionDuration","__staticSelector","withRoles","targetNode","setTargetNode","dropdownNode","setDropdownNode","popover","useStyles$1u","InputLabel","labelElement","required","htmlFor","useStyles$1s","InputError","useStyles$1q","InputDescription","InputWrapperContext","InputWrapperProvider","useInputWrapperContext","getInputOffsets","inputWrapperOrder","hasDescription","hasError","inputIndex","aboveInput","belowInput","useStyles$1o","InputWrapper","descriptionProps","errorProps","inputContainer","withAsterisk","sharedProps","isRequired","errorId","descriptionId","_describedBy","describedBy","_label","_description","_input","Fragment","_error","InputPlaceholder","multiline","invalid","rightSectionWidth","withRightSection","iconWidth","offsetBottom","offsetTop","pointer","invalidColor","sizeStyles","useStyles$1m","_Input","rightSectionProps","wrapperProps","Input","AvatarPlaceholderIcon","AvatarGroupContext","AvatarGroupProvider","useAvatarGroupContext","useStyles$1k","AvatarGroup","getGroupStyles","withinGroup","useStyles$1i","_Avatar","imageProps","setError","dotSizes","dotSize","useStyles$1g","_Badge","Badge","_theme","buttonBorderWidth","useStyles$1e","ButtonGroup","sizes$1","getSizeStyles","compact","withLeftIcon","withRightIcon","_sizes","getWidthStyles","useStyles$1c","_Button","leftIcon","rightIcon","uppercase","loaderPosition","filterFalsyChildren","Children","GROUP_POSITIONS","noWrap","grow","count","Group","filteredChildren","useStyles$19","InputsGroup","role","useStyles$17","InlineInput","useStyles$15","_Overlay","blur","innerOverlay","otherProps","Overlay","useDelayedHover","closeDelay","openTimeout","closeTimeout","clearTimeouts","openDropdown","closeDropdown","useStyles$13","LoadingOverlay","overlayOpacity","overlayColor","overlayBlur","_zIndex","MENU_ERRORS","MenuContextProvider","useMenuContext","useStyles$11","MenuDivider","MenuDropdown","wrapperRef","handleMouseEnter","handleMouseLeave","useStyles$$","_MenuItem","closeMenuOnClick","itemRef","itemIndex","_others","handleClick","handleFocus","MenuItem","useStyles$Z","MenuLabel","MenuTarget","useStyles$X","closeOnItemClick","trigger","resetHovered","toggleDropdown","getItemIndex","SwitchGroupContext","SwitchGroupProvider","useSwitchGroupContext","SwitchGroup","setValue","switchHeight","switchWidth","handleSizes","labelFontSizes","trackLabelPaddings","handleSize","trackWidth","trackPadding","errorColor","useStyles$V","offLabel","onLabel","thumbIcon","checked","defaultChecked","_checked","TABS_ERRORS","TabsContextProvider","useTabsContext","inverted","useStyles$T","TabsList","useStyles$R","TabsPanel","filledScheme","radiusValue","useStyles$P","Tab","hasIcon","hasRightSection","activateTab","TabsProvider","onTabChange","activateTabWithKeyboard","allowTabDeactivation","keepMounted","useStyles$N","Tabs","NovuContext","useProviderCheck","useNovuContext","novuContext","Subscribable","isServer","functionalUpdate","updater","isValidTimeout","timeUntilStale","updatedAt","parseQueryArgs","isQueryKey","parseMutationArgs","parseFilterArgs","matchQuery","filters","exact","fetchStatus","predicate","stale","hashQueryKeyByOptions","partialMatchKey","matchMutation","mutation","fetching","mutationKey","hashQueryKey","partialDeepEqual","replaceEqualDeep","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","scheduleMicrotask","getAbortController","replaceData","prevData","FocusManager","onFocus","_this$cleanup","setup","_this$cleanup2","focused","focusManager","onlineEvents","OnlineManager","onOnline","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","outerResolve","outerReject","cancelOptions","cancelRetry","continueRetry","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","_config$retry","_config$retryDelay","retry","retryDelay","shouldRetry","defaultLogger","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","schedule","batchCalls","originalQueue","notifyManager","Removable","newCacheTime","Query","getDefaultState","setStateOptions","_this$retryer","_this$retryer2","_this$retryer3","_this$options$behavio","_context$fetchOptions","_this$retryer4","abortController","queryFnContext","addSignalProperty","fetchFn","_context$fetchOptions2","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","action","_action$meta","_action$dataUpdatedAt","hasData","initialDataUpdatedAt","QueryCache","_options$queryHash","queryHash","queryInMap","Mutation","_this$retryer$continu","executeMutation","_this$options$retry","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","MutationCache","_this$resuming","pausedMutations","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","pageParam","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","newPageParams","cancelled","_context$signal","_context$signal2","buildNewPages","pages","param","fetchPage","manual","queryFnResult","getNextPageParam","getPreviousPageParam","hasNextPage","nextPageParam","hasPreviousPage","previousPageParam","QueryClient","_this$unsubscribeFocu","_this$unsubscribeOnli","_this$queryCache$find","parsedOptions","cachedData","queryKeyOrFilters","defaultedOptions","_this$queryCache$find2","queryCache","refetchFilters","_filters$refetchType","_options$cancelRefetc","firstMatchingDefaults","QueryObserver","shouldFetchOnMount","shouldFetchOn","notifyOptions","prevOptions","prevQuery","shouldFetchOptionally","nextRefetchInterval","shouldAssignObserverCurrentProperties","trackedResult","_fetchOptions$cancelR","_this$options$refetch","nextInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","prevQueryResult","dataUpdatedAt","errorUpdatedAt","isPreviousData","isPlaceholderData","fetchOnMount","fetchOptionally","selectError","placeholderData","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","shouldLoadOnMount","field","optimisticResult","InfiniteQueryObserver","_state$fetchMeta","_state$fetchMeta$fetc","_state$fetchMeta2","_state$fetchMeta2$fet","_state$data","_state$data2","isRefetching","_this$currentMutation","_this$currentMutation2","_this$mutateOptions$o","_this$mutateOptions","_this$mutateOptions$o2","_this$mutateOptions2","_this$mutateOptions$o3","_this$mutateOptions3","_this$mutateOptions$o4","_this$mutateOptions4","useSyncExternalStore","useSyncExternalStore$1","QueryClientSharingContext","getQueryClientContext","contextSharing","QueryClientProvider","React.useEffect","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","_useErrorBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","useErrorBoundary","ensureStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","onStoreChange","unsubscribe","MutationObserver","mutateOptions","useInfiniteQuery","lodash_debounce","hasRequiredLodash_debounce","requireLodash_debounce","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","commonjsHelpers.commonjsGlobal","freeSelf","objectProto","nativeMax","nativeMin","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","toNumber","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","debounced","isInvoking","isSymbol","other","isBinary","useSetQueryKey","subscriberId","subscriberHash","applicationIdentifier","queryKeys","SESSION_QUERY_KEY","ORGANIZATION_QUERY_KEY","INFINITE_NOTIFICATIONS_QUERY_KEY","USER_PREFERENCES_QUERY_KEY","UNSEEN_COUNT_QUERY_KEY","FEED_UNSEEN_COUNT_QUERY_KEY","StoreContext","useStore","useFetchNotificationsQueryKey","storeQuery","setQueryKey","useUnseenCountQueryKey","useDataRef","__rest","t","dispatchUnseenCountEvent","DEBOUNCE_TIME","useUnseenCount","restOptions","apiService","socket","isSessionInitialized","fetchingStrategy","fetchNotificationsQueryKey","unseenCountQueryKey","queryKeysRef","oldData","NotificationsContext","useNotifications","useNovuTheme","common","NotificationCenterContext","notification","unseenCount","identifier","tab","userPreference","useNotificationCenter","onUrlChange","onNotificationClick","onActionClick","footer","emptyState","listItem","actionsResultBlock","tabs","showUserPreferences","allowedNotificationActions","onTabClick","preferenceFilter","AF","AM","AR","AS","AZ","BE","BG","BH","BN","BS","CA","CS","DA","DE","EL","EN","ES","EU","FA","FI","FR","GA","GL","GU","HE","HI","HR","HU","HY","ID","IG","IT","JA","KA","KK","KM","KO","KU","LO","LT","LV","ML","MR","MS","NB","NE","NL","OR","PA","PL","PT","RO","RU","SA","SD","SI","SM","SQ","SV","TA","TE","TH","TL","TR","UK","UR","UZ","VI","ZH","ZU","BA","TRANSLATIONS","I18NContext","NovuI18NProvider","i18nEntry","useTranslations","translations","lang","useFetchUserPreferencesQueryKey","useUpdateUserPreferences","userPreferencesQueryKey","updatePreferenceChecked","templateId","channelType","oldUserPreferences","setting","updateUserPreferences","lastPage","useFetchNotifications","refetch","otherOptions","useFetchOrganization","useFeedUnseenCountQueryKey","useFeedUnseenCount","feedUnseenCountQueryKey","useFetchUserPreferences","useMarkNotificationsAs","messageId","seen","read","newMessages","infiniteData","newMessage","useRemoveNotification","useRemoveAllNotifications","feedId","GradientDot","regularColor","DotsHorizontal","Bell","Cogs","ArrowLeft","Trash","Read","Sms","Mail","Mobile","Chat","ErrorIcon","Info","Question","Success","Up","Warning","getStyleByPath","stylePart","StylesContext","stylesContext","StylesProvider","contextValue","UnseenBadge","unseenBadgeStyles","Header","onCogClick","allRead","setAllRead","markAllNotificationsAsRead","notifications","headerStyles","headerTitleStyles","headerMarkAsReadStyles","headerCogStyles","headerClassName","titleClassName","ActionItems","markAsReadClassName","cogClassName","styled","fontColor","UserPreferenceHeader","onBackClick","backButtonStyles","Footer","footerStyles","footerTitleStyles","footerClassName","footerPoweredByClassName","novuTheme","FooterContainer","loaderStyles","loaderColor","MantineLoader","accordionStyles","baseTheme","font","switchStyles","_h","TextBlock","preferencesTitleClassName","preferencesChannelsClassName","WorkflowHeader","channels","itemTitleStyles","itemChannelsStyles","getChannel","channelKey","channel","Check","iconClassName","iconColor","channelLabelClassName","successClassName","ChannelPreference","handleUpdateChannelPreference","setIsLoading","showSaved","setShowSaved","switchRootStyles","switchInputStyles","switchTrackStyles","switchThumbStyles","itemContentIconStyles","itemContentChannelLabelStyles","itemContentSuccessStyles","channelSwitchStyles","channelSwitchClassNames","updateChannel","ChannelItemWrapper","LeftContentWrapper","RightContentWrapper","SwitchWrapper","dividerClassName","ChannelsWrapper","getEnabledChannels","UserPreferenceItem","preferenceSettings","isPreferenceUpdating","itemDividerStyles","channelsKeys","channelsPreference","NoSettings","rootClassName","SubscriberPreference","setFetchingStrategy","arePreferencesLoading","rootStyles","accordionItemStyles","accordionContentStyles","accordionControlStyles","accordionChevronStyles","preferences","pref","accordionClassNames","showNoSettings","preference","extendStatics","d","__extends","__","__assign","n","throttle","noTrailing","debounceMode","timeoutID","lastExec","clearExistingTimeout","elapsed","exec","clear","ThresholdUnits","defaultThreshold","parseThreshold","scrollThreshold","InfiniteScroll","_super","_this","atBottom","prevProps","nextProps","prevState","dataLengthChanged","clientHeight","hasChildren","outerDivStyle","infScroll","pullDown","Component","lodash_mergeModule","hasRequiredLodash_merge","requireLodash_merge","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","MAX_SAFE_INTEGER","argsTag","arrayTag","asyncTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","proxyTag","regexpTag","stringTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reIsHostCtor","reIsUint","typedArrayTags","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","nodeIsTypedArray","apply","baseTimes","iteratee","baseUnary","overArg","arrayProto","funcProto","coreJsData","funcToString","maskSrcKey","nativeObjectToString","objectCtorString","reIsNative","Buffer","Symbol","Uint8Array","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","splice","symToStringTag","defineProperty","getNative","nativeIsBuffer","nativeNow","nativeCreate","baseCreate","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","assignMergeValue","eq","baseAssignValue","objValue","baseFor","createBaseFor","baseGetTag","getRawTag","baseIsArguments","baseIsNative","isMasked","toSource","baseIsTypedArray","isLength","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","baseMergeDeep","newValue","safeGet","keysIn","mergeFunc","stacked","isCommon","isTyped","isArrayLikeObject","copyArray","cloneBuffer","cloneTypedArray","toPlainObject","initCloneObject","baseRest","setToString","overRest","baseSetToString","isDeep","cloneArrayBuffer","typedArray","copyObject","isNew","createAssigner","assigner","sources","guard","isIterateeCall","fromRight","keysFunc","iterable","isKeyable","isOwn","unmasked","isArrayLike","Ctor","otherArgs","shortOut","lastCalled","stamp","remaining","stubFalse","lodash_clonedeepModule","hasRequiredLodash_clonedeep","requireLodash_clonedeep","promiseTag","reFlags","cloneableTags","addMapEntry","addSetEntry","arrayEach","arrayPush","arrayReduce","accumulator","initAccum","isHostObject","mapToArray","setToArray","nativeGetSymbols","nativeKeys","DataView","Set","WeakMap","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","baseAssign","baseClone","isFull","initCloneArray","getTag","isFunc","copySymbols","initCloneByTag","getAllKeys","subValue","baseGetAllKeys","symbolsFunc","baseKeys","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","regexp","cloneSet","cloneSymbol","symbol","getSymbols","stubArray","ctorString","cloneDeep","defaultLightTheme","defaultDarkTheme","defaultCommonTheme","defaultNotificationBellLightTheme","defaultNotificationBellDarkTheme","getDefaultTheme","getDefaultBellColors","NotificationButton","messageAction","buttonIndex","button","buttonStyle","buttonText","handleOnclick","actionButtonStyles","ActionContainer","buttons","buttonsContainerStyles","primaryButtonStyles","secondaryButtonStyles","handleOnClick","buttonType","TemplateContainerWrap","TemplateContainer","When","truthy","SECOND","MINUTE","HOUR","DAY","YEAR","UNITS","DEFAULT_LOCALE","formatRelativeTime","fromDate","toDate","avatarSystemIcons","NotificationListItem","removeMessage","markNotificationAsRead","markNotificationAsUnRead","unread","readSupportAdded","listItemReadStyles","listItemUnreadStyles","listItemLayoutStyles","listItemContentLayoutStyles","listItemTitleStyles","listItemTimestampStyles","menuDotsButtonStyles","menuDropdownStyles","menuArrowStyles","menuItemStyles","useDropdownStyles","overrideClasses","handleNotificationClick","handleActionButtonClick","actionButtonType","handleRemoveMessage","handleToggleReadMessage","listItemClassName","unreadNotificationStyles","readNotificationStyles","NotificationItemContainer","NotificationContentContainer","AvatarContainer","RenderAvatar","NotificationTextContainer","TextContent","timeMarkClassName","ActionWrapper","SettingsActionWrapper","dotsClassName","GradientDotWrapper","actionStatus","templateIdentifier","ctaAction","ActionContainerOrNone","bellColors","bellDotStyles","actor","MAvatar","selectedIcon","SystemIconWrapper","containerBgColor","NotificationsList","onFetch","onNotificationClicked","totalCount","notificationsListStyles","ListWrapper","NoNewNotifications","NotificationsListTab","fetchNextPage","fetchNext","hasCta","useTabStyles","tabLabel","tabIcon","tabsListStyles","tabStyles","tabLabelStyles","tabIconStyles","MantineTabs","FeedsTabs","storeId","setStore","markFetchedNotificationsAsSeen","handleOnTabChange","newStoreId","TabLabelWrapper","UnseenBadgeContainer","stores","foundQuery","ScreensEnum","Layout","layoutStyles","screen","setScreen","layoutWrapperCss","ContentWrapper","MainWrapper","AppContent","fontFamily","themeConfig","wrapperClassName","NovuThemeProvider","NotificationCenter","onUnseenCountChanged","onUnseenCountChangedRef","ApiService","executedType","mark","markPayload","payloadString","appId","hmacHash","useMarkNotificationsAsRead","responseData","useMarkNotificationsAsSeen","StoreProvider","firstStore","setStoreQuery","setStoreId","store","DEFAULT_STORES","NotificationsProvider","NotificationsProviderInternal","notificationsPages","unseenCountData","markNotificationsAs","removeNotification","removeAllNotifications","markNotificationsAsRead","markNotificationsAsSeen","removeAllMessages","markAllNotificationsAsSeen","markNotificationAsSeen","markFetchedNotificationsAsRead","messageIds","paginatedResponse","pageMessageIds","pageMessagesIds","NOTIFICATION_CENTER_TOKEN_KEY","isBrowser","removeToken","applyToken","useSession","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","isView","encodePacket","supportsBinary","encodeBlobAsBase64","fileReader","TEXT_ENCODER","encodePacketToBinary","packet","chars","lookup","base64","bufferLength","encoded1","encoded2","encoded3","encoded4","arraybuffer","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","SEPARATOR","encodePayload","packets","encodedPackets","decodePayload","encodedPayload","decodedPacket","createPacketEncoderStream","controller","payloadLength","view","TEXT_DECODER","chunks","chunk","concatChunks","j","createPacketDecoderStream","maxPayload","expectedLength","headerArray","Emitter","mixin","on","callbacks","globalThisShim","pick","NATIVE_SET_TIMEOUT","globalThis","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","BASE64_OVERHEAD","byteLength","qs","qry","TransportError","Transport","details","onPause","encodedQuery","seed","num","yeast","hasCORS","XHR","xdomain","empty","hasXHR2","XMLHttpRequest","Polling","isSSL","forceBase64","Request","req","xhrStatus","fromError","unloadHandler","terminationEvent","nextTick","setTimeoutFn","WebSocket","usingBrowserWebSocket","defaultBinaryType","isReactNative","WS","protocols","closeEvent","lastPacket","WT","stream","decoderStream","reader","encoderStream","transports","re","parse","pathNames","regx","names","$0","$1","$2","Socket","failed","onTransportOpen","cleanup","freezeTransport","onerror","onTransportClose","onclose","onupgrade","payloadSize","cleanupAndClose","waitForUpgrade","upgrades","filteredUpgrades","loc","withNativeFile","hasBinary","toJSON","deconstructPacket","packetData","pack","_deconstructPacket","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","Encoder","replacer","deconstruction","Decoder","reviver","isBinaryEvent","BinaryReconstructor","binData","io","nsp","ack","isTransportWritable","timer","withErr","responseArgs","force","listeners","sent","pid","subDestroy","compress","Backoff","ms","rand","deviation","jitter","Manager","_parser","Engine","openSubDestroy","errorSub","nsps","attempt","sameNamespace","newConnection","useInitializeSocket","socketUrl","socketRef","disconnectSocket","initializeSocket","DEFAULT_FETCHING_STRATEGY","NovuProvider","initialBackendUrl","initialSocketUrl","initialStores","initialFetchingStrategy","onLoad","setFetchingStrategyState","sessionInfo","setSessionInfo","service","onSuccessfulSession","newSession","old","logout","SessionInitializer","headerIconsSettings","NotificationBell","bellButtonStyles","BellIcon","StyledGradientDot","GradientDotWrap","useAppInstanceId","useClusterId","useNovuStyles","bellButton","dot","unseenBadge","layout","paddingBottom","border","switch","usePopoverStyles","NovuNotificationBell","isOpened","setIsOpened","link","cta","appInstanceId","currentUserId","novu","application_identifier","NovuNotificationCenter","breakpoints","maxWidth","margin","userToolbar","marginLeft","userMenuItem","AppHeader","canManageUsers","canReviewAccount","canExportData","canManageApiTokens","isProfileOpen","setIsProfileOpen","Sentry","AppShell","SignOutButton","UserProfile","scrollBox","AppLayout","SignedIn","Main","Outlet","ManagerAvatar","AssignedManagersView","selectedManagers","u","selectedIds","manager","author","userAvatar","blue","CommentItem","createdAt","fmt","preset","CommentsList","comments","sendComment","setComment","useViewportSize","hasComments","onSendComment","console","borderTopStyle","borderTopWidth","borderTopColor","preventDefault","ConfirmationModal","confirmText","onConfirm","isSubmitDisabled","confirmButtonColor","Title","TFModals","closeAll","Space","actionButton","ConnectionMenu","disconnectEntityMutation","handleRemoveConnection","CounterBadge","circle","EmptyConnectionScreen","TFCard","cursor","userSelect","letterSpacing","requiredMark","GroupLabel","actions","isExternal","identities","extractForms","listEntities","join","navigateToForm","hash","getFormHash","ownershipInfo","getOwnershipInfo","OwnershipPercentage","SideMenu","SideMenuItem","EntityKindIcon","getFormStatuses","containers","listSegmentReviewContainers","hashIds","graphIds","every","FormStatusIndicator","reviewState","isDecisionRequired","isFormDecisionRequired","EntityConnections","fromEntity","hasConnections","groupLabel","isLogicalRequired","FormLoader","baseSx","green","red","FormStatusIndicatorBase","structure","accountName","textDecoration","HiddenAccountsNotice","textSize","withIcon","sticky","cancelText","DateField","isReadOnly","setDate","DatePickerInput","D","jsDateFromString","valueFormat","readOnly","defaultLevel","popoverProps","SelectField","isSearchable","setSelectedValue","searchable","TextField","Wrapper","MTextInput","ComponentsMap","PrimitiveFormBuilder","fields","FieldName","PriorityView","orange","boxProps","borderLeftWidth","borderLeftStyle","borderLeftColor","borderCollapse","borderTopRightRadius","borderTopLeftRadius","borderBottomRightRadius","borderBottomLeftRadius","tooltip","data-selected","ReviewGroupConnections","accountEntity","reviewGroup","reviewGroupConnections","connectionData","DRAFT","READY_TO_REVIEW","UNDER_REVIEW","UPDATE_REQUIRED","VERIFIED","ReviewState","mainReview","additionalReviews","Anchor","Alert","List","SideMenuLayout","minWidth","sm","buttonDisabled","badge","verticalAlign","redHover","redBadge","orangeHover","orangeBadge","yellow","yellowHover","yellowBadge","greenHover","greenBadge","blueHover","blueBadge","indigo","indigoHover","indigoBadge","dimmed","dimmedHover","dimmedBadge","TFBadgeColors","TFBadge","isBackground","withBackground","BackendClientInitialization","definitionsRevision","getTenantToken","isModalOpened","setModalOpened","fetchWithStatusCheck","Authorization","urls","backend","withCloseButton","reload","onReload","PublicApiClientInitialization","PublicApiClient","visualModifiers","AdhocSearchPersonParams","middleName","birthDate","OverviewAccountPepStatus","PEP","NOT_PEP","FAMILY_MEMBER","CLOSE_ASSOCIATE","DEPEPED","DONT_KNOW","AdhocSearchEntityParams","entityName","applyVisualModifierPatches","definitions","structuredClone","modifierKey","optionsToModify","visual","weightA","weightB","modifiedOptions","useInitialDataQuery","tdm","cs","tenantConfig","BackendNoAuthClient","default_locale","modifiedDefs","defsRevision","StateProvider","initialDataQuery","defaultOptions","queries","refetchOnWindowFocus","AppProvider","ReactQueryDevtools","DatesProvider","SUCCESS_MESSAGE","UNEXPECTED_ERROR_MESSAGE","MAX_RETRIES_EXCEEDED_MESSAGE","OPT_OUT_MESSAGE","MISSING_API_KEY_MESSAGE","INVALID_API_KEY","CLIENT_NOT_INITIALIZED","IdentifyOperation","RevenueProperty","SpecialEventType","LogLevel","Status","OfflineDisabled","buildResult","UUID","Timeline","plugin","__generator","pluginName","plugins","before_1","before_1_1","e_1_1","enrichment","enrichment_1","enrichment_1_1","e_2_1","destination","executeDestinations","e_1","e_2","__read","__values","eventClone","resolveResult","UNSET_VALUE","AMPLITUDE_PREFIX","STORAGE_PREFIX","AMPLITUDE_SERVER_URL","EU_AMPLITUDE_SERVER_URL","AMPLITUDE_BATCH_SERVER_URL","EU_AMPLITUDE_BATCH_SERVER_URL","MAX_PROPERTY_KEYS","isValidObject","properties","isValidProperties","isValid","value_1","value_1_1","valueElement","Identify","operation","userPropertyMap","createTrackEvent","eventInput","eventProperties","eventOptions","baseEvent","createIdentifyEvent","identify","identifyEvent","createGroupIdentifyEvent","groupType","groupName","groupIdentify","createGroupEvent","groupEvent","createRevenueEvent","revenue","returnWrapper","awaitable","AmplitudeCore","queueName","queuedFunctions","queuedFunctions_1","queuedFunctions_1_1","queuedFunction","optOut","Revenue","productId","quantity","price","revenueType","chunkSize","chunkIndex","Logger","_i","getDefaultConfig","Config","serverConfig","createServerConfig","getServerUrl","serverZone","useBatch","serverUrl","_serverZone","getErrorMessage","getResponseBodyString","responseBodyString","Destination","unsent","shouldAddToQueue","tryable","useRetry","later","batches","eventWithoutExtra","dropIndex","__spreadArray","dropIndexSet","dropUserIds","dropDeviceIds","throttledIndex","dropUserIdsSet","dropDeviceIdsSet","throttledIndexSet","updatedEvents","eventsToRemove","queuedContext","getStacktrace","ignoreDepth","trace","getClientLogConfig","getValueByStringPath","getClientStates","paths_1","paths_1_1","debugWrapper","fnName","getLogConfig","getStates","fnContext","debugContext","MemoryStorage","BaseTransport","_serverUrl","_payload","responseJSON","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","getGlobalScope","getQueryParams","globalScope","tryDecodeURIComponent","UTM_CAMPAIGN","UTM_CONTENT","UTM_ID","UTM_MEDIUM","UTM_SOURCE","UTM_TERM","DCLID","FBCLID","GBRAID","GCLID","KO_CLICK_ID","LI_FAT_ID","MSCLKID","RDT_CID","TTCLID","TWCLID","WBRAID","BASE_CAMPAIGN","CampaignParser","utmCampaign","utmContent","utmId","utmMedium","utmSource","utmTerm","getCookieName","apiKey","postKey","getOldCookieName","domainWithoutSubdomain","isDirectTraffic","isNewCampaign","isNewSession","referring_domain","currentCampaign","prevReferringDomain","previousCampaign","isExcludedReferrer","hasNewCampaign","hasNewDomain","excludeReferrers","referringDomain","createCampaignEvent","campaign","campaignParameters","getDefaultExcludedReferrers","cookieDomain","getStorageKey","sessionTimeout","lastEventTime","currentTime","timeSinceLastEvent","WebAttribution","isEventInNewSession","event_id","campaignEvent","CookieStorage","testStrorage","testKey","expirationDays","expireDate","FetchTransport","responseText","ApplicationContextProviderImpl","getLanguage","EventBridgeImpl","receiver","isEqual","obj1","obj2","typeA","typeB","primitive_1","isArrayA","isArrayB","sorted1","sorted2","result_1","ID_OP_SET","ID_OP_UNSET","ID_OP_CLEAR_ALL","ownProps","resArray","IdentityStoreImpl","actingUserProperties","actingIdentity","deviceId","userProperties","actingProperties","originalIdentity","safeGlobal","AnalyticsConnector","instanceName","getAnalyticsConnector","setConnectorUserId","setConnectorDeviceId","IdentityEventSender","userLanguage","isTrackingEnabled","defaultTracking","isAttributionTrackingEnabled","isFileDownloadTrackingEnabled","isFormInteractionTrackingEnabled","isPageViewTrackingEnabled","isSessionTrackingEnabled","getPageViewTrackingConfig","trackOn","trackHistoryChanges","pageCounter","isDefaultPageViewTrackingEnabled","getAttributionTrackingConfig","convertProxyObjectToRealObject","name_1","isInstanceProxy","instanceProxy","BROWSER_PLATFORM","IP_ADDRESS","lastEventId","nextEventId","BrowserStorage","storage","random","testStorage","MAX_ARRAY_LENGTH","LocalStorage","droppedEventsCount","SessionStorage","XHRTransport","responsePayload","parsedResponsePayload","SendBeaconTransport","parseLegacyCookies","cookieStorage","deleteLegacyCookies","cookieName","sessionId","parseTime","integer","DEFAULT_EVENT_PREFIX","DEFAULT_FORM_START_EVENT","DEFAULT_FORM_SUBMIT_EVENT","DEFAULT_FILE_DOWNLOAD_EVENT","DEFAULT_SESSION_START_EVENT","DEFAULT_SESSION_END_EVENT","FILE_EXTENSION","FILE_NAME","LINK_ID","LINK_TEXT","LINK_URL","FORM_ID","FORM_NAME","FORM_DESTINATION","DEFAULT_IDENTITY_STORAGE","DEFAULT_SERVER_ZONE","BrowserConfig","appVersion","cookieOptions","flushIntervalMillis","flushMaxRetries","flushQueueSize","identityStorage","ingestionMetadata","loggerProvider","minIdLength","offline","partnerId","plan","storageProvider","trackingOptions","useBrowserConfig","amplitudeInstance","legacyCookies","previousCookies","queryParams","_y","_z","_0","_1","_2","_3","getTopLevelDomain","createCookieStorage","levels","omitUndefined","defaultPageViewEvent","pageViewTrackingPlugin","amplitude","pushState","localConfig","createPageViewEvent","getCampaignParams","shouldTrackOnPageLoad","previousURL","trackHistoryPageView","newURL","shouldTrackPageView","shouldTrackHistoryPageView","trackHistoryPageViewWrapper","unused","pageViewEvent","isCampaignEvent","$set","$unset","userProperties_1","trackingOption","oldURL","formInteractionTracking","eventListeners","addEventListener","removeClickListeners","addFormInteractionListener","hasFormChanged","stringOrUndefined","mutations","execute","teardown","fileDownloadTracking","addFileDownloadListener","ext","fileExtension","links","notified","detNotify","networkConnectivityCheckerPlugin","addNetworkListener","removeNetworkListeners","AmplitudeBrowser","userIdOrOptions","browserOptions","attributionTrackingOptions","querySessionId","connector","previousSessionId","isCampaignEventTracked","shouldSetSessionIdOnNewCampaign","setUserId","AmplitudeInitialization","api_key","pageViews","sessions","formInteractions","fileDownloads","String","SentryInitialization","routingInstrumentation","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","email","ACCOUNT_STATUS_MESSAGES","ACCOUNT_CREATED","ACCOUNT_CLOSED","ACCOUNT_ACTIVATED","ACCOUNT_REJECTED","ACCOUNT_SUSPENDED","ACCOUNT_USER_ASSIGNED","ACCOUNT_USER_UNASSIGNED","REVIEW_PENDING","REVIEW_UPDATE_REQUIRED","REVIEW_VERIFIED","REVIEW_COMMENTED","KYC_REVIEW_DATE_REACHED","CLIENT_CASE_REQUEST_SENT","CLIENT_CASE_REQUEST_REVOKED","CLIENT_CASE_REQUEST_VIEWED","CLIENT_CASE_REQUEST_UPDATED","CLIENT_CASE_REQUEST_CLOSED","CRA_CALCULATED","USER_INVITATION_REVOKED","ACCOUNT_ARCHIVED","availableFilters","useFilteredEvents","setFilters","filteredEvents","eventFilters","dateFilters","matchesEventKind","matchesDateRange","matchesSearch","eventKind","startDate","endDate","dateStr","eventDate","setHours","eventLabel","timelineItem","AccountEventLog","isEventsLogPending","sortedEvents","createdAtA","getTime","createdAtB","eventsFilters","SearchInput","onSearchChange","FilterButton","popoverPosition","activeFilters","bulletSize","lineWidth","itemBody","paddingLeft","userExists","getTimelineData","authorId","bullet","fillRule","users","endOnlyClientEvents","clientCasesRequestsQueryOptions","listClientCaseRequests","useClientCasesRequests","clientCaseRequestQueryOptions","getClientCaseRequest","useClientCaseRequest","useCreateClientCaseRequestMutation","clientEmail","requestKind","livenessCheckEntityId","createClientCaseRequest","useUpdateClientCaseRequestMutation","updateClientCaseRequest","useRevokeClientCaseRequestMutation","revokeClientCaseRequest","useSendClientCaseRequestEmailMutation","sendClientCaseRequestEmail","useDownloadClientCaseRequestFileMutation","fileStorageKey","downloadClientCaseRequestFile","useCloseClientCaseRequestMutation","closeClientCaseRequest","AccountStructureButton","fullScreen","AccountStructure","AccountTasksButton","tasksTotal","flexWrap","Drawer","overlayProps","lockScroll","AccountTasks","onTaskActionFinish","getAccountLabel","accountType","AccountHeader","isEntity","isUpdateRequest","pathSegments","casesIndex","indexOf","caseUniqId","uuidToSequentialIdMap","sequential_id","breadcrumbs","TFPageHeader","toolbar","useAccountSettingsSegment","rmFeedbackSegmentKind","isPartiallyEditedSegment","segmentDefs","updateMutation","AccountOverview","priorityObject","accountInfo","AccountToolbar","AccountSettings","AccountPathResolver","applicant","AccountProvider","formStructure","setFields","fieldValues","setFieldValues","canPrepareAccountsData","prevFields","newValues","prevValues","validateInitialValues","isReviewFromConnectionGroup","reviewLinkId","some","useSelectedAccountStructureWithTasks","accountStructure","getAccountStructure","entitiesDefs","flatMap","SharedAccountStructure","withLocalStorage","withLayoutSelect","withMinimap","onNodeClick","getAccountsFilters","isSelfSegment","selfSegmentKinds","getSegmentWithSelfSegmentDataDependency","getAdditionalDataForBackgroundCheck","segmentsData","selfSegmentsKinds","first_name","middle_name","defaultManagersFilter","AssignedManagersSelect","managers","managersFilter","currentUser","availableManagers","userA","userB","newSelectedIds","has","AssignedManagersWidget","isSuccess","PROSPECT","ACTIVE","SUSPENDED","CLOSED","ARCHIVED","AccountStatus","PRIORITY","LOW","MEDIUM","HIGH","PriorityButton","accountPriority","setAccountPriority","riskLevelColors","VERY_HIGH","RED","ORANGE","YELLOW","GREEN","accountNameText","filtersNamesMap","verification","assignedTo","sortingNamesMap","statusChangedAt","AccountTable","pagination","setPagination","pageSize","pageIndex","useLocalStorage","debouncedSearch","useDebouncedValue","filtersState","setFiltersState","sortingState","setSortingState","sortingParams","sortBy","sortOrder","filteringParams","hasArchivedStatusMessage","TFDataTable","noDataText","serverSorting","onSortingChange","serverFiltering","onFiltersChange","serverPagination","rowCount","onPaginationChange","serverSearch","accessorKey","Cell","cell","row","nextKind","sortUndefined","changedAt","calculateTillNow","enableSorting","assignedManagers","riskLevel","DIMMED","daysOverdue","getOverdueDaysCount","RiskModalForm","paddingTop","TaskIcon","ThemeIcon","TaskItem","reviewRoot","reviewTitle","entityHeader","entityLabel","hideLabel","reviewConnectionKind","formPart","formPath","riskModal","connectionModalState","setConnectionModalState","isModalOpen","closeConnectionModal","createConnection","parentEntityKind","borderBottom","DateValue","displayValue","useSelectedAccountRmData","AccountStatusBadge","setDefaultValue","defaultFields","defaultField","ProspectActiveConfirmationText","getFields","getModalData","newAccountStatus","verificationStatus","additionalFields","confirmButtonLabel","accountNameConfirmation","getAvailableStatuses","AccountStatusModal","modalData","account_name","changedFields","accountStatusBadgeColors","UNDEFINED","BLUE","statusModal","potentialStatuses","setPotentialStatuses","setLabel","setModalData","tempStatus","setTempStatus","clientAccountStatus","setClientAccountStatus","rmData","canEditAccountData","badgeProps","LatestReviewDate","onSave","setIsOpen","selectedDate","setSelectedDate","closePopover","togglePopover","onSaveChanges","DatePicker","fontSizes","presetsLabel","presets","presetButton","overdueText","NextReviewDate","baseDate","handleDateChange","presetDate","onDateChange","INDIGO","ReviewStatus","RiskProfileForm","default","RiskProfile","readonly","riskProfileModal","minHeight","borderLeft","paddingRight","itemTitle","wasActivated","isClosed","clientCaseKindLabels","LIVENESS_CHECK","FREEFORM","ADDITIONAL_DOCUMENTS","clientCaseKindOptions","isValidEmail","atIndex","dotIndex","extractUniqueIndividualEntities","individualEntities","initialFieldsState","emailError","typeError","graphIdError","CreateCaseModal","createClientCaseMutation","fieldsState","setFieldsState","caseTypeSelectOptions","updatedBadge","sentBadge","defaultBadge","ClientCasesTable","createClientCaseModal","formatID","filterFn","columnId","filterValue","accessorFn","sentAt","dueAt","authorUserInfo","padStart","tooltipContent","ClientEmail","updateClientCaseMutation","DueDate","formatedDate","excludeDate","LivenessCheckResults","fieldFilters","divider","dateContainer","textAlign","markdownContainer","flexGrow","markdown","marginBottom","EditClientCase","editorContent","setEditorContent","caseRequest","revokeClientCaseMutation","sendClientCaseRequestEmailMutation","downloadClientCaseRequestFileMutation","closeClientCaseRequestMutation","editorKey","setEditorKey","handleDownloadFile","fileName","requestPayload","isFreeForm","hasTextChanged","hasDueDateChanged","isSameDate","isFormChanged","freeFormResponse","uploadedFiles","authorLabel","toISOString","TFMarkdownTextEditor","MessageContainer","TFMarkdownText","craSettingsOptions","getCraSettings","useCraSettings","useUploadCRATemplateMutation","uploadCraTemplate","useDeleteCRATemplateMutation","deleteCraTemplate","useSetCraAutoAssigneesGroupsMutation","setAssigneesManagersRiskLevelMap","craAutoAssigneesGroupsOptions","getAssigneesManagersRiskLevelMap","useCraAutoAssigneesGroups","usersInvitationsQueryOptions","getUsersInvitations","useUsersInvitations","useRevokeUserInvitationMutation","revokeUsersInvitation","usersQueryOptions","getUsers","useUsers","useUserInvitationMutation","invites","invite","createUsersInvitation","useUpdateUserMutation","updateUser","textContainer","labelText","flexContainer","menuItemContainer","menuItemText","getDeletedUserPlaceholder","AutoAssignedTable","riskLevelMap","userIdMap","usersWithUserInfo","setCraAutoAssigneesGroupsMutation","handleAddUser","handleRemoveUser","hideSearchbar","sortingFn","rowA","rowB","rowAName","rowBName","cap","enableResizing","alert","AutoAssignedSettings","craAutoAssigneesGroups","usersQuery","DeleteTemplateButton","deleteCRATemplateMutation","DownloadTemplateLink","downloadFileMutation","UploadTemplateButton","resetFileRef","uploadCRATemplateMutation","FileButton","accept","resetRef","onSettled","CraSettingsTable","accountOptions","craTemplates","accountOption","uploadDate","monitoringQueryOptions","useMonitoringQuery","monitoringMatchesQueryOptions","useMonitoringMatchesQuery","monitoringMatchesCommentsQueryOptions","useMonitoringMatchesCommentsQuery","useUpdateMonitoringCommentMutation","useAcknowledgeMonitoringSearchMutation","monitoringSearchAcknowledge","AcknowledgeChangesButton","monitoring","unacknowledgedChangesCount","MonitoringCard","MonitoringCardAssociations","overviewData","MonitoringCardComments","storedComments","setComments","updateMonitoringCommentMutation","MonitoringCardCommentsList","MonitoringCardCommentsButton","commentsCount","setCommentsCount","newComment","MonitoringMatchCard","JobSearchResultCard","getResultHit","MonitoringMatchWrapper","useSearchParams","entityData","key_information","MonitoringReportButton","TFPageContent","MonitoringCardForm","modifiers","segmentPreRenderer","SEGMENTS","MonitoringCardMatches","Grid","Col","MonitoringCardMatchesTable","isIndividual","monitoringMatchesQuery","profiles","dateOfIncorporation","created_utc","matchStatus","match_status","entityType","entity_type","countries","country_names","dateOfBirth","date_of_birth","handleRowClick","totalHits","MonitoringCardMatchStatus","initialMatchStatus","currentStatus","setCurrentStatus","toggleModal","updateMatchStatus","matchIds","updateStatus","borderStyle","ROUTES","MonitoringCardTabs","tabsList","monitoringSearchDetailsPdf","saveFile","totalMatches","MonitoringTable","monitoringList","MonitoringProvider","entityQuery","selectedAccount","useObserveEffect","useReviewDecisionMutation","reviewSegmentDecisionWrite","listSegmentIdentities","reviewFormCommentWrite","reviewConnectionId","formId","ReviewDecisionButton","reviewStatus","rejectModal","makeDecision","handleReject","handleApprove","RejectModal","FormCommentsButton","commentsModal","listFormComments","nextComment","badgeStyles","flexShrink","valid","verified","pending","State","iconComponent","IconComponent","FormStatusLabel","FormStatusLabelBase","FormFooter","isDecisionButtonVisible","innerPadding","statuses","Form","additionalData","formControl","initialRevisions","setRevisions","formControlRef","FormWrapper","def","hideCommentsButton","ReviewFormContent","additionalSegments","segmentWithSelfSegmentDataDependency","requiredSelfSegment","segmentsIdentities","s2","hasPrevErrors","ReviewForm","selectForm","formName","connectionPath","Navigate","ReviewTransitionButton","confirmationModal","ReviewTransitionModal","setReadiness","reviewTransition","revisionCounter","EntityFormFooter","EntityReviewForm","segmentsReadData","useOutletContext","formStatus","getEntityFormStatus","capabilitiesDescription","UserCard","isEditingThemself","allCapabilities","setFirstName","setLastName","setCapabilities","handleFirstNameChange","handleLastNameChange","handleToggleCapability","prevCapabilities","updateUserMutation","saveChanges","userParams","isEnabled","TFField","TFSection","Checkbox","UserDeleteButton","suspendUser","deleteUser","UserInvitationForm","userInvitationMutation","control","useForm","nanoid","useFieldArray","submit","idx","Controller","render","fieldState","validate","MultiSelect","UserInvitationsTable","usersInvitations","revokeUserInvitationMutation","twoFactorContainer","twoFactorIcon","anchor","UserTable","isTwoFactorEnabled","lastActiveAt","clerkDefaultError","longMessage","AcceptInvitationRoute","clerkStatus","clerkTicket","setState","signInWithTicket","useSignInWithTicket","redirectUrl","SignUp","routing","signInForceRedirectUrl","origin","TFErrorTemplate","AccountListRoute","TABS","CRASettingsLayout","accountsExportHistoryOptions","listAccountsExport","useAccountsExportHistoryQuery","useOrderAccountsExportMutation","orderAccountsExport","useDownloadAccountsExportMutation","jobId","downloadAccountsExport","statusesMap","ExportHistoryTable","exportHistoryQuery","downloadAccountsExportMutation","downloadResult","OrderExportButton","orderAccountsExportMutation","DataExportRoute","EntitiesTable","connectionStatus","relations","EntityRelationsTable","EntityListRoute","InstantCheckRoute","AccountCardError","AccountCardLayout","stepTitle","SELECT","CONFIRM","BulkReviewModal","initialForms","formSelection","setStep","formsState","setFormsState","closeModal","toggleForm","prevForms","isFormSelected","segmentsToApprove","isAnyFormSelected","BulkReviewButton","toggleIsOpened","formsToReview","hasFormsToApprove","AccountEntityWidget","AccountEntityLayout","setActiveTab","withEntityObserver","Panel","data-state","isApplicant","currentReview","rootEntity","getSegmentsForReview","entityForms","accountEntityConnection","rootFromEntity","connectionSegments","connectionForms","AccountReviewLayout","AccountAlert","isNotFilled","AccountTabs","clientCases","routeBindings","AccountTabsLayout","EntityWidget","EntityLayout","setSearchParams","activeTab","InstantCheckHitsLayout","onNewSearch","searchButtonWrapper","InstantCheckSearchForm","isSearching","setIsSearching","instantCheckParams","person","SegmentedControl","InstantCheckTable","onRowClick","onOpenCard","downloadCertificateMutation","useDownloadMonitoringSearchCertificateMutation","searchForm","InstantCheckSearchLayout","MonitoringCardLayout","MonitoringCardTabsLayout","MonitoringMatchLayout","goToMatchesList","NavigateToFirstAccountEntityFormRoute","firstForm","NavigateToFirstEntityFormRoute","NavigateToFirstFormRoute","UserTablesLayout","LoginRoute","agreeWithNotice","setAgreeWithNotice","MobileNotice","onContinue","SignIn","forceRedirectUrl","MonitoringRoute","NoPermissionsRoute","handleLogout","useTenantSchemaId","allPaymentsOptions","useAllPayments","useCreatePayment","schemaId","create","order_id","account_external_id","amount","amount_currency","assigned_managers","instruction","sender_account_number","recipient_account_number","amount_usd","payment_date","PROFILE","onMutate","TestGraphQLRoute","allPaymentsQuery","createPaymentMutation","payment","tokensQueryOptions","tokenControllerListTokens","useTokens","useCreateTokenMutation","tokenControllerCreateToken","useDeleteTokenMutation","tokenControllerDeleteToken","TokensTable","deleteTokenMutation","AddTokenModal","createTokenMutation","selectedName","setSelectedName","displayedToken","setDisplayedToken","handleNameChange","handleSave","grants","CopyButton","copied","rem","AddTokenButton","addTokenModal","TokenListRoute","UserCardRoute","selectedUser","canDeleteUser","UserInvitationRoute","AuthRouteGuard","allowWhen","redirectTo","layoutWrapper","LayoutWrapper","Router","BrowserRouter","Routes","Route","shouldRevalidate","InstantCheckCardLayout","TFNotFoundRoute","App","appState","enableState","APP_VERSION","createRoot","getElementById","VanillaInitializationError","DGLayout","errorBox","h3","flexDirection"],"sources":["../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/is.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/worldwide.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/browser.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/error.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/dsn.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/logger.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/string.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/object.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/stacktrace.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/supports.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/vendor/supportsHistory.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/instrument.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/memo.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/misc.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/env.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/node.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/normalize.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/syncpromise.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/promisebuffer.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/url.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/severity.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/time.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/tracing.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/envelope.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/clientreport.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/ratelimit.js","../../../../node_modules/.pnpm/@sentry+utils@7.48.0/node_modules/@sentry/utils/esm/baggage.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/constants.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/session.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/scope.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/hub.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/utils/hasTracingEnabled.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/tracing/utils.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/tracing/errors.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/tracing/span.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/tracing/transaction.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/tracing/idletransaction.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/tracing/hubextensions.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/exports.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/api.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/envelope.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/integration.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/utils/prepareEvent.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/baseclient.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/sdk.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/transports/base.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/version.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/integrations/functiontostring.js","../../../../node_modules/.pnpm/@sentry+core@7.48.0/node_modules/@sentry/core/esm/integrations/inboundfilters.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/helpers.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/eventbuilder.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/userfeedback.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/client.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/transports/utils.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/transports/fetch.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/transports/xhr.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/stack-parsers.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/integrations/globalhandlers.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/integrations/trycatch.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/integrations/linkederrors.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/integrations/httpcontext.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/integrations/dedupe.js","../../../../node_modules/.pnpm/@sentry+browser@7.48.0/node_modules/@sentry/browser/esm/sdk.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/types.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/backgroundtab.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/bindReporter.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/getNavigationEntry.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/getActivationStart.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/initMetric.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/observe.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/onHidden.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/getCLS.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/getFID.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/web-vitals/getLCP.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/metrics/utils.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/metrics/index.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/request.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/router.js","../../../../node_modules/.pnpm/@sentry-internal+tracing@7.48.0/node_modules/@sentry-internal/tracing/esm/browser/browsertracing.js","../../../../node_modules/.pnpm/@sentry+react@7.48.0_react@18.2.0/node_modules/@sentry/react/esm/sdk.js","../../../../node_modules/.pnpm/@sentry+react@7.48.0_react@18.2.0/node_modules/@sentry/react/esm/errorboundary.js","../../../../node_modules/.pnpm/@sentry+react@7.48.0_react@18.2.0/node_modules/@sentry/react/esm/reactrouterv6.js","../../../../node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/client.js","../../../../node_modules/.pnpm/@tanstack+react-query-devtools@5.29.0_@tanstack+react-query@5.9.0_react-dom@18.2.0_react@18.2_s633pcopsm5hqtb4u6w7gqpdwa/node_modules/@tanstack/react-query-devtools/build/modern/index.js","../../src/core/stores/app.store.ts","../../src/core/stores/config.store.ts","../../src/core/stores/instant-check.store.ts","../../src/core/stores/monitoring.store.ts","../../src/core/providers/AppProvider/AuthProvider.tsx","../../src/core/providers/AppProvider/ConfigProvider.tsx","../../../../node_modules/.pnpm/unraw@3.0.0/node_modules/unraw/dist/errors.js","../../../../node_modules/.pnpm/unraw@3.0.0/node_modules/unraw/dist/index.js","../../../../node_modules/.pnpm/@lingui+core@4.13.0/node_modules/@lingui/core/dist/index.mjs","../../src/core/tfConsole.ts","../../src/core/providers/AppProvider/I18nProvider.tsx","../../src/core/queries/get-account.query.ts","../../src/core/queries/get-definitions.query.ts","../../src/core/queries/get-monitoring-associations.query.ts","../../src/core/queries/get-overview.query.ts","../../src/core/queries/get-processing-scripts.query.ts","../../src/core/queries/get-tenant-config-query.ts","../../src/core/queries/instant-check.query.ts","../../src/core/queries/monitoring-search-details.query.ts","../../src/core/queries/monitoring-searches.query.ts","../../src/core/api/overview.ts","../../src/core/api/account.ts","../../src/core/api/segments.ts","../../src/core/hooks/use-processing-scripts.ts","../../src/core/hooks/use-account-params.ts","../../src/core/hooks/use-selected-account.ts","../../src/core/mutations/monitoring-search-match-status-update.mutation.ts","../../src/core/mutations/set-account-assignees.mutation.ts","../../src/core/mutations/set-account-priority.mutation.ts","../../src/core/mutations/update-monitoring-search-comment.mutation.ts","../../src/core/mutations/write-segments.mutation.ts","../../src/core/hooks/use-account-form.ts","../../src/core/api/accountEvenstLog.ts","../../src/core/utils/i18n/get-label.ts","../../src/core/utils/segments/get-self-segment.ts","../../src/core/types/monitoring.ts","../../src/core/types/index.ts","../../src/core/utils/users/capabilities.tsx","../../src/core/utils/users/get-capabilities.ts","../../src/core/utils/users/get-display-name.ts","../../src/core/utils/users/use-current-user-capability-check.ts","../../src/core/hooks/use-account-info-segments.ts","../../src/core/hooks/use-current-user.ts","../../src/core/hooks/use-entity-connection-labels.ts","../../src/core/hooks/use-get-entity-label.ts","../../../../node_modules/.pnpm/jose@4.14.4/node_modules/jose/dist/browser/lib/buffer_utils.js","../../../../node_modules/.pnpm/jose@4.14.4/node_modules/jose/dist/browser/runtime/base64url.js","../../../../node_modules/.pnpm/jose@4.14.4/node_modules/jose/dist/browser/util/errors.js","../../../../node_modules/.pnpm/jose@4.14.4/node_modules/jose/dist/browser/lib/is_object.js","../../../../node_modules/.pnpm/jose@4.14.4/node_modules/jose/dist/browser/util/base64url.js","../../../../node_modules/.pnpm/jose@4.14.4/node_modules/jose/dist/browser/util/decode_jwt.js","../../src/core/hooks/use-get-tenant-token.ts","../../src/core/hooks/use-monitoring-hits.ts","../../src/core/hooks/use-priority.ts","../../src/core/hooks/use-selected-account-applicant-review.ts","../../src/core/hooks/use-selected-account-tasks.ts","../../src/core/hooks/use-selected-account-tasks-total.ts","../../src/core/hooks/use-selected-monitoring-entity.ts","../../src/core/hooks/use-selected-review.ts","../../../../node_modules/.pnpm/awesome-graphql-client@2.1.0/node_modules/awesome-graphql-client/dist/awesome-graphql-client.mjs","../../src/core/api/client/graphql.ts","../../src/components/shared/AddAccountButton/AddAccountModal.tsx","../../src/components/shared/AddAccountButton/AddAccountButton.tsx","../../src/core/api/connections.ts","../../src/core/api/entities.ts","../../src/core/utils/routes/use-navigate-to-entity.ts","../../src/components/shared/ConnectionForm/ConnectionForm.tsx","../../src/components/shared/AddConnectionButton/AddConnectionButton.tsx","../../src/core/api/files.ts","../../src/components/shared/AppFormBuilder.tsx","../../src/components/shared/AppLayout/HaveIssuesModal.tsx","../../src/components/shared/AppLayout/Affix.tsx","../../src/components/shared/AppLayout/AppMenu.tsx","../../src/components/shared/UserAvatar/UserAvatar.tsx","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/user/user.enums.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/organization/member.enum.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/organization/member.interface.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/notification-template/notification-template.interface.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/execution-details/execution-details.interface.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/messages/action.enum.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/messages/messages.interface.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/builder/filter.types.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/channel/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/events/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/feature-flags/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/message-template/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/pagination/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/subscriber/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/analytics/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/messages/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/types/web-sockets/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/message-template/message-template.interface.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/log/log.enums.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/change/change.interface.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/step/index.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/entities/job/status.enum.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/provider.enum.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/credentials/secure-credentials.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/credentials/provider-credentials.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/channels/email.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/channels/sms.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/channels/chat.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/channels/push.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/channels/in-app.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/providers/providers.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/notification-item-buttons/notificationItemButton.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/handlebar-helpers/handlebarHelpers.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/consts/filters/filters.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/bind.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/utils.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/AxiosError.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/null.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/toFormData.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/buildURL.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/InterceptorManager.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/defaults/transitional.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/platform/browser/classes/FormData.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/platform/browser/classes/Blob.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/platform/browser/index.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/formDataToJSON.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/defaults/index.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/parseHeaders.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/AxiosHeaders.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/transformData.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/cancel/isCancel.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/cancel/CanceledError.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/settle.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/cookies.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/combineURLs.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/buildFullPath.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/parseProtocol.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/speedometer.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/adapters/xhr.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/adapters/adapters.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/dispatchRequest.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/mergeConfig.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/env/data.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/validator.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/core/Axios.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/cancel/CancelToken.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/spread.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/isAxiosError.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../../node_modules/.pnpm/axios@1.4.0/node_modules/axios/lib/axios.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/services/http-client/api.client.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/config/contextPath.js","../../../../node_modules/.pnpm/@novu+shared@0.19.0/node_modules/@novu/shared/dist/esm/config/job-queue.js","../../../../node_modules/.pnpm/@emotion+is-prop-valid@1.3.0/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../../../node_modules/.pnpm/@emotion+styled@11.13.0_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@types+react@18.2.6_react@18.2.0/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../../../../node_modules/.pnpm/@emotion+styled@11.13.0_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@types+react@18.2.6_react@18.2.0/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../../../../node_modules/.pnpm/@emotion+css@11.11.0/node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js","../../../../node_modules/.pnpm/@emotion+css@11.11.0/node_modules/@emotion/css/dist/emotion-css.esm.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/find-element-ancestor/find-element-ancestor.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/create-scoped-keydown-handler/create-scoped-keydown-handler.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/get-context-item-index/get-context-item-index.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/create-safe-context/create-safe-context.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/pack-sx/pack-sx.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/get-safe-id/get-safe-id.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/noop/noop.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/close-on-escape/close-on-escape.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/create-event-handler/create-event-handler.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/use-hovered/use-hovered.js","../../../../node_modules/.pnpm/@mantine+utils@5.10.5_react@18.2.0/node_modules/@mantine/utils/esm/is-element/is-element.js","../../../../node_modules/.pnpm/clsx@1.1.1/node_modules/clsx/dist/clsx.m.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/default-colors.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/font-styles/font-styles.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/focus-styles/focus-styles.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/primary-shade/primary-shade.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/theme-color/theme-color.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/gradient/get-gradient-color-stops/get-gradient-color-stops.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/gradient/gradient.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/size/size.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/breakpoints/breakpoints.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/utils/to-rgba/to-rgba.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/rgba/rgba.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/cover/cover.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/darken/darken.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/lighten/lighten.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/radius/radius.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/variant/variant.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/primary-color/primary-color.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/hover/hover.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/placeholder-styles/placeholder-styles.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/fns/index.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/functions/attach-functions.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/default-theme.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/GlobalStyles.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/MantineCssVariables.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/utils/merge-theme/merge-theme.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/utils/filter-props/filter-props.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/NormalizeCSS.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/MantineProvider.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/theme/utils/get-default-z-index/get-default-z-index.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/tss/utils/use-guaranteed-memo/use-guaranteed-memo.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/tss/default-emotion-cache.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/tss/use-emotion-cache.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/tss/use-css.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/tss/utils/merge-class-names/merge-class-names.js","../../../../node_modules/.pnpm/@mantine+styles@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__react-dom@18._ge67u6bh3fw7tmt62w5ng3lvwa/node_modules/@mantine/styles/esm/tss/create-styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Transition/transitions.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-click-outside/use-click-outside.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-media-query/use-media-query.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-isomorphic-effect/use-isomorphic-effect.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-did-update/use-did-update.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-focus-return/use-focus-return.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-focus-trap/tabbable.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-focus-trap/scope-tab.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-focus-trap/create-aria-hider.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-focus-trap/use-focus-trap.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-id/use-id.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/utils/assign-ref/assign-ref.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-merged-ref/use-merged-ref.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-uncontrolled/use-uncontrolled.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-reduced-motion/use-reduced-motion.js","../../../../node_modules/.pnpm/@mantine+hooks@5.10.5_react@18.2.0/node_modules/@mantine/hooks/esm/use-hover/use-hover.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/Accordion.errors.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/Accordion.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionProvider.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionItem.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionItem/AccordionItem.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/extract-system-styles/extract-system-styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/get-responsive-value/get-responsive-value.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-color-value.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-default-value.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-font-size-value.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/value-getters/get-spacing-value.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/value-getters/value-getters.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/system-props/system-props.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/style-system-props/get-system-styles/get-system-styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/use-sx/use-sx.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Box/Box.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionItem/AccordionItem.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionControl/AccordionControl.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/UnstyledButton/UnstyledButton.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/UnstyledButton/UnstyledButton.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionControl/AccordionControl.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionPanel/AccordionPanel.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Collapse/use-collapse.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Collapse/Collapse.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/AccordionPanel/AccordionPanel.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/ChevronIcon.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Accordion/Accordion.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/ActionIcon/ActionIcon.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Loader/loaders/Bars.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Loader/loaders/Oval.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Loader/loaders/Dots.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Loader/Loader.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/ActionIcon/ActionIcon.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Portal/Portal.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Portal/OptionalPortal.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Text/Text.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Text/Text.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Divider/Divider.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Divider/Divider.js","../../../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.0.0_react@18.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-slot@1.0.1_react@18.2.0/node_modules/@radix-ui/react-slot/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-primitive@1.0.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-primitive/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.0.0_react@18.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-presence@1.0.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-presence/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-context@1.0.0_react@18.2.0/node_modules/@radix-ui/react-context/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.0.0_react@18.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-direction@1.0.0_react@18.2.0/node_modules/@radix-ui/react-direction/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+number@1.0.0/node_modules/@radix-ui/number/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+primitive@1.0.0/node_modules/@radix-ui/primitive/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-scroll-area@1.0.2_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-scroll-area/dist/index.module.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/ScrollArea/ScrollArea.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/ScrollArea/ScrollArea.js","../../../../node_modules/.pnpm/@floating-ui+react-dom@1.3.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js","../../../../node_modules/.pnpm/@floating-ui+react@0.19.2_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@floating-ui/react/dist/floating-ui.react.esm.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Floating/use-floating-auto-update.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Popover/use-popover.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Popover/Popover.errors.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Popover/Popover.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Popover/PopoverTarget/PopoverTarget.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Popover/PopoverDropdown/PopoverDropdown.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Transition/get-transition-styles/get-transition-styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Transition/use-transition.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Transition/Transition.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/FocusTrap/FocusTrap.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Floating/FloatingArrow/get-arrow-position-styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Floating/FloatingArrow/FloatingArrow.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Popover/PopoverDropdown/PopoverDropdown.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Floating/get-floating-position/get-floating-position.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Popover/Popover.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputLabel/InputLabel.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputLabel/InputLabel.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputError/InputError.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputError/InputError.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputDescription/InputDescription.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputDescription/InputDescription.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputWrapper.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputWrapper/get-input-offsets.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputWrapper/InputWrapper.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputWrapper/InputWrapper.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/InputPlaceholder/InputPlaceholder.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/Input.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Input/Input.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Avatar/AvatarPlaceholderIcon.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Avatar/AvatarGroup/AvatarGroup.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Avatar/AvatarGroup/AvatarGroup.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Avatar/AvatarGroup/AvatarGroup.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Avatar/Avatar.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Avatar/Avatar.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Badge/Badge.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Badge/Badge.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Button/ButtonGroup/ButtonGroup.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Button/ButtonGroup/ButtonGroup.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Button/Button.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Button/Button.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Group/filter-falsy-children/filter-falsy-children.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Group/Group.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Group/Group.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Stack/Stack.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Stack/Stack.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Checkbox/CheckboxGroup/InputsGroup.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/InlineInput/InlineInput.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/InlineInput/InlineInput.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Overlay/Overlay.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Overlay/Overlay.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Floating/use-delayed-hover.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/LoadingOverlay/LoadingOverlay.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/LoadingOverlay/LoadingOverlay.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/Menu.errors.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/Menu.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuDivider/MenuDivider.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuDivider/MenuDivider.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuDropdown/MenuDropdown.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuItem/MenuItem.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuItem/MenuItem.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuLabel/MenuLabel.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuLabel/MenuLabel.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/MenuTarget/MenuTarget.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/Menu.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Menu/Menu.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Switch/SwitchGroup.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Switch/SwitchGroup/SwitchGroup.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Switch/Switch.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Switch/Switch.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/Tabs.errors.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/Tabs.context.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/TabsList/TabsList.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/TabsList/TabsList.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/TabsPanel/TabsPanel.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/TabsPanel/TabsPanel.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/Tab/Tab.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/Tab/Tab.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/TabsProvider.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/Tabs.styles.js","../../../../node_modules/.pnpm/@mantine+core@5.10.5_@emotion+react@11.13.3_@types+react@18.2.6_react@18.2.0__@mantine+hooks@_3j2yxpwwb6znuxnhe467s5jhui/node_modules/@mantine/core/esm/Tabs/Tabs.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/novu-provider.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useProviderCheck.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useNovuContext.js","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/subscribable.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/utils.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/focusManager.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/retryer.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/logger.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/removable.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/query.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/queryCache.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/mutation.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/queryClient.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/queryObserver.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/infiniteQueryObserver.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.35.3/node_modules/@tanstack/query-core/build/lib/mutationObserver.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/isRestoring.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/utils.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/errorBoundaryUtils.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/suspense.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useBaseQuery.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useQuery.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useMutation.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.35.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useInfiniteQuery.mjs","../../../../node_modules/.pnpm/lodash.debounce@4.0.8/node_modules/lodash.debounce/index.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useSetQueryKey.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/queryKeys.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/store.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useStore.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useFetchNotificationsQueryKey.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useUnseenCountQueryKey.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useDataRef.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useUnseenCount.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/notifications.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useNotifications.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/novu-theme.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useNovuTheme.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/notification-center.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useNotificationCenter.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/af.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/am.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ar.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/as.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/az.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/be.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/bg.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/bh.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/bn.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/bs.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ca.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/cs.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/da.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/de.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/el.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/en.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/es.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/eu.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/fa.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/fi.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/fr.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ga.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/gl.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/gu.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/he.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/hi.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/hr.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/hu.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/hy.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/id.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ig.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/it.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ja.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ka.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/kk.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/km.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ko.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ku.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/lo.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/lt.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/lv.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ml.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/mr.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ms.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/nb.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ne.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/nl.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/or.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/pa.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/pl.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/pt.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ro.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ru.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/sa.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/sd.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/si.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/sm.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/sq.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/sv.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ta.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/te.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/th.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/tl.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/tr.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/uk.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ur.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/uz.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/vi.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/zh.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/zu.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/languages/ba.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/i18n/lang.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/i18n.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useTranslations.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useFetchUserPreferencesQueryKey.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useUpdateUserPreferences.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/utils/pagination.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useFetchNotifications.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useFetchOrganization.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useFeedUnseenCountQueryKey.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useFeedUnseenCount.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useFetchUserPreferences.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useMarkNotificationsAs.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useRemoveNotification.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useRemoveAllNotifications.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/GradientDot.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/DotsHorizontal.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/Bell.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/Cogs.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/ArrowLeft.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/Trash.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/Read.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/channels/Sms.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/channels/Mail.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/channels/Mobile.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/channels/Chat.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/avatar-system-icons/ErrorIcon.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/avatar-system-icons/Info.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/avatar-system-icons/Question.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/avatar-system-icons/Success.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/avatar-system-icons/Up.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/avatar-system-icons/Warning.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/avatar-system-icons/Avatar.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/utils/styles.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/styles/styles-provider.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/UnseenBadge.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/layout/header/Header.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/layout/header/UserPreferenceHeader.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/layout/footer/Footer.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/layout/footer/FooterContainer.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/Loader.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/user-preference/styles.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/user-preference/WorkflowHeader.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/user-preference/channels.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/icons/Check.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/config/colors.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/user-preference/ChannelPreference.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/user-preference/UserPreferenceItem.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/images/NoSettings.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/user-preference/SubscriberPreference.js","../../../../node_modules/.pnpm/react-infinite-scroll-component@6.1.0_react@18.2.0/node_modules/react-infinite-scroll-component/dist/index.es.js","../../../../node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js","../../../../node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/config/shadows.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/config/themeDefaultValues.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/utils/defaultTheme.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/notification-item/NotificationItemButton.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/notification-item/ActionContainer.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/utils/When.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/utils/date.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/notification-item/NotificationListItem.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/NotificationsList.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/images/NoNewNotifications.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/NotificationsListTab.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/layout/tabs/Tabs.styles.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/layout/tabs/Tabs.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/FeedsTabs.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/shared/interfaces/index.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/layout/Layout.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/components/AppContent.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/novu-theme-provider.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-center/NotificationCenter.js","../../../../node_modules/.pnpm/@novu+client@0.19.0/node_modules/@novu/client/dist/esm/api/api.service.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useMarkNotificationAsRead.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useMarkNotificationAsSeen.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/store-provider.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/store/notifications-provider.context.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/utils/token.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useSession.js","../../../../node_modules/.pnpm/engine.io-parser@5.2.1/node_modules/engine.io-parser/build/esm/commons.js","../../../../node_modules/.pnpm/engine.io-parser@5.2.1/node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../../../node_modules/.pnpm/engine.io-parser@5.2.1/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../../../node_modules/.pnpm/engine.io-parser@5.2.1/node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../../../node_modules/.pnpm/engine.io-parser@5.2.1/node_modules/engine.io-parser/build/esm/index.js","../../../../node_modules/.pnpm/@socket.io+component-emitter@3.1.0/node_modules/@socket.io/component-emitter/index.mjs","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/globalThis.browser.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/util.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/transport.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/contrib/yeast.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/transports/polling.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/transports/websocket.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/transports/webtransport.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/transports/index.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../../../node_modules/.pnpm/engine.io-client@6.5.2/node_modules/engine.io-client/build/esm/socket.js","../../../../node_modules/.pnpm/socket.io-client@4.7.2/node_modules/socket.io-client/build/esm/url.js","../../../../node_modules/.pnpm/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/esm/is-binary.js","../../../../node_modules/.pnpm/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/esm/binary.js","../../../../node_modules/.pnpm/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/esm/index.js","../../../../node_modules/.pnpm/socket.io-client@4.7.2/node_modules/socket.io-client/build/esm/on.js","../../../../node_modules/.pnpm/socket.io-client@4.7.2/node_modules/socket.io-client/build/esm/socket.js","../../../../node_modules/.pnpm/socket.io-client@4.7.2/node_modules/socket.io-client/build/esm/contrib/backo2.js","../../../../node_modules/.pnpm/socket.io-client@4.7.2/node_modules/socket.io-client/build/esm/manager.js","../../../../node_modules/.pnpm/socket.io-client@4.7.2/node_modules/socket.io-client/build/esm/index.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/hooks/useInitializeSocket.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/novu-provider/NovuProvider.js","../../../../node_modules/.pnpm/@novu+notification-center@0.19.0_@types+react@18.2.6_acorn@8.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@novu/notification-center/dist/esm/components/notification-bell/NotificationBell.js","../../src/core/appMeta.ts","../../src/components/shared/NotificationCenter/NotificationCenter.tsx","../../src/components/shared/AppLayout/AppHeader.tsx","../../src/components/shared/AppLayout/AppLayout.tsx","../../src/components/shared/AssignedManagersView.tsx","../../src/components/shared/CommentsList/CommentItem.tsx","../../src/components/shared/CommentsList/CommentsList.tsx","../../src/components/shared/ConfirmationModal.tsx","../../src/components/shared/ConnectionMenu.tsx","../../src/components/shared/CounterBadge.tsx","../../src/components/shared/EmptyConnectionScreen/EmptyConnectionScreen.tsx","../../src/components/shared/GroupLabel.tsx","../../src/components/shared/EntityConnectionsWidget/Item.tsx","../../src/components/shared/EntityConnectionsWidget/EntityConnections.tsx","../../src/components/shared/EntityKindIcon.tsx","../../src/components/shared/FormLoader/FormLoader.tsx","../../src/components/shared/FormStatusIndicator.tsx","../../src/components/shared/HiddenAccountsNotice.tsx","../../src/components/shared/ModalFooter.tsx","../../src/components/shared/PrimitiveFormBuilder/Fields/DateField.tsx","../../src/components/shared/PrimitiveFormBuilder/Fields/SelectField.tsx","../../src/components/shared/PrimitiveFormBuilder/Fields/TextField.tsx","../../src/components/shared/PrimitiveFormBuilder/constants.ts","../../src/components/shared/PrimitiveFormBuilder/PrimitiveFormBuilder.tsx","../../src/components/shared/PrimitiveFormBuilder/types.ts","../../src/components/shared/PriorityView.tsx","../../src/components/shared/SideMenu/SideMenu.tsx","../../src/components/shared/SideMenu/SideMenuItem.tsx","../../src/components/shared/ReviewGroupConnections.tsx","../../src/components/shared/ReviewState/ReviewState.tsx","../../src/components/shared/SideMenuLayout.tsx","../../src/components/shared/TFBadge.tsx","../../src/core/providers/AppProvider/BackendClientInitialization.tsx","../../src/core/providers/AppProvider/PublicApiClientInitialization.tsx","../../src/core/providers/AppProvider/visualModifiers.ts","../../src/core/providers/AppProvider/StateProvider.tsx","../../src/core/providers/AppProvider/AppProvider.tsx","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/messages.js","../../../../node_modules/.pnpm/@amplitude+analytics-types@2.5.1/node_modules/@amplitude/analytics-types/lib/esm/event.js","../../../../node_modules/.pnpm/@amplitude+analytics-types@2.5.1/node_modules/@amplitude/analytics-types/lib/esm/logger.js","../../../../node_modules/.pnpm/@amplitude+analytics-types@2.5.1/node_modules/@amplitude/analytics-types/lib/esm/status.js","../../../../node_modules/.pnpm/@amplitude+analytics-types@2.5.1/node_modules/@amplitude/analytics-types/lib/esm/offline.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/timeline.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/constants.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/identify.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/core-client.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/revenue.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/logger.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/config.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/storage/memory.js","../../../../node_modules/.pnpm/@amplitude+analytics-core@2.2.8/node_modules/@amplitude/analytics-core/lib/esm/transports/base.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/global-scope.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/query-params.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/attribution/constants.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/attribution/campaign-parser.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/cookie-name.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/attribution/helpers.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/storage/helpers.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/session.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/attribution/web-attribution.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/storage/cookie.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/transports/fetch.js","../../../../node_modules/.pnpm/@amplitude+analytics-connector@1.5.0/node_modules/@amplitude/analytics-connector/dist/analytics-connector.esm.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/analytics-connector.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/plugins/identity.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/language.js","../../../../node_modules/.pnpm/@amplitude+analytics-client-common@2.2.1/node_modules/@amplitude/analytics-client-common/lib/esm/default-tracking.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/utils/snippet-helper.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/version.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/plugins/context.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/storage/browser-storage.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/storage/local-storage.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/storage/session-storage.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/transports/xhr.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/transports/send-beacon.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/cookie-migration/index.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/constants.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/config.js","../../../../node_modules/.pnpm/@amplitude+plugin-page-view-tracking-browser@2.2.13/node_modules/@amplitude/plugin-page-view-tracking-browser/lib/esm/utils.js","../../../../node_modules/.pnpm/@amplitude+plugin-page-view-tracking-browser@2.2.13/node_modules/@amplitude/plugin-page-view-tracking-browser/lib/esm/page-view-tracking.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/plugins/form-interaction-tracking.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/plugins/file-download-tracking.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/det-notification.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/plugins/network-connectivity-checker.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/browser-client.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/browser-client-factory.js","../../../../node_modules/.pnpm/@amplitude+analytics-browser@2.8.1/node_modules/@amplitude/analytics-browser/lib/esm/index.js","../../src/core/providers/AppProvider/AmplitudeInitialization.tsx","../../src/core/providers/AppProvider/SentryInitialization.tsx","../../src/components/accounts/AccountEventLog/AccountEventLog.tsx","../../src/core/api/caseRequests.ts","../../src/components/accounts/AccountHeader/AccountStructureButton.tsx","../../src/components/accounts/AccountHeader/AccountTasksButton.tsx","../../src/components/accounts/AccountHeader/AccountHeader.tsx","../../src/core/hooks/use-account-settings-segments.ts","../../src/components/accounts/AccountOverview/AccountOverview.tsx","../../src/components/accounts/AccountPathResolver/AccountPathResolver.tsx","../../src/components/accounts/AccountProvider/AccountProvider.tsx","../../src/components/accounts/AccountSettings/formStructure.tsx","../../src/components/accounts/AccountSettings/AccountSettings.tsx","../../src/core/utils/reviews.ts","../../src/components/accounts/AccountStructure/useSelectedAccountStructureWithTasks.ts","../../src/components/accounts/AccountStructure/AccountStructure.tsx","../../src/components/utils/accounts.ts","../../src/components/utils/backgroundCheck.ts","../../src/components/shared/AssignedManagers/AssignedManagersSelect.tsx","../../src/components/shared/AssignedManagers/AssignedManagersWidget.tsx","../../src/components/accounts/AccountTable/AccountStatus.tsx","../../src/components/accounts/AccountTable/PriorityButton.tsx","../../src/components/accounts/AccountTable/AccountTable.tsx","../../src/components/accounts/AccountTasks/RiskModalForm.tsx","../../src/components/accounts/AccountTasks/TaskIcon.tsx","../../src/components/accounts/AccountTasks/TaskItem.tsx","../../src/components/accounts/AccountTasks/AccountTasks.tsx","../../src/components/shared/DateValue/DateValue.tsx","../../src/core/hooks/use-select-account-RM-data.ts","../../src/components/accounts/AccountToolbar/AccountStatus/AccountStatusBadge.tsx","../../src/components/accounts/AccountToolbar/AccountStatus/utils/defaultValues.ts","../../src/components/accounts/AccountToolbar/AccountStatus/content/ProspectActiveConfirmationText.tsx","../../src/components/accounts/AccountToolbar/AccountStatus/utils/modals.tsx","../../src/components/accounts/AccountToolbar/AccountStatus/utils/statuses.ts","../../src/components/accounts/AccountToolbar/AccountStatus/AccountStatusModal.tsx","../../src/components/accounts/AccountToolbar/AccountStatus/constants/constants.ts","../../src/components/accounts/AccountToolbar/AccountStatus/AccountStatus.tsx","../../src/components/accounts/AccountToolbar/LatestReviewDate/LatestReviewDate.tsx","../../src/components/accounts/AccountToolbar/NextReviewDate/NextReviewDate.tsx","../../src/components/accounts/AccountToolbar/ReviewStatus/ReviewStatus.tsx","../../src/components/accounts/AccountToolbar/RiskProfile/RiskProfileForm.tsx","../../src/components/accounts/AccountToolbar/RiskProfile/RiskProfile.tsx","../../src/components/accounts/AccountToolbar/AccountToolbar.tsx","../../src/components/cases/requestKind.ts","../../src/components/cases/utils.ts","../../src/components/cases/CreateCaseModal.tsx","../../src/components/cases/ClientCasesTable.tsx","../../src/components/cases/ClientEmail.tsx","../../src/components/cases/DueDate.tsx","../../src/components/cases/LivenessCheckResults.tsx","../../src/components/cases/EditClientCase.tsx","../../src/core/api/craSettings.ts","../../src/core/api/users.ts","../../src/components/cra-settings/AutoAssignedTable.tsx","../../src/components/cra-settings/AutoAssignedSettings.tsx","../../src/components/cra-settings/DeleteTemplateButton.tsx","../../src/components/cra-settings/DownloadTemplateLink.tsx","../../src/components/cra-settings/UploadTemplateButton.tsx","../../src/components/cra-settings/CraSettingsTable.tsx","../../src/core/api/monitoring.ts","../../src/components/monitoring/AcknowledgeChangesButton.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCard.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardAssociations/MonitoringCardAssociations.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardComments/MonitoringCardComments.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardComments/MonitoringCardCommentsButton.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardComments/MonitoringCardCommentsList.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardMatches/match/MonitoringMatchCard.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardMatches/match/MonitoringMatchWrapper.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardMatches/MonitoringCardForm.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardMatches/MonitoringCardMatches.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardMatches/MonitoringCardMatchesTable.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardMatches/MonitoringCardMatchStatus.tsx","../../src/components/monitoring/MonitoringCard/MonitoringCardTabs/MonitoringCardTabs.tsx","../../src/components/monitoring/MonitoringReportButton/MonitoringReportButton.tsx","../../src/components/monitoring/MonitoringTable/MonitoringTable.tsx","../../src/components/monitoring/MonitroingProvider/MonitoringProvider.tsx","../../src/core/api/reviewDecision.ts","../../src/components/reviews/ReviewDecisionButton/ReviewDecisionButton.tsx","../../src/components/reviews/ReviewForm/FormCommentsButton.tsx","../../src/components/reviews/ReviewForm/FormStatusLabel.tsx","../../src/components/reviews/ReviewForm/FormFooter.tsx","../../src/components/reviews/ReviewForm/Form.tsx","../../src/components/reviews/ReviewForm/FormWrapper.tsx","../../src/components/reviews/ReviewForm/ReviewForm.tsx","../../src/components/reviews/ReviewTransitionButton/ReviewTransitionButton.tsx","../../src/components/reviews/EntityReviewForm/EntityFormFooter.tsx","../../src/components/reviews/EntityReviewForm/EntityReviewForm.tsx","../../src/components/settings/UserCard/UserCard.tsx","../../src/components/settings/UserDeleteButton/UserDeleteButton.tsx","../../src/components/settings/UserInvitationForm/UserInvitationForm.tsx","../../src/components/settings/UsersInvitationsTable/UserInvitationsTable.tsx","../../src/components/settings/UserTable/UserTable.tsx","../../src/routes/AcceptInvitationRoute.tsx","../../src/routes/AccountListRoute.tsx","../../src/routes/CRASettingsLayout.tsx","../../src/core/api/dataExport.ts","../../src/components/data-export/ExportHistoryTable.tsx","../../src/components/data-export/OrderExportButton.tsx","../../src/routes/DataExportRoute.tsx","../../src/components/entities/EntitiesTable.tsx","../../src/components/entities/EntityRelationsTable.tsx","../../src/routes/EntitytListRoute.tsx","../../src/routes/InstantCheckRoute.tsx","../../src/routes/layouts/AccountCardLayout/AccountCardLayout.tsx","../../src/components/shared/BulkReviewButton/BulkReviewModal.tsx","../../src/components/shared/BulkReviewButton/BulkReviewButton.tsx","../../src/routes/layouts/AccountEntityLayout/AccountEntityWidget.tsx","../../src/routes/layouts/AccountEntityLayout/Menu.tsx","../../src/routes/layouts/AccountEntityLayout/AccountEntityLayout.tsx","../../src/routes/layouts/AccountReviewLayout/MenuLabel.tsx","../../src/routes/layouts/AccountReviewLayout/Menu.tsx","../../src/routes/layouts/AccountReviewLayout/AccountReviewLayout.tsx","../../src/routes/layouts/AccountTabsLayout/AccountAlert.tsx","../../src/routes/layouts/AccountTabsLayout/AccountTabs.tsx","../../src/routes/layouts/AccountTabsLayout/AccountTabsLayout.tsx","../../src/routes/layouts/EntityLayout/EntityWidget.tsx","../../src/routes/layouts/EntityLayout/EntityLayout.tsx","../../src/routes/layouts/InstantCheckLayout/InstantCheckCardLayout.tsx","../../src/components/instant-check/InstantCheckSearchForm/InstantCheckSearchForm.tsx","../../src/components/instant-check/InstantCheckTable/InstantCheckTable.tsx","../../src/routes/layouts/InstantCheckLayout/InstantCheckHitsLayout.tsx","../../src/routes/layouts/InstantCheckLayout/InstantCheckSearchLayout.tsx","../../src/routes/layouts/MonitoringLayout/MonitoringCardLayout.tsx","../../src/routes/layouts/MonitoringLayout/MonitoringCardTabsLayout.tsx","../../src/routes/layouts/MonitoringLayout/MonitoringMatchLayout.tsx","../../src/routes/layouts/NavigateToFirstAccountEntityFormRoute.tsx","../../src/routes/layouts/NavigateToFirstEntityFormRoute.tsx","../../src/routes/layouts/NavigateToFirstFormRoute.tsx","../../src/routes/layouts/UserTablesLayout.tsx","../../src/routes/LoginRoute.tsx","../../src/routes/MonitoringRoute.tsx","../../src/routes/NoPermissionsRoute.tsx","../../src/core/api/schemas.ts","../../src/core/api/graphql.ts","../../src/routes/TestGraphQLRoute.tsx","../../src/core/api/tokens.ts","../../src/components/settings/TokensTable/TokensTable.tsx","../../src/components/settings/TokensTable/AddTokenModal.tsx","../../src/components/settings/TokensTable/AddTokenButton.tsx","../../src/routes/TokenListRoute.tsx","../../src/routes/UserCardRoute.tsx","../../src/routes/UserInvitationRoute.tsx","../../src/routes/index.tsx","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","/** Internal global with common properties and Sentry extensions */\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function () {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nfunction getGlobalObject() {\n return GLOBAL_OBJ ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","import { isString } from './is.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\nexport { getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","import { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console ;\n const wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(value)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { node } from './node-stack-trace.js';\n\nconst STACKTRACE_FRAME_LIMIT = 50;\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirst = 0) => {\n const frames = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirst; i < lines.length; i++) {\n const line = lines[i];\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n const localStack = stack.slice(0, STACKTRACE_FRAME_LIMIT);\n\n const lastFrameFunction = localStack[localStack.length - 1].function;\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (lastFrameFunction && /sentryWrapped/.test(lastFrameFunction)) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n const firstFrameFunction = localStack[localStack.length - 1].function;\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (firstFrameFunction && /captureMessage|captureException/.test(firstFrameFunction)) {\n localStack.pop();\n }\n\n return localStack.map(frame => ({\n ...frame,\n filename: frame.filename || localStack[localStack.length - 1].filename,\n function: frame.function || '?',\n }));\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { logger } from './logger.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { getGlobalObject } from '../worldwide.js';\n\n// Based on https://github.com/angular/angular.js/pull/13945/files\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (WINDOW ).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { supportsHistory };\n//# sourceMappingURL=supportsHistory.js.map\n","import { isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch } from './supports.js';\nimport { getGlobalObject } from './worldwide.js';\nimport { supportsHistory } from './vendor/supportsHistory.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst SENTRY_XHR_DATA_KEY = '__sentry_xhr_v2__';\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers = {};\nconst instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in WINDOW)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in WINDOW.console)) {\n return;\n }\n\n fill(WINDOW.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(WINDOW.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(WINDOW, 'fetch', function (originalFetch) {\n return function (...args) {\n const { method, url } = parseFetchArgs(args);\n\n const handlerData = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(WINDOW, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nfunction hasProp(obj, prop) {\n return !!obj && typeof obj === 'object' && !!(obj )[prop];\n}\n\nfunction getUrlFromResource(resource) {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request\n */\nfunction parseFetchArgs(fetchArgs) {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs ;\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg ),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in WINDOW)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n const url = args[1];\n const xhrInfo = (this[SENTRY_XHR_DATA_KEY] = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n request_headers: {},\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (this.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = this.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args: args ,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: this,\n } );\n }\n };\n\n if ('onreadystatechange' in this && typeof this.onreadystatechange === 'function') {\n fill(this, 'onreadystatechange', function (original) {\n return function ( ...readyStateArgs) {\n onreadystatechangeHandler();\n return original.apply(this, readyStateArgs);\n };\n });\n } else {\n this.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n fill(this, 'setRequestHeader', function (original) {\n return function ( ...setRequestHeaderArgs) {\n const [header, value] = setRequestHeaderArgs ;\n\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return original.apply(this, setRequestHeaderArgs);\n };\n });\n\n return originalOpen.apply(this, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n const sentryXhrData = this[SENTRY_XHR_DATA_KEY];\n if (sentryXhrData && args[0] !== undefined) {\n sentryXhrData.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in WINDOW)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW )[target] && (WINDOW )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = WINDOW.onerror;\n\n WINDOW.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n WINDOW.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;\n\n WINDOW.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n WINDOW.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addInstrumentationHandler, parseFetchArgs };\n//# sourceMappingURL=instrument.js.map\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n const getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nfunction getSDKSource() {\n // @ts-ignore \"npm\" is injected by rollup during build process\n return \"npm\";\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n let overriddenDepth = depth;\n\n if (typeof (value )['__sentry_override_normalization_depth__'] === 'number') {\n overriddenDepth = (value )['__sentry_override_normalization_depth__'] ;\n }\n\n // We're also done if we've reached the max depth\n if (overriddenDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, overriddenDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, overriddenDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${getConstructorName(value)}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n const buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span description\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n .replace(':80', '')\n .replace(':443', '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\nexport { getNumberOfUrlSegments, getSanitizedUrlString, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nconst validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","import { isNodeEnv, dynamicRequire } from './node.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nconst dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nconst timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nconst usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nfunction extractTraceparentData(traceparent) {\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n\n if (!traceparent || !matches) {\n // empty string or no matches is invalid traceparent data\n return undefined;\n }\n\n let parentSampled;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData };\n//# sourceMappingURL=tracing.js.map\n","import { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nfunction envelopeContainsItemType(envelope, types) {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8.\n */\nfunction encodeUTF8(input, textEncoder) {\n const utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(\n env,\n textEncoder,\n textDecoder,\n) {\n let buffer = typeof env === 'string' ? textEncoder.encode(env) : env;\n\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson() {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(textDecoder.decode(readBinary(i))) ;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n const updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","import { isString } from './is.js';\nimport { logger } from './logger.js';\n\nconst BAGGAGE_HEADER_NAME = 'baggage';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader,\n) {\n if (!isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n return undefined;\n }\n\n // Intermediary object to store baggage key value pairs of incoming baggage headers on.\n // It is later used to read Sentry-DSC-values from.\n let baggageObject = {};\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n baggageObject = baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n return {\n ...acc,\n ...currBaggageObject,\n };\n }, {});\n } else {\n // Return undefined if baggage header is an empty string (technically an empty baggage header is not spec conform but\n // this is how we choose to handle it)\n if (!baggageHeader) {\n return undefined;\n }\n\n baggageObject = baggageHeaderToObject(baggageHeader);\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext ;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext,\n) {\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { isPlainObject, dateTimestampInSeconds, SyncPromise, logger, isThenable, arrayify, getGlobalSingleton } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called after {@link applyToEvent}. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n\n /** Transaction Name */\n\n /** Span */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transaction = this._span.transaction;\n if (transaction) {\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: transaction.getDynamicSamplingContext(),\n ...event.sdkProcessingMetadata,\n };\n const transactionName = transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, GLOBAL_OBJ, getGlobalSingleton } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nconst API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n\n /** Contains the last event id of a captured event. */\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {this._version = _version;\n this._stack = [{ scope }];\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n ) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this.getScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this.getScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this.getScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this.getScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this.getScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setContext(name, context) {\n this.getScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n const result = this._callExtensionMethod('startTransaction', context, customSamplingContext);\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && !result) {\n // eslint-disable-next-line no-console\n console.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _callExtensionMethod(method, ...args) {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\nfunction getGlobalHub(registry = getMainCarrier()) {\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\nfunction ensureHubOnCarrier(carrier, parent = getGlobalHub()) {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(carrier) || getHubFromCarrier(carrier).isOlderThan(API_VERSION)) {\n const globalHubTopStack = parent.getStackTop();\n setHubOnCarrier(carrier, new Hub(globalHubTopStack.client, Scope.clone(globalHubTopStack.scope)));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nfunction runWithAsyncContext(callback, options = {}) {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, ensureHubOnCarrier, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, runWithAsyncContext, setAsyncContextStrategy, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { getCurrentHub } from '../hub.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nfunction hasTracingEnabled(\n maybeOptions,\n) {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getCurrentHub().getClient();\n const options = maybeOptions || (client && client.getOptions());\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\nexport { hasTracingEnabled };\n//# sourceMappingURL=hasTracingEnabled.js.map\n","import { getCurrentHub } from '../hub.js';\nexport { TRACEPARENT_REGEXP, extractTraceparentData, stripUrlQueryAndFragment } from '@sentry/utils';\n\n/** Grabs active transaction off scope, if any */\nfunction getActiveTransaction(maybeHub) {\n const hub = maybeHub || getCurrentHub();\n const scope = hub.getScope();\n return scope.getTransaction() ;\n}\n\nexport { getActiveTransaction };\n//# sourceMappingURL=utils.js.map\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\nimport { getActiveTransaction } from './utils.js';\n\nlet errorsInstrumented = false;\n\n/**\n * Configures global error listeners\n */\nfunction registerErrorInstrumentation() {\n if (errorsInstrumented) {\n return;\n }\n\n errorsInstrumented = true;\n addInstrumentationHandler('error', errorCallback);\n addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback() {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status = 'internal_error';\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n\n// The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n// node.js default exit behaviour\nerrorCallback.tag = 'sentry_tracingErrorCallback';\n\nexport { registerErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n","import { uuid4, timestampWithMs, logger, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nclass SpanRecorder {\n __init() {this.spans = [];}\n\n constructor(maxlen = 1000) {SpanRecorder.prototype.__init.call(this);\n this._maxlen = maxlen;\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n add(span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nclass Span {\n /**\n * @inheritDoc\n */\n __init2() {this.traceId = uuid4();}\n\n /**\n * @inheritDoc\n */\n __init3() {this.spanId = uuid4().substring(16);}\n\n /**\n * @inheritDoc\n */\n\n /**\n * Internal keeper of the status\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * Timestamp in seconds when the span was created.\n */\n __init4() {this.startTimestamp = timestampWithMs();}\n\n /**\n * Timestamp in seconds when the span ended.\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n __init5() {this.tags = {};}\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __init6() {this.data = {};}\n\n /**\n * List of spans that were finalized\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * The instrumenter that created this span.\n */\n __init7() {this.instrumenter = 'sentry';}\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n constructor(spanContext) {Span.prototype.__init2.call(this);Span.prototype.__init3.call(this);Span.prototype.__init4.call(this);Span.prototype.__init5.call(this);Span.prototype.__init6.call(this);Span.prototype.__init7.call(this);\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n if (spanContext.instrumenter) {\n this.instrumenter = spanContext.instrumenter;\n }\n }\n\n /**\n * @inheritDoc\n */\n startChild(\n spanContext,\n ) {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId,\n });\n\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n\n childSpan.transaction = this.transaction;\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && childSpan.transaction) {\n const opStr = (spanContext && spanContext.op) || '< unknown op >';\n const nameStr = childSpan.transaction.name || '< unknown name >';\n const idStr = childSpan.transaction.spanId;\n\n const logMessage = `[Tracing] Starting '${opStr}' span on transaction '${nameStr}' (${idStr}).`;\n childSpan.transaction.metadata.spanMetadata[childSpan.spanId] = { logMessage };\n logger.log(logMessage);\n }\n\n return childSpan;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n setData(key, value) {\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setStatus(value) {\n this.status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setHttpStatus(httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n const spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n }\n\n /**\n * @inheritDoc\n */\n isSuccess() {\n return this.status === 'ok';\n }\n\n /**\n * @inheritDoc\n */\n finish(endTimestamp) {\n if (\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n // Don't call this for transactions\n this.transaction &&\n this.transaction.spanId !== this.spanId\n ) {\n const { logMessage } = this.transaction.metadata.spanMetadata[this.spanId];\n if (logMessage) {\n logger.log((logMessage ).replace('Starting', 'Finishing'));\n }\n }\n\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n }\n\n /**\n * @inheritDoc\n */\n toTraceparent() {\n let sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return `${this.traceId}-${this.spanId}${sampledString}`;\n }\n\n /**\n * @inheritDoc\n */\n toContext() {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n updateWithContext(spanContext) {\n this.data = spanContext.data || {};\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = spanContext.spanId || this.spanId;\n this.startTimestamp = spanContext.startTimestamp || this.startTimestamp;\n this.status = spanContext.status;\n this.tags = spanContext.tags || {};\n this.traceId = spanContext.traceId || this.traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getTraceContext() {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n toJSON()\n\n {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n }\n}\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nfunction spanStatusfromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n\nexport { Span, SpanRecorder, spanStatusfromHttpCode };\n//# sourceMappingURL=span.js.map\n","import { logger, dropUndefinedKeys } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getCurrentHub } from '../hub.js';\nimport { Span, SpanRecorder } from './span.js';\n\n/** JSDoc */\nclass Transaction extends Span {\n\n /**\n * The reference to the current hub.\n */\n\n __init() {this._measurements = {};}\n\n __init2() {this._contexts = {};}\n\n __init3() {this._frozenDynamicSamplingContext = undefined;}\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n constructor(transactionContext, hub) {\n super(transactionContext);Transaction.prototype.__init.call(this);Transaction.prototype.__init2.call(this);Transaction.prototype.__init3.call(this);\n this._hub = hub || getCurrentHub();\n\n this._name = transactionContext.name || '';\n\n this.metadata = {\n source: 'custom',\n ...transactionContext.metadata,\n spanMetadata: {},\n };\n\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n this.transaction = this;\n\n // If Dynamic Sampling Context is provided during the creation of the transaction, we freeze it as it usually means\n // there is incoming Dynamic Sampling Context. (Either through an incoming request, a baggage meta-tag, or other means)\n const incomingDynamicSamplingContext = this.metadata.dynamicSamplingContext;\n if (incomingDynamicSamplingContext) {\n // We shallow copy this in case anything writes to the original reference of the passed in `dynamicSamplingContext`\n this._frozenDynamicSamplingContext = { ...incomingDynamicSamplingContext };\n }\n }\n\n /** Getter for `name` property */\n get name() {\n return this._name;\n }\n\n /** Setter for `name` property, which also sets `source` as custom */\n set name(newName) {\n this.setName(newName);\n }\n\n /**\n * JSDoc\n */\n setName(name, source = 'custom') {\n this._name = name;\n this.metadata.source = source;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n initSpanRecorder(maxlen = 1000) {\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n }\n\n /**\n * @inheritDoc\n */\n setMeasurement(name, value, unit = '') {\n this._measurements[name] = { value, unit };\n }\n\n /**\n * @inheritDoc\n */\n setMetadata(newMetadata) {\n this.metadata = { ...this.metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n finish(endTimestamp) {\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n\n // just sets the end timestamp\n super.finish(endTimestamp);\n\n const client = this._hub.getClient();\n if (client && client.emit) {\n client.emit('finishTransaction', this);\n }\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n const finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce((prev, current) => {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n\n const metadata = this.metadata;\n\n const transaction = {\n contexts: {\n ...this._contexts,\n // We don't want to override trace context\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: {\n ...metadata,\n dynamicSamplingContext: this.getDynamicSamplingContext(),\n },\n ...(metadata.source && {\n transaction_info: {\n source: metadata.source,\n },\n }),\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n toContext() {\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this.name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n updateWithContext(transactionContext) {\n super.updateWithContext(transactionContext);\n\n this.name = transactionContext.name || '';\n\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @experimental\n */\n getDynamicSamplingContext() {\n if (this._frozenDynamicSamplingContext) {\n return this._frozenDynamicSamplingContext;\n }\n\n const hub = this._hub || getCurrentHub();\n const client = hub && hub.getClient();\n\n if (!client) return {};\n\n const { environment, release } = client.getOptions() || {};\n const { publicKey: public_key } = client.getDsn() || {};\n\n const maybeSampleRate = this.metadata.sampleRate;\n const sample_rate = maybeSampleRate !== undefined ? maybeSampleRate.toString() : undefined;\n\n const { segment: user_segment } = hub.getScope().getUser() || {};\n\n const source = this.metadata.source;\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const transaction = source && source !== 'url' ? this.name : undefined;\n\n const dsc = dropUndefinedKeys({\n environment: environment || DEFAULT_ENVIRONMENT,\n release,\n transaction,\n user_segment,\n public_key,\n trace_id: this.traceId,\n sample_rate,\n });\n\n // Uncomment if we want to make DSC immutable\n // this._frozenDynamicSamplingContext = dsc;\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n }\n\n /**\n * Override the current hub with a new one.\n * Used if you want another hub to finish the transaction.\n *\n * @internal\n */\n setHub(hub) {\n this._hub = hub;\n }\n}\n\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map\n","import { logger, timestampWithMs } from '@sentry/utils';\nimport { SpanRecorder } from './span.js';\nimport { Transaction } from './transaction.js';\n\nconst TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n heartbeatInterval: 5000,\n};\n\nconst FINISH_REASON_TAG = 'finishReason';\n\nconst IDLE_TRANSACTION_FINISH_REASONS = [\n 'heartbeatFailed',\n 'idleTimeout',\n 'documentHidden',\n 'finalTimeout',\n 'externalFinish',\n 'cancelled',\n];\n\n/**\n * @inheritDoc\n */\nclass IdleTransactionSpanRecorder extends SpanRecorder {\n constructor(\n _pushActivity,\n _popActivity,\n transactionSpanId,\n maxlen,\n ) {\n super(maxlen);this._pushActivity = _pushActivity;this._popActivity = _popActivity;this.transactionSpanId = transactionSpanId; }\n\n /**\n * @inheritDoc\n */\n add(span) {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nclass IdleTransaction extends Transaction {\n // Activities store a list of active spans\n __init() {this.activities = {};}\n\n // Track state of activities in previous heartbeat\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n __init2() {this._heartbeatCounter = 0;}\n\n // We should not use heartbeat if we finished a transaction\n __init3() {this._finished = false;}\n\n // Idle timeout was canceled and we should finish the transaction with the last span end.\n __init4() {this._idleTimeoutCanceledPermanently = false;}\n\n __init5() {this._beforeFinishCallbacks = [];}\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n\n __init6() {this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[4];}\n\n constructor(\n transactionContext,\n _idleHub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n _idleTimeout = TRACING_DEFAULTS.idleTimeout,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n _finalTimeout = TRACING_DEFAULTS.finalTimeout,\n _heartbeatInterval = TRACING_DEFAULTS.heartbeatInterval,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n _onScope = false,\n ) {\n super(transactionContext, _idleHub);this._idleHub = _idleHub;this._idleTimeout = _idleTimeout;this._finalTimeout = _finalTimeout;this._heartbeatInterval = _heartbeatInterval;this._onScope = _onScope;IdleTransaction.prototype.__init.call(this);IdleTransaction.prototype.__init2.call(this);IdleTransaction.prototype.__init3.call(this);IdleTransaction.prototype.__init4.call(this);IdleTransaction.prototype.__init5.call(this);IdleTransaction.prototype.__init6.call(this);\n if (_onScope) {\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._restartIdleTimeout();\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[3];\n this.finish();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n finish(endTimestamp = timestampWithMs()) {\n this._finished = true;\n this.activities = {};\n\n if (this.op === 'ui.action.click') {\n this.setTag(FINISH_REASON_TAG, this._finishReason);\n }\n\n if (this.spanRecorder) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n '[Tracing] discarding Span since it happened after Transaction was finished',\n JSON.stringify(span, undefined, 2),\n );\n }\n return keepSpan;\n });\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n const scope = this._idleHub.getScope();\n if (scope.getTransaction() === this) {\n scope.setSpan(undefined);\n }\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n registerBeforeFinishCallback(callback) {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n initSpanRecorder(maxlen) {\n if (!this.spanRecorder) {\n const pushActivity = (id) => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id) => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idle timeout, if there is one.\n * @param restartOnChildSpanChange Default is `true`.\n * If set to false the transaction will end\n * with the last child span.\n */\n cancelIdleTimeout(\n endTimestamp,\n {\n restartOnChildSpanChange,\n }\n\n = {\n restartOnChildSpanChange: true,\n },\n ) {\n this._idleTimeoutCanceledPermanently = restartOnChildSpanChange === false;\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n\n if (Object.keys(this.activities).length === 0 && this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.finish(endTimestamp);\n }\n }\n }\n\n /**\n * Temporary method used to externally set the transaction's `finishReason`\n *\n * ** WARNING**\n * This is for the purpose of experimentation only and will be removed in the near future, do not use!\n *\n * @internal\n *\n */\n setFinishReason(reason) {\n this._finishReason = reason;\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n _restartIdleTimeout(endTimestamp) {\n this.cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[1];\n this.finish(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n _pushActivity(spanId) {\n this.cancelIdleTimeout(undefined, { restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently });\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n _popActivity(spanId) {\n if (this.activities[spanId]) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const endTimestamp = timestampWithMs();\n if (this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.finish(endTimestamp);\n } else {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n this._restartIdleTimeout(endTimestamp + this._idleTimeout / 1000);\n }\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n _beat() {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter++;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[0];\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n _pingHeartbeat() {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, this._heartbeatInterval);\n }\n}\n\nexport { IdleTransaction, IdleTransactionSpanRecorder, TRACING_DEFAULTS };\n//# sourceMappingURL=idletransaction.js.map\n","import { logger, isNaN } from '@sentry/utils';\nimport { getMainCarrier } from '../hub.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { registerErrorInstrumentation } from './errors.js';\nimport { IdleTransaction } from './idletransaction.js';\nimport { Transaction } from './transaction.js';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n const scope = this.getScope();\n const span = scope.getSpan();\n\n return span\n ? {\n 'sentry-trace': span.toTraceparent(),\n }\n : {};\n}\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(\n transaction,\n options,\n samplingContext,\n) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n sampleRate: Number(transaction.sampled),\n });\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` nor `enableTracing` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n sampleRate: Number(sampleRate),\n });\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n sampleRate: Number(sampleRate),\n });\n } else {\n // When `enableTracing === true`, we use a sample rate of 100%\n sampleRate = 1;\n transaction.setMetadata({\n sampleRate,\n });\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < (sampleRate );\n\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n\n transactionContext,\n customSamplingContext,\n) {\n const client = this.getClient();\n const options = (client && client.getOptions()) || {};\n\n const configInstrumenter = options.instrumenter || 'sentry';\n const transactionInstrumenter = transactionContext.instrumenter || 'sentry';\n\n if (configInstrumenter !== transactionInstrumenter) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `A transaction was started with instrumenter=\\`${transactionInstrumenter}\\`, but the SDK is configured with the \\`${configInstrumenter}\\` instrumenter.\nThe transaction will not be sampled. Please use the ${configInstrumenter} instrumentation to start transactions.`,\n );\n\n transactionContext.sampled = false;\n }\n\n let transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans ));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nfunction startIdleTransaction(\n hub,\n transactionContext,\n idleTimeout,\n finalTimeout,\n onScope,\n customSamplingContext,\n heartbeatInterval,\n) {\n const client = hub.getClient();\n const options = (client && client.getOptions()) || {};\n\n let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, finalTimeout, heartbeatInterval, onScope);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans ));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Adds tracing extensions to the global hub.\n */\nfunction addTracingExtensions() {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n\n registerErrorInstrumentation();\n}\n\nexport { addTracingExtensions, startIdleTransaction };\n//# sourceMappingURL=hubextensions.js.map\n","import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","import { makeDsn, dsnToString, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(\n dsn,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions = {} ,\n) {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { getSdkMetadataForEnvelopeHeader, dsnToString, createEnvelope, createEventEnvelopeHeaders } from '@sentry/utils';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjut a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { arrayify, logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\nimport { addGlobalEventProcessor } from './scope.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.keys(integrationsByName).map(k => integrationsByName[k]);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = findIndex(finalIntegrations, integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n const integrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/** Setup a single integration. */\nfunction setupIntegration(integration, integrationIndex) {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n}\n\n// Polyfill for Array.findIndex(), which is not supported in ES5\nfunction findIndex(arr, callback) {\n for (let i = 0; i < arr.length; i++) {\n if (callback(arr[i]) === true) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { uuid4, dateTimestampInSeconds, resolvedSyncPromise, truncate, GLOBAL_OBJ, normalize } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { Scope } from '../scope.js';\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * Note: This also triggers callbacks for `addGlobalEventProcessor`, but not `beforeSend`.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n options,\n event,\n hint,\n scope,\n) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n // Only apply debug metadata to error events.\n if (event.type === undefined) {\n applyDebugMetadata(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n //\n // We need to check for the existence of `finalScope.getAttachments`\n // because `getAttachments` can be undefined if users are using an older version\n // of `@sentry/core` that does not have the `getAttachments` method.\n // See: https://github.com/getsentry/sentry-javascript/issues/5229\n if (finalScope) {\n // Collect attachments from the hint and scope\n if (finalScope.getAttachments) {\n const attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap();\n\n/**\n * Applies debug metadata images to the event in order to apply source maps by looking up their debug ID.\n */\nfunction applyDebugMetadata(event, stackParser) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce((acc, debugIdStackTrace) => {\n let parsedStack;\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdMap[debugIdStackTrace];\n break;\n }\n }\n return acc;\n }, {});\n\n // Get a Set of filenames in the stack trace\n const errorFileNames = new Set();\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.filename) {\n errorFileNames.add(frame.filename);\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n errorFileNames.forEach(filename => {\n if (filenameDebugIdMap[filename]) {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id: filenameDebugIdMap[filename],\n });\n }\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n}\n\nexport { applyDebugMetadata, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","import { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations, setupIntegration } from './integration.js';\nimport { updateSession } from './session.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n __init5() {this._hooks = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);BaseClient.prototype.__init5.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n const transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n addIntegration(integration) {\n setupIntegration(integration, this._integrations);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n const promise = this._sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n void this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category, _event) {\n // Note: we use `event` in replay, where we overwrite this hook.\n\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n on(hook, callback) {\n if (!this._hooks[hook]) {\n this._hooks[hook] = [];\n }\n\n // @ts-ignore We assue the types are correct\n this._hooks[hook].push(callback);\n }\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n emit(hook, ...rest) {\n if (this._hooks[hook]) {\n // @ts-ignore we cannot enforce the callback to match the hook\n this._hooks[hook].forEach(callback => callback(...rest));\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n const tick = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, scope) {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n return prepareEvent(options, event, hint, scope);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, scope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.', 'log'));\n }\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this.emit('beforeEnvelope', envelope);\n\n return this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n const hub = getCurrentHub();\n const scope = hub.getScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, SentryError, logger, serializeEnvelope, updateRateLimits } from '@sentry/utils';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n // We use this to identifify if the transport is the base transport\n // TODO (v8): Remove this again as we'll no longer need it\n send.__sentry__baseTransport__ = true;\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item, type) {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item )[1] : undefined;\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","const SDK_VERSION = '7.48.0';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n","import { logger, getEventDescription, stringMatchesSomePattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n const eventProcess = (event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, markFunctionWrapped, addNonEnumerableProperty, addExceptionTypeValue, addExceptionMechanism } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject, isEvent, extractExceptionKeysForMessage, normalizeToSize } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n const event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, getEventDescription, severityLevelFromString, safeJoin, SENTRY_XHR_DATA_KEY, parseUrl, logger, htmlTreeAsString } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n\n /**\n * @inheritDoc\n */\n constructor(options) {Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n\n /**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\n addSentryBreadcrumb(event) {\n if (this.options.sentry) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _domBreadcrumb(dom) {\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event ;\n target = _isEvent(event)\n ? htmlTreeAsString(event.target, { keyAttrs, maxStringLength })\n : htmlTreeAsString(event, { keyAttrs, maxStringLength });\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _consoleBreadcrumb(handlerData) {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/6010\n // see: https://github.com/getsentry/sentry-javascript/issues/5916\n for (let i = 0; i < handlerData.args.length; i++) {\n if (handlerData.args[i] === 'ref=Ref<') {\n handlerData.args[i + 1] = 'viewRef';\n break;\n }\n }\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _xhrBreadcrumb(handlerData) {\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data = {\n method,\n url,\n status_code,\n };\n\n const hint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n },\n hint,\n );\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _fetchBreadcrumb(handlerData) {\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data = handlerData.fetchData;\n const hint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const data = {\n ...handlerData.fetchData,\n status_code: handlerData.response && handlerData.response.status,\n };\n const hint = {\n input: handlerData.args,\n response: handlerData.response,\n startTimestamp,\n endTimestamp,\n };\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n },\n hint,\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _historyBreadcrumb(handlerData) {\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nfunction _isEvent(event) {\n return event && !!(event ).target;\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { dsnToString, createEnvelope } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nfunction createUserFeedbackEnvelope(\n feedback,\n {\n metadata,\n tunnel,\n dsn,\n }\n\n,\n) {\n const headers = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback) {\n const feedbackHeaders = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n\nexport { createUserFeedbackEnvelope };\n//# sourceMappingURL=userfeedback.js.map\n","import { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getSDKSource, logger, createClientReportEnvelope, dsnToString } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\nimport { createUserFeedbackEnvelope } from './userfeedback.js';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: `${sdkSource}:@sentry/browser`,\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n const breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n // We check for definedness of `addSentryBreadcrumb` in case users provided their own integration with id\n // \"Breadcrumbs\" that does not have this function.\n if (breadcrumbIntegration && breadcrumbIntegration.addSentryBreadcrumb) {\n breadcrumbIntegration.addSentryBreadcrumb(event);\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * Sends user feedback to Sentry.\n */\n captureUserFeedback(feedback) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n void this._sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n void this._sendEnvelope(envelope);\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","import { isNativeFetch, logger } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\nlet cachedFetchImpl = undefined;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nfunction clearCachedFetchImplementation() {\n cachedFetchImpl = undefined;\n}\n\nexport { clearCachedFetchImplementation, getNativeFetchImplementation };\n//# sourceMappingURL=utils.js.map\n","import { createTransport } from '@sentry/core';\nimport { rejectedSyncPromise } from '@sentry/utils';\nimport { getNativeFetchImplementation, clearCachedFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request) {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedFetchImplementation();\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n","import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n const frame = {\n filename,\n function: func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?(?:async )?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nconst chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10 = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11 = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func, filename) => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n","import { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n\n /**\n * @inheritDoc\n */\n constructor(options) {TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n if (this._options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn ;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n","import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n const client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n","import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n const eventProcessor = currentEvent => {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n","import { Integrations, getIntegrationsToSetup, initAndBind, getReportDialogEndpoint, getCurrentHub } from '@sentry/core';\nimport { stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { WINDOW, wrap as wrap$1 } from './helpers.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nconst defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n if (typeof __SENTRY_RELEASE__ === 'string') {\n options.release = __SENTRY_RELEASE__;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n */\nfunction captureUserFeedback(feedback) {\n const client = getCurrentHub().getClient();\n if (client) {\n client.captureUserFeedback(feedback);\n }\n}\n\nexport { captureUserFeedback, close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","import { getActiveTransaction } from '@sentry/core';\nimport { logger } from '@sentry/utils';\nimport { WINDOW } from './types.js';\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nfunction registerBackgroundTabDetection() {\n if (WINDOW && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n const activeTransaction = getActiveTransaction() ;\n if (WINDOW.document.hidden && activeTransaction) {\n const statusType = 'cancelled';\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n `[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`,\n );\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(statusType);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.finish();\n }\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n\nexport { registerBackgroundTabDetection };\n//# sourceMappingURL=backgroundtab.js.map\n","const bindReporter = (\n callback,\n metric,\n reportAllChanges,\n) => {\n let prevValue;\n let delta;\n return (forceReport) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n callback(metric);\n }\n }\n }\n };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nconst generateUniqueID = () => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","import { WINDOW } from '../../types.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst getNavigationEntryFromPerformanceTiming = () => {\n // eslint-disable-next-line deprecation/deprecation\n const timing = WINDOW.performance.timing;\n // eslint-disable-next-line deprecation/deprecation\n const type = WINDOW.performance.navigation.type;\n\n const navigationEntry = {\n entryType: 'navigation',\n startTime: 0,\n type: type == 2 ? 'back_forward' : type === 1 ? 'reload' : 'navigate',\n };\n\n for (const key in timing) {\n if (key !== 'navigationStart' && key !== 'toJSON') {\n navigationEntry[key] = Math.max((timing[key ] ) - timing.navigationStart, 0);\n }\n }\n return navigationEntry ;\n};\n\nconst getNavigationEntry = () => {\n if (WINDOW.__WEB_VITALS_POLYFILL__) {\n return (\n WINDOW.performance &&\n ((performance.getEntriesByType && performance.getEntriesByType('navigation')[0]) ||\n getNavigationEntryFromPerformanceTiming())\n );\n } else {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n }\n};\n\nexport { getNavigationEntry };\n//# sourceMappingURL=getNavigationEntry.js.map\n","import { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst getActivationStart = () => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n\nexport { getActivationStart };\n//# sourceMappingURL=getActivationStart.js.map\n","import { WINDOW } from '../../types.js';\nimport { generateUniqueID } from './generateUniqueID.js';\nimport { getActivationStart } from './getActivationStart.js';\nimport { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst initMetric = (name, value) => {\n const navEntry = getNavigationEntry();\n let navigationType = 'navigate';\n\n if (navEntry) {\n if (WINDOW.document.prerendering || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else {\n navigationType = navEntry.type.replace(/_/g, '-') ;\n }\n }\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good', // Will be updated if the value changes.\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n navigationType,\n };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\n","/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nconst observe = (\n type,\n callback,\n opts,\n) => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n callback(list.getEntries() );\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) ,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","import { WINDOW } from '../../types.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst onHidden = (cb, once) => {\n const onHiddenOrPageHide = (event) => {\n if (event.type === 'pagehide' || WINDOW.document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n\nexport { onHidden };\n//# sourceMappingURL=onHidden.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Calculates the [CLS](https://web.dev/cls/) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/cls/#layout-shift-score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onCLS = (onReport) => {\n const metric = initMetric('CLS', 0);\n let report;\n\n let sessionValue = 0;\n let sessionEntries = [];\n\n // const handleEntries = (entries: Metric['entries']) => {\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n });\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = () => {\n handleEntries(po.takeRecords() );\n report(true);\n };\n\n onHidden(stopListening);\n\n return stopListening;\n }\n\n return;\n};\n\nexport { onCLS };\n//# sourceMappingURL=getCLS.js.map\n","import { WINDOW } from '../../types.js';\nimport { onHidden } from './onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = () => {\n // If the document is hidden and not prerendering, assume it was always\n // hidden and the page was loaded in the background.\n return WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n};\n\nconst trackChanges = () => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nconst getVisibilityWatcher = (\n\n) => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Calculates the [FID](https://web.dev/fid/) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nconst onFID = (onReport) => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntry = (entry) => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries) => {\n (entries ).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric);\n\n if (po) {\n onHidden(() => {\n handleEntries(po.takeRecords() );\n po.disconnect();\n }, true);\n }\n};\n\nexport { onFID };\n//# sourceMappingURL=getFID.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst reportedMetricIDs = {};\n\n/**\n * Calculates the [LCP](https://web.dev/lcp/) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n */\nconst onLCP = (onReport) => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report;\n\n const handleEntries = (entries) => {\n const lastEntry = entries[entries.length - 1] ;\n if (lastEntry) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered.\n const value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n\n // Only report if the page wasn't hidden prior to LCP.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = () => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() );\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n addEventListener(type, stopListening, { once: true, capture: true });\n });\n\n onHidden(stopListening, true);\n\n return stopListening;\n }\n\n return;\n};\n\nexport { onLCP };\n//# sourceMappingURL=getLCP.js.map\n","/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nfunction _startChild(transaction, { startTimestamp, ...ctx }) {\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n\nexport { _startChild, isMeasurementValue };\n//# sourceMappingURL=utils.js.map\n","import { getActiveTransaction } from '@sentry/core';\nimport { browserPerformanceTimeOrigin, logger, htmlTreeAsString } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\nimport { onCLS } from '../web-vitals/getCLS.js';\nimport { onFID } from '../web-vitals/getFID.js';\nimport { onLCP } from '../web-vitals/getLCP.js';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher.js';\nimport { observe } from '../web-vitals/lib/observe.js';\nimport { _startChild, isMeasurementValue } from './utils.js';\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time) {\n return time / 1000;\n}\n\nfunction getBrowserPerformanceAPI() {\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\nlet _performanceCursor = 0;\n\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals\n *\n * @returns A function that forces web vitals collection\n */\nfunction startTrackingWebVitals() {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n _trackFID();\n const clsCallback = _trackCLS();\n const lcpCallback = _trackLCP();\n\n return () => {\n if (clsCallback) {\n clsCallback();\n }\n if (lcpCallback) {\n lcpCallback();\n }\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nfunction startTrackingLongTasks() {\n const entryHandler = (entries) => {\n for (const entry of entries) {\n const transaction = getActiveTransaction() ;\n if (!transaction) {\n return;\n }\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n };\n\n observe('longtask', entryHandler);\n}\n\n/**\n * Start tracking interaction events.\n */\nfunction startTrackingInteractions() {\n const entryHandler = (entries) => {\n for (const entry of entries) {\n const transaction = getActiveTransaction() ;\n if (!transaction) {\n return;\n }\n\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n transaction.startChild({\n description: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n }\n };\n\n observe('event', entryHandler, { durationThreshold: 0 });\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS() {\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n return onCLS(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry ;\n });\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP() {\n return onLCP(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry ;\n });\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n onFID(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin );\n const startTime = msToSec(entry.startTime);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(transaction) {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !WINDOW.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n let responseStartTimestamp;\n let requestStartTimestamp;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n performanceEntries.slice(_performanceCursor).forEach((entry) => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(entry.duration);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n const resourceName = (entry.name ).replace(WINDOW.location.origin, '');\n _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = {\n value: (responseStartTimestamp - transaction.startTimestamp) * 1000,\n unit: 'millisecond',\n };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n _measurements['ttfb.requestTime'] = {\n value: (responseStartTimestamp - requestStartTimestamp) * 1000,\n unit: 'millisecond',\n };\n }\n }\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || timeOrigin >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n const oldValue = _measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n const delta = normalizedValue - oldValue;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'ui.action',\n startTimestamp: fidMark.value,\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n\n Object.keys(_measurements).forEach(measurementName => {\n transaction.setMeasurement(\n measurementName,\n _measurements[measurementName].value,\n _measurements[measurementName].unit,\n );\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nfunction _addMeasureSpans(\n transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry,\n startTime,\n duration,\n timeOrigin,\n) {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name ,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType ,\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addNavigationSpans(transaction, entry, timeOrigin) {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry,\n event,\n timeOrigin,\n description,\n eventEnd,\n) {\n const end = eventEnd ? (entry[eventEnd] ) : (entry[`${event}End`] );\n const start = entry[`${event}Start`] ;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: description || event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n}\n\n/** Create resource-related spans */\nfunction _addResourceSpans(\n transaction,\n entry,\n resourceName,\n startTime,\n duration,\n timeOrigin,\n) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n if ('renderBlockingStatus' in entry) {\n data['resource.render_blocking_status'] = entry.renderBlockingStatus;\n }\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction) {\n const navigator = WINDOW.navigator ;\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction) {\n if (_lcpEntry) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingInteractions, startTrackingLongTasks, startTrackingWebVitals };\n//# sourceMappingURL=index.js.map\n","import { hasTracingEnabled, getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, dynamicSamplingContextToSentryBaggageHeader, isInstanceOf, BAGGAGE_HEADER_NAME, SENTRY_XHR_DATA_KEY, stringMatchesSomePattern } from '@sentry/utils';\n\n/* eslint-disable max-lines */\n\nconst DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\\//];\n\n/** Options for Request Instrumentation */\n\nconst defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n // TODO (v8): Remove this property\n tracingOrigins: DEFAULT_TRACE_PROPAGATION_TARGETS,\n tracePropagationTargets: DEFAULT_TRACE_PROPAGATION_TARGETS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nfunction instrumentOutgoingRequests(_options) {\n // eslint-disable-next-line deprecation/deprecation\n const { traceFetch, traceXHR, tracePropagationTargets, tracingOrigins, shouldCreateSpanForRequest } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_) => true;\n\n // TODO(v8) Remove tracingOrigins here\n // The only reason we're passing it in here is because this instrumentOutgoingRequests function is publicly exported\n // and we don't want to break the API. We can remove it in v8.\n const shouldAttachHeadersWithTargets = (url) =>\n shouldAttachHeaders(url, tracePropagationTargets || tracingOrigins);\n\n const spans = {};\n\n if (traceFetch) {\n addInstrumentationHandler('fetch', (handlerData) => {\n fetchCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n });\n }\n\n if (traceXHR) {\n addInstrumentationHandler('xhr', (handlerData) => {\n xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n });\n }\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * This was extracted from `instrumentOutgoingRequests` to make it easier to test shouldAttachHeaders.\n * We only export this fuction for testing purposes.\n */\nfunction shouldAttachHeaders(url, tracePropagationTargets) {\n return stringMatchesSomePattern(url, tracePropagationTargets || DEFAULT_TRACE_PROPAGATION_TARGETS);\n}\n\n/**\n * Create and track fetch request spans\n */\nfunction fetchCallback(\n handlerData,\n shouldCreateSpan,\n shouldAttachHeaders,\n spans,\n) {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n\n if (handlerData.endTimestamp) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n const currentScope = getCurrentHub().getScope();\n const currentSpan = currentScope && currentScope.getSpan();\n const activeTransaction = currentSpan && currentSpan.transaction;\n\n if (currentSpan && activeTransaction) {\n const span = currentSpan.startChild({\n data: {\n ...handlerData.fetchData,\n type: 'fetch',\n },\n description: `${handlerData.fetchData.method} ${handlerData.fetchData.url}`,\n op: 'http.client',\n });\n\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n\n const request = handlerData.args[0];\n\n // In case the user hasn't set the second argument of a fetch call we default it to `{}`.\n handlerData.args[1] = handlerData.args[1] || {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options = handlerData.args[1];\n\n if (shouldAttachHeaders(handlerData.fetchData.url)) {\n options.headers = addTracingHeadersToFetchRequest(\n request,\n activeTransaction.getDynamicSamplingContext(),\n span,\n options,\n );\n }\n }\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers\n */\nfunction addTracingHeadersToFetchRequest(\n request, // unknown is actually type Request but we can't export DOM types from this package,\n dynamicSamplingContext,\n span,\n options\n\n,\n) {\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext);\n const sentryTraceHeader = span.toTraceparent();\n\n const headers =\n typeof Request !== 'undefined' && isInstanceOf(request, Request) ? (request ).headers : options.headers;\n\n if (!headers) {\n return { 'sentry-trace': sentryTraceHeader, baggage: sentryBaggageHeader };\n } else if (typeof Headers !== 'undefined' && isInstanceOf(headers, Headers)) {\n const newHeaders = new Headers(headers );\n\n newHeaders.append('sentry-trace', sentryTraceHeader);\n\n if (sentryBaggageHeader) {\n // If the same header is appended multiple times the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n\n return newHeaders ;\n } else if (Array.isArray(headers)) {\n const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];\n\n if (sentryBaggageHeader) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);\n }\n\n return newHeaders ;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders = [];\n\n if (Array.isArray(existingBaggageHeader)) {\n newBaggageHeaders.push(...existingBaggageHeader);\n } else if (existingBaggageHeader) {\n newBaggageHeaders.push(existingBaggageHeader);\n }\n\n if (sentryBaggageHeader) {\n newBaggageHeaders.push(sentryBaggageHeader);\n }\n\n return {\n ...(headers ),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n\n/**\n * Create and track xhr request spans\n */\nfunction xhrCallback(\n handlerData,\n shouldCreateSpan,\n shouldAttachHeaders,\n spans,\n) {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (\n !hasTracingEnabled() ||\n (xhr && xhr.__sentry_own_request__) ||\n !(xhr && sentryXhrData && shouldCreateSpan(sentryXhrData.url))\n ) {\n return;\n }\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n span.setHttpStatus(sentryXhrData.status_code);\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n const currentScope = getCurrentHub().getScope();\n const currentSpan = currentScope && currentScope.getSpan();\n const activeTransaction = currentSpan && currentSpan.transaction;\n\n if (currentSpan && activeTransaction) {\n const span = currentSpan.startChild({\n data: {\n ...sentryXhrData.data,\n type: 'xhr',\n method: sentryXhrData.method,\n url: sentryXhrData.url,\n },\n description: `${sentryXhrData.method} ${sentryXhrData.url}`,\n op: 'http.client',\n });\n\n xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url)) {\n try {\n xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n\n const dynamicSamplingContext = activeTransaction.getDynamicSamplingContext();\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext);\n\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n xhr.setRequestHeader(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n\nexport { DEFAULT_TRACE_PROPAGATION_TARGETS, addTracingHeadersToFetchRequest, defaultRequestInstrumentationOptions, fetchCallback, instrumentOutgoingRequests, shouldAttachHeaders, xhrCallback };\n//# sourceMappingURL=request.js.map\n","import { logger, browserPerformanceTimeOrigin, addInstrumentationHandler } from '@sentry/utils';\nimport { WINDOW } from './types.js';\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nfunction instrumentRoutingWithDefaults(\n customStartTransaction,\n startTransactionOnPageLoad = true,\n startTransactionOnLocationChange = true,\n) {\n if (!WINDOW || !WINDOW.location) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl = WINDOW.location.href;\n\n let activeTransaction;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin\n startTimestamp: browserPerformanceTimeOrigin,\n op: 'pageload',\n metadata: { source: 'url' },\n });\n }\n\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler('history', ({ to, from }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n op: 'navigation',\n metadata: { source: 'url' },\n });\n }\n });\n }\n}\n\nexport { instrumentRoutingWithDefaults };\n//# sourceMappingURL=router.js.map\n","import { TRACING_DEFAULTS, addTracingExtensions, extractTraceparentData, startIdleTransaction, getActiveTransaction } from '@sentry/core';\nimport { logger, baggageHeaderToDynamicSamplingContext, getDomElement } from '@sentry/utils';\nimport { registerBackgroundTabDetection } from './backgroundtab.js';\nimport { startTrackingWebVitals, startTrackingLongTasks, startTrackingInteractions, addPerformanceEntries } from './metrics/index.js';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request.js';\nimport { instrumentRoutingWithDefaults } from './router.js';\nimport { WINDOW } from './types.js';\n\nconst BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n ...TRACING_DEFAULTS,\n markBackgroundTransactions: true,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n enableLongTask: true,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nclass BrowserTracing {\n // This class currently doesn't have a static `id` field like the other integration classes, because it prevented\n // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.\n // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all\n // integrations.\n\n /** Browser Tracing integration options */\n\n /**\n * @inheritDoc\n */\n __init() {this.name = BROWSER_TRACING_INTEGRATION_ID;}\n\n constructor(_options) {BrowserTracing.prototype.__init.call(this);\n addTracingExtensions();\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n // Special case: enableLongTask can be set in _experiments\n // TODO (v8): Remove this in v8\n if (this.options._experiments.enableLongTask !== undefined) {\n this.options.enableLongTask = this.options._experiments.enableLongTask;\n }\n\n // TODO (v8): remove this block after tracingOrigins is removed\n // Set tracePropagationTargets to tracingOrigins if specified by the user\n // In case both are specified, tracePropagationTargets takes precedence\n // eslint-disable-next-line deprecation/deprecation\n if (_options && !_options.tracePropagationTargets && _options.tracingOrigins) {\n // eslint-disable-next-line deprecation/deprecation\n this.options.tracePropagationTargets = _options.tracingOrigins;\n }\n\n this._collectWebVitals = startTrackingWebVitals();\n if (this.options.enableLongTask) {\n startTrackingLongTasks();\n }\n if (this.options._experiments.enableInteractions) {\n startTrackingInteractions();\n }\n }\n\n /**\n * @inheritDoc\n */\n setupOnce(_, getCurrentHub) {\n this._getCurrentHub = getCurrentHub;\n\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n _experiments,\n } = this.options;\n\n instrumentRouting(\n (context) => {\n const transaction = this._createRouteTransaction(context);\n\n this.options._experiments.onStartRouteTransaction &&\n this.options._experiments.onStartRouteTransaction(transaction, context, getCurrentHub);\n\n return transaction;\n },\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n if (_experiments.enableInteractions) {\n this._registerInteractionListener();\n }\n\n instrumentOutgoingRequests({\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n });\n }\n\n /** Create routing idle transaction. */\n _createRouteTransaction(context) {\n if (!this._getCurrentHub) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n const { beforeNavigate, idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n\n const isPageloadTransaction = context.op === 'pageload';\n\n const sentryTraceMetaTagValue = isPageloadTransaction ? getMetaContent('sentry-trace') : null;\n const baggageMetaTagValue = isPageloadTransaction ? getMetaContent('baggage') : null;\n\n const traceParentData = sentryTraceMetaTagValue ? extractTraceparentData(sentryTraceMetaTagValue) : undefined;\n const dynamicSamplingContext = baggageMetaTagValue\n ? baggageHeaderToDynamicSamplingContext(baggageMetaTagValue)\n : undefined;\n\n const expandedContext = {\n ...context,\n ...traceParentData,\n metadata: {\n ...context.metadata,\n dynamicSamplingContext: traceParentData && !dynamicSamplingContext ? {} : dynamicSamplingContext,\n },\n trimEnd: true,\n };\n\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n // If `beforeNavigate` set a custom name, record that fact\n finalContext.metadata =\n finalContext.name !== expandedContext.name\n ? { ...finalContext.metadata, source: 'custom' }\n : finalContext.metadata;\n\n this._latestRouteName = finalContext.name;\n this._latestRouteSource = finalContext.metadata && finalContext.metadata.source;\n\n if (finalContext.sampled === false) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const hub = this._getCurrentHub();\n const { location } = WINDOW;\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n idleTransaction.registerBeforeFinishCallback(transaction => {\n this._collectWebVitals();\n addPerformanceEntries(transaction);\n });\n\n return idleTransaction ;\n }\n\n /** Start listener for interaction transactions */\n _registerInteractionListener() {\n let inflightInteractionTransaction;\n const registerInteractionTransaction = () => {\n const { idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n const op = 'ui.action.click';\n\n const currentTransaction = getActiveTransaction();\n if (currentTransaction && currentTransaction.op && ['navigation', 'pageload'].includes(currentTransaction.op)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `[Tracing] Did not create ${op} transaction because a pageload or navigation transaction is in progress.`,\n );\n return undefined;\n }\n\n if (inflightInteractionTransaction) {\n inflightInteractionTransaction.setFinishReason('interactionInterrupted');\n inflightInteractionTransaction.finish();\n inflightInteractionTransaction = undefined;\n }\n\n if (!this._getCurrentHub) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`[Tracing] Did not create ${op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n if (!this._latestRouteName) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n const { location } = WINDOW;\n\n const context = {\n name: this._latestRouteName,\n op,\n trimEnd: true,\n metadata: {\n source: this._latestRouteSource || 'url',\n },\n };\n\n inflightInteractionTransaction = startIdleTransaction(\n hub,\n context,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n };\n\n ['click'].forEach(type => {\n addEventListener(type, registerInteractionTransaction, { once: false, capture: true });\n });\n }\n}\n\n/** Returns the value of a meta tag */\nfunction getMetaContent(metaName) {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : null;\n}\n\nexport { BROWSER_TRACING_INTEGRATION_ID, BrowserTracing, getMetaContent };\n//# sourceMappingURL=browsertracing.js.map\n","import { SDK_VERSION, init as init$1 } from '@sentry/browser';\n\n/**\n * Inits the React SDK\n */\nfunction init(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.react',\n packages: [\n {\n name: 'npm:@sentry/react',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n init$1(options);\n}\n\nexport { init };\n//# sourceMappingURL=sdk.js.map\n","import { getCurrentHub, showReportDialog, withScope, captureException } from '@sentry/browser';\nimport { isError, logger } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\n\nconst _jsxFileName = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/react/src/errorboundary.tsx\";\n\nfunction isAtLeastReact17(version) {\n const major = version.match(/^([^.]+)/);\n return major !== null && parseInt(major[0]) >= 17;\n}\n\nconst UNKNOWN_COMPONENT = 'unknown';\n\nconst INITIAL_STATE = {\n componentStack: null,\n error: null,\n eventId: null,\n};\n\nfunction setCause(error, cause) {\n const seenErrors = new WeakMap();\n\n function recurse(error, cause) {\n // If we've already seen the error, there is a recursive loop somewhere in the error's\n // cause chain. Let's just bail out then to prevent a stack overflow.\n if (seenErrors.has(error)) {\n return;\n }\n if (error.cause) {\n seenErrors.set(error, true);\n return recurse(error.cause, cause);\n }\n error.cause = cause;\n }\n\n recurse(error, cause);\n}\n\n/**\n * A ErrorBoundary component that logs errors to Sentry. Requires React >= 16.\n * NOTE: If you are a Sentry user, and you are seeing this stack frame, it means the\n * Sentry React SDK ErrorBoundary caught an error invoking your application code. This\n * is expected behavior and NOT indicative of a bug with the Sentry React SDK.\n */\nclass ErrorBoundary extends React.Component {\n __init() {this.state = INITIAL_STATE;}\n\n __init2() {this._openFallbackReportDialog = true;}\n\n constructor(props) {\n super(props);ErrorBoundary.prototype.__init.call(this);ErrorBoundary.prototype.__init2.call(this);ErrorBoundary.prototype.__init3.call(this);\n const client = getCurrentHub().getClient();\n if (client && client.on && props.showDialog) {\n this._openFallbackReportDialog = false;\n client.on('afterSendEvent', event => {\n if (!event.type && event.event_id === this._lastEventId) {\n showReportDialog({ ...props.dialogOptions, eventId: this._lastEventId });\n }\n });\n }\n }\n\n componentDidCatch(error, { componentStack }) {\n const { beforeCapture, onError, showDialog, dialogOptions } = this.props;\n withScope(scope => {\n // If on React version >= 17, create stack trace from componentStack param and links\n // to to the original error using `error.cause` otherwise relies on error param for stacktrace.\n // Linking errors requires the `LinkedErrors` integration be enabled.\n // See: https://reactjs.org/blog/2020/08/10/react-v17-rc.html#native-component-stacks\n //\n // Although `componentDidCatch` is typed to accept an `Error` object, it can also be invoked\n // with non-error objects. This is why we need to check if the error is an error-like object.\n // See: https://github.com/getsentry/sentry-javascript/issues/6167\n if (isAtLeastReact17(React.version) && isError(error)) {\n const errorBoundaryError = new Error(error.message);\n errorBoundaryError.name = `React ErrorBoundary ${errorBoundaryError.name}`;\n errorBoundaryError.stack = componentStack;\n\n // Using the `LinkedErrors` integration to link the errors together.\n setCause(error, errorBoundaryError);\n }\n\n if (beforeCapture) {\n beforeCapture(scope, error, componentStack);\n }\n const eventId = captureException(error, { contexts: { react: { componentStack } } });\n if (onError) {\n onError(error, componentStack, eventId);\n }\n if (showDialog) {\n this._lastEventId = eventId;\n if (this._openFallbackReportDialog) {\n showReportDialog({ ...dialogOptions, eventId });\n }\n }\n\n // componentDidCatch is used over getDerivedStateFromError\n // so that componentStack is accessible through state.\n this.setState({ error, componentStack, eventId });\n });\n }\n\n componentDidMount() {\n const { onMount } = this.props;\n if (onMount) {\n onMount();\n }\n }\n\n componentWillUnmount() {\n const { error, componentStack, eventId } = this.state;\n const { onUnmount } = this.props;\n if (onUnmount) {\n onUnmount(error, componentStack, eventId);\n }\n }\n\n __init3() {this.resetErrorBoundary = () => {\n const { onReset } = this.props;\n const { error, componentStack, eventId } = this.state;\n if (onReset) {\n onReset(error, componentStack, eventId);\n }\n this.setState(INITIAL_STATE);\n };}\n\n render() {\n const { fallback, children } = this.props;\n const state = this.state;\n\n if (state.error) {\n let element = undefined;\n if (typeof fallback === 'function') {\n element = fallback({\n error: state.error,\n componentStack: state.componentStack,\n resetError: this.resetErrorBoundary,\n eventId: state.eventId,\n });\n } else {\n element = fallback;\n }\n\n if (React.isValidElement(element)) {\n return element;\n }\n\n if (fallback) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('fallback did not produce a valid ReactElement');\n }\n\n // Fail gracefully if no fallback provided or is not valid\n return null;\n }\n\n if (typeof children === 'function') {\n return (children )();\n }\n return children;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withErrorBoundary(\n WrappedComponent,\n errorBoundaryOptions,\n) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const componentDisplayName = WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped = (props) => (\n React.createElement(ErrorBoundary, { ...errorBoundaryOptions, __self: this, __source: {fileName: _jsxFileName, lineNumber: 224}}\n , React.createElement(WrappedComponent, { ...props, __self: this, __source: {fileName: _jsxFileName, lineNumber: 225}} )\n )\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n Wrapped.displayName = `errorBoundary(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\nexport { ErrorBoundary, UNKNOWN_COMPONENT, isAtLeastReact17, withErrorBoundary };\n//# sourceMappingURL=errorboundary.js.map\n","import { WINDOW } from '@sentry/browser';\nimport { logger, getNumberOfUrlSegments } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\n\nconst _jsxFileName = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/react/src/reactrouterv6.tsx\";// Inspired from Donnie McNeal's solution:\n\nlet activeTransaction;\n\nlet _useEffect;\nlet _useLocation;\nlet _useNavigationType;\nlet _createRoutesFromChildren;\nlet _matchRoutes;\nlet _customStartTransaction;\nlet _startTransactionOnLocationChange;\n\nconst SENTRY_TAGS = {\n 'routing.instrumentation': 'react-router-v6',\n};\n\nfunction reactRouterV6Instrumentation(\n useEffect,\n useLocation,\n useNavigationType,\n createRoutesFromChildren,\n matchRoutes,\n) {\n return (\n customStartTransaction,\n startTransactionOnPageLoad = true,\n startTransactionOnLocationChange = true,\n ) => {\n const initPathName = WINDOW && WINDOW.location && WINDOW.location.pathname;\n if (startTransactionOnPageLoad && initPathName) {\n activeTransaction = customStartTransaction({\n name: initPathName,\n op: 'pageload',\n tags: SENTRY_TAGS,\n metadata: {\n source: 'url',\n },\n });\n }\n\n _useEffect = useEffect;\n _useLocation = useLocation;\n _useNavigationType = useNavigationType;\n _matchRoutes = matchRoutes;\n _createRoutesFromChildren = createRoutesFromChildren;\n\n _customStartTransaction = customStartTransaction;\n _startTransactionOnLocationChange = startTransactionOnLocationChange;\n };\n}\n\nfunction getNormalizedName(\n routes,\n location,\n branches,\n) {\n if (!routes || routes.length === 0) {\n return [location.pathname, 'url'];\n }\n\n let pathBuilder = '';\n if (branches) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let x = 0; x < branches.length; x++) {\n const branch = branches[x];\n const route = branch.route;\n if (route) {\n // Early return if index route\n if (route.index) {\n return [branch.pathname, 'route'];\n }\n\n const path = route.path;\n if (path) {\n const newPath = path[0] === '/' || pathBuilder[pathBuilder.length - 1] === '/' ? path : `/${path}`;\n pathBuilder += newPath;\n if (branch.pathname === location.pathname) {\n if (\n // If the route defined on the element is something like\n // Product} />\n // We should check against the branch.pathname for the number of / seperators\n getNumberOfUrlSegments(pathBuilder) !== getNumberOfUrlSegments(branch.pathname) &&\n // We should not count wildcard operators in the url segments calculation\n pathBuilder.slice(-2) !== '/*'\n ) {\n return [newPath, 'route'];\n }\n return [pathBuilder, 'route'];\n }\n }\n }\n }\n }\n\n return [location.pathname, 'url'];\n}\n\nfunction updatePageloadTransaction(location, routes, matches) {\n const branches = Array.isArray(matches) ? matches : (_matchRoutes(routes, location) );\n\n if (activeTransaction && branches) {\n activeTransaction.setName(...getNormalizedName(routes, location, branches));\n }\n}\n\nfunction handleNavigation(\n location,\n routes,\n navigationType,\n matches,\n) {\n const branches = Array.isArray(matches) ? matches : _matchRoutes(routes, location);\n\n if (_startTransactionOnLocationChange && (navigationType === 'PUSH' || navigationType === 'POP') && branches) {\n if (activeTransaction) {\n activeTransaction.finish();\n }\n\n const [name, source] = getNormalizedName(routes, location, branches);\n activeTransaction = _customStartTransaction({\n name,\n op: 'navigation',\n tags: SENTRY_TAGS,\n metadata: {\n source,\n },\n });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withSentryReactRouterV6Routing(Routes) {\n if (\n !_useEffect ||\n !_useLocation ||\n !_useNavigationType ||\n !_createRoutesFromChildren ||\n !_matchRoutes ||\n !_customStartTransaction\n ) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`reactRouterV6Instrumentation was unable to wrap Routes because of one or more missing parameters.\n useEffect: ${_useEffect}. useLocation: ${_useLocation}. useNavigationType: ${_useNavigationType}.\n createRoutesFromChildren: ${_createRoutesFromChildren}. matchRoutes: ${_matchRoutes}. customStartTransaction: ${_customStartTransaction}.`);\n\n return Routes;\n }\n\n let isMountRenderPass = true;\n\n const SentryRoutes = (props) => {\n const location = _useLocation();\n const navigationType = _useNavigationType();\n\n _useEffect(\n () => {\n const routes = _createRoutesFromChildren(props.children) ;\n\n if (isMountRenderPass) {\n updatePageloadTransaction(location, routes);\n isMountRenderPass = false;\n } else {\n handleNavigation(location, routes, navigationType);\n }\n },\n // `props.children` is purpusely not included in the dependency array, because we do not want to re-run this effect\n // when the children change. We only want to start transactions when the location or navigation type change.\n [location, navigationType],\n );\n\n // @ts-ignore Setting more specific React Component typing for `R` generic above\n // will break advanced type inference done by react router params\n return React.createElement(Routes, { ...props, __self: this, __source: {fileName: _jsxFileName, lineNumber: 197}} );\n };\n\n hoistNonReactStatics(SentryRoutes, Routes);\n\n // @ts-ignore Setting more specific React Component typing for `R` generic above\n // will break advanced type inference done by react router params\n return SentryRoutes;\n}\n\nfunction wrapUseRoutes(origUseRoutes) {\n if (!_useEffect || !_useLocation || !_useNavigationType || !_matchRoutes || !_customStartTransaction) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n 'reactRouterV6Instrumentation was unable to wrap `useRoutes` because of one or more missing parameters.',\n );\n\n return origUseRoutes;\n }\n\n let isMountRenderPass = true;\n\n // eslint-disable-next-line react/display-name\n return (routes, locationArg) => {\n const SentryRoutes = () => {\n const Routes = origUseRoutes(routes, locationArg);\n\n const location = _useLocation();\n const navigationType = _useNavigationType();\n\n // A value with stable identity to either pick `locationArg` if available or `location` if not\n const stableLocationParam =\n typeof locationArg === 'string' || (locationArg && locationArg.pathname)\n ? (locationArg )\n : location;\n\n _useEffect(() => {\n const normalizedLocation =\n typeof stableLocationParam === 'string' ? { pathname: stableLocationParam } : stableLocationParam;\n\n if (isMountRenderPass) {\n updatePageloadTransaction(normalizedLocation, routes);\n isMountRenderPass = false;\n } else {\n handleNavigation(normalizedLocation, routes, navigationType);\n }\n }, [navigationType, stableLocationParam]);\n\n return Routes;\n };\n\n return React.createElement(SentryRoutes, {__self: this, __source: {fileName: _jsxFileName, lineNumber: 248}} );\n };\n}\n\nfunction wrapCreateBrowserRouter\n\n(createRouterFunction) {\n // `opts` for createBrowserHistory and createMemoryHistory are different, but also not relevant for us at the moment.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (routes, opts) {\n const router = createRouterFunction(routes, opts);\n\n // The initial load ends when `createBrowserRouter` is called.\n // This is the earliest convenient time to update the transaction name.\n // Callbacks to `router.subscribe` are not called for the initial load.\n if (router.state.historyAction === 'POP' && activeTransaction) {\n updatePageloadTransaction(router.state.location, routes);\n }\n\n router.subscribe((state) => {\n const location = state.location;\n\n if (\n _startTransactionOnLocationChange &&\n (state.historyAction === 'PUSH' || state.historyAction === 'POP') &&\n activeTransaction\n ) {\n handleNavigation(location, routes, state.historyAction);\n }\n });\n\n return router;\n };\n}\n\nexport { reactRouterV6Instrumentation, withSentryReactRouterV6Routing, wrapCreateBrowserRouter, wrapUseRoutes };\n//# sourceMappingURL=reactrouterv6.js.map\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\"use client\";\n\n// src/index.ts\nimport * as devtools from \"./devtools.js\";\nvar ReactQueryDevtools2 = process.env.NODE_ENV !== \"development\" ? function() {\n return null;\n} : devtools.ReactQueryDevtools;\nexport {\n ReactQueryDevtools2 as ReactQueryDevtools\n};\n//# sourceMappingURL=index.js.map","import { observable } from '@datagrid/state';\n\nimport type { BackendTypes, CSTypes } from '@tf/api';\n\nimport type { AppState } from '@/core/types';\n\nexport type AppStoreType = {\n\tstate: AppState;\n\ttenant: string;\n\tcurrency: string;\n\tdefaultLocale: string;\n\tappMeta: BackendTypes.AppMeta;\n\tdefs: CSTypes.GetFrontendIrResponse;\n\tprocessingScripts: Record;\n};\n\nexport const appStore = observable({\n\tstate: 'loading',\n\ttenant: '',\n\tcurrency: '',\n\tdefaultLocale: 'en',\n\tappMeta: {\n\t\tid: '',\n\t\tclusterId: '',\n\t\tversion: '',\n\t\tappUrl: '',\n\t},\n\tdefs: {\n\t\tlocales: [],\n\t\tstructs: {},\n\t\tselfSegments: {},\n\t\tforms: [],\n\t\tentities: {},\n\t\toptions: {},\n\t\tpaletteItems: [],\n\t},\n\tprocessingScripts: {},\n});\n","import { observable } from '@datagrid/state';\n\nimport type { AppConfig } from '@/core/types';\n\nexport const configStore = observable({} as AppConfig);\n","import { observable } from '@datagrid/state';\n\nexport interface InstantCheckStoreType {\n\thits: any[] | null;\n\tselectedId: number | null;\n\tsearchId: string | null;\n\tsearchName: string | null;\n}\n\nexport const instantCheckStore = observable({\n\thits: null,\n\tselectedId: null,\n\tsearchId: null,\n\tsearchName: null,\n});\n","import { observable } from '@datagrid/state';\n\nimport type { BackendTypes } from '@tf/api';\n\ninterface monitoringStoreType {\n\tselected: BackendTypes.Entity | null;\n\thits: BackendTypes.AdhocSearchResult['rawResponse'] | null;\n\tassociations: BackendTypes.OverviewAccount[] | null;\n\tsearchInfo: BackendTypes.MonitoringSearch | null;\n}\n\nexport const monitoringStore = observable({\n\tselected: null,\n\thits: null,\n\tassociations: null,\n\tsearchInfo: null,\n});\n","import React from 'react';\n\nimport { ClerkProvider } from '@clerk/clerk-react';\nimport { useSelector } from '@datagrid/state';\n\nimport { useMantineTheme } from '@tf/ui';\n\nimport { configStore } from '@/core/stores';\n\nexport const AuthProvider: React.FC = ({ children }) => {\n\tconst config = useSelector(() => configStore.get());\n\tconst clerkPubKey = config.auth.clerk_publishable_key;\n\n\tconst { colors } = useMantineTheme();\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n","import React, { useEffect } from 'react';\n\nimport { batch, observer, Switch, useObservable } from '@datagrid/state';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { configStore } from '@/core/stores';\nimport type { AppConfig, ComponentState } from '@/core/types';\n\nexport const ConfigProvider: React.FC = observer(({ children }) => {\n\tconst state = useObservable({ status: 'loading' });\n\n\tconst configQuery = useQuery({\n\t\tqueryKey: ['config'],\n\t\tqueryFn: () => {\n\t\t\treturn fetch(`/env.json?ts=${Date.now()}`).then((res) => {\n\t\t\t\tif (res.status !== 200) throw new Error('Invalid response');\n\t\t\t\treturn res.json() as Promise;\n\t\t\t});\n\t\t},\n\t});\n\n\tuseEffect(() => {\n\t\tswitch (configQuery.status) {\n\t\t\tcase 'success': {\n\t\t\t\tconst config = configQuery.data;\n\t\t\t\tif (!config) {\n\t\t\t\t\tstate.set({ status: 'error', message: 'No config provided' });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbatch(() => {\n\t\t\t\t\tstate.set({ status: 'ready' });\n\t\t\t\t\tconfigStore.assign(config);\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'error': {\n\t\t\t\tconst error = configQuery.error;\n\t\t\t\tconst message = error instanceof Error ? error.message : 'Unknown error';\n\t\t\t\tstate.set({ status: 'error', message });\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}, [configQuery.data, configQuery.error, configQuery.status, state]);\n\n\treturn (\n\t\t\n\t\t\t{{\n\t\t\t\tready: () => children,\n\t\t\t\terror: () =>
Error: {state.message?.get()}
,\n\t\t\t\tloading: () => ,\n\t\t\t}}\n\t\t
\n\t);\n});\n","\"use strict\";\n// NOTE: don't construct errors here or they'll have the wrong stack trace.\n// NOTE: don't make custom error class; the JS engines use `SyntaxError`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorMessages = exports.ErrorType = void 0;\n/**\n * Keys for possible error messages used by `unraw`.\n * Note: These do _not_ map to actual error object types. All errors thrown\n * are `SyntaxError`.\n */\n// Don't use const enum or JS users won't be able to access the enum values\nvar ErrorType;\n(function (ErrorType) {\n /**\n * Thrown when a badly formed Unicode escape sequence is found. Possible\n * reasons include the code being too short (`\"\\u25\"`) or having invalid\n * characters (`\"\\u2$A5\"`).\n */\n ErrorType[\"MalformedUnicode\"] = \"MALFORMED_UNICODE\";\n /**\n * Thrown when a badly formed hexadecimal escape sequence is found. Possible\n * reasons include the code being too short (`\"\\x2\"`) or having invalid\n * characters (`\"\\x2$\"`).\n */\n ErrorType[\"MalformedHexadecimal\"] = \"MALFORMED_HEXADECIMAL\";\n /**\n * Thrown when a Unicode code point escape sequence has too high of a code\n * point. The maximum code point allowed is `\\u{10FFFF}`, so `\\u{110000}` and\n * higher will throw this error.\n */\n ErrorType[\"CodePointLimit\"] = \"CODE_POINT_LIMIT\";\n /**\n * Thrown when an octal escape sequences is encountered and `allowOctals` is\n * `false`. For example, `unraw(\"\\234\", false)`.\n */\n ErrorType[\"OctalDeprecation\"] = \"OCTAL_DEPRECATION\";\n /**\n * Thrown only when a single backslash is found at the end of a string. For\n * example, `\"\\\\\"` or `\"test\\\\x24\\\\\"`.\n */\n ErrorType[\"EndOfString\"] = \"END_OF_STRING\";\n})(ErrorType = exports.ErrorType || (exports.ErrorType = {}));\n/** Map of error message names to the full text of the message. */\nexports.errorMessages = new Map([\n [ErrorType.MalformedUnicode, \"malformed Unicode character escape sequence\"],\n [\n ErrorType.MalformedHexadecimal,\n \"malformed hexadecimal character escape sequence\"\n ],\n [\n ErrorType.CodePointLimit,\n \"Unicode codepoint must not be greater than 0x10FFFF in escape sequence\"\n ],\n [\n ErrorType.OctalDeprecation,\n '\"0\"-prefixed octal literals and octal escape sequences are deprecated; ' +\n 'for octal literals use the \"0o\" prefix instead'\n ],\n [ErrorType.EndOfString, \"malformed escape sequence at end of string\"]\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unraw = exports.errorMessages = exports.ErrorType = void 0;\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ErrorType\", { enumerable: true, get: function () { return errors_1.ErrorType; } });\nObject.defineProperty(exports, \"errorMessages\", { enumerable: true, get: function () { return errors_1.errorMessages; } });\n/**\n * Parse a string as a base-16 number. This is more strict than `parseInt` as it\n * will not allow any other characters, including (for example) \"+\", \"-\", and\n * \".\".\n * @param hex A string containing a hexadecimal number.\n * @returns The parsed integer, or `NaN` if the string is not a valid hex\n * number.\n */\nfunction parseHexToInt(hex) {\n const isOnlyHexChars = !hex.match(/[^a-f0-9]/i);\n return isOnlyHexChars ? parseInt(hex, 16) : NaN;\n}\n/**\n * Check the validity and length of a hexadecimal code and optionally enforces\n * a specific number of hex digits.\n * @param hex The string to validate and parse.\n * @param errorName The name of the error message to throw a `SyntaxError` with\n * if `hex` is invalid. This is used to index `errorMessages`.\n * @param enforcedLength If provided, will throw an error if `hex` is not\n * exactly this many characters.\n * @returns The parsed hex number as a normal number.\n * @throws {SyntaxError} If the code is not valid.\n */\nfunction validateAndParseHex(hex, errorName, enforcedLength) {\n const parsedHex = parseHexToInt(hex);\n if (Number.isNaN(parsedHex) ||\n (enforcedLength !== undefined && enforcedLength !== hex.length)) {\n throw new SyntaxError(errors_1.errorMessages.get(errorName));\n }\n return parsedHex;\n}\n/**\n * Parse a two-digit hexadecimal character escape code.\n * @param code The two-digit hexadecimal number that represents the character to\n * output.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the code is not valid hex or is not the right\n * length.\n */\nfunction parseHexadecimalCode(code) {\n const parsedCode = validateAndParseHex(code, errors_1.ErrorType.MalformedHexadecimal, 2);\n return String.fromCharCode(parsedCode);\n}\n/**\n * Parse a four-digit Unicode character escape code.\n * @param code The four-digit unicode number that represents the character to\n * output.\n * @param surrogateCode Optional four-digit unicode surrogate that represents\n * the other half of the character to output.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the codes are not valid hex or are not the right\n * length.\n */\nfunction parseUnicodeCode(code, surrogateCode) {\n const parsedCode = validateAndParseHex(code, errors_1.ErrorType.MalformedUnicode, 4);\n if (surrogateCode !== undefined) {\n const parsedSurrogateCode = validateAndParseHex(surrogateCode, errors_1.ErrorType.MalformedUnicode, 4);\n return String.fromCharCode(parsedCode, parsedSurrogateCode);\n }\n return String.fromCharCode(parsedCode);\n}\n/**\n * Test if the text is surrounded by curly braces (`{}`).\n * @param text Text to check.\n * @returns `true` if the text is in the form `{*}`.\n */\nfunction isCurlyBraced(text) {\n return text.charAt(0) === \"{\" && text.charAt(text.length - 1) === \"}\";\n}\n/**\n * Parse a Unicode code point character escape code.\n * @param codePoint A unicode escape code point, including the surrounding curly\n * braces.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the code is not valid hex or does not have the\n * surrounding curly braces.\n */\nfunction parseUnicodeCodePointCode(codePoint) {\n if (!isCurlyBraced(codePoint)) {\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.MalformedUnicode));\n }\n const withoutBraces = codePoint.slice(1, -1);\n const parsedCode = validateAndParseHex(withoutBraces, errors_1.ErrorType.MalformedUnicode);\n try {\n return String.fromCodePoint(parsedCode);\n }\n catch (err) {\n throw err instanceof RangeError\n ? new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.CodePointLimit))\n : err;\n }\n}\n// Have to give overload that takes boolean for when compiler doesn't know if\n// true or false\nfunction parseOctalCode(code, error = false) {\n if (error) {\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.OctalDeprecation));\n }\n // The original regex only allows digits so we don't need to have a strict\n // octal parser like hexToInt. Length is not enforced for octals.\n const parsedCode = parseInt(code, 8);\n return String.fromCharCode(parsedCode);\n}\n/**\n * Map of unescaped letters to their corresponding special JS escape characters.\n * Intentionally does not include characters that map to themselves like \"\\'\".\n */\nconst singleCharacterEscapes = new Map([\n [\"b\", \"\\b\"],\n [\"f\", \"\\f\"],\n [\"n\", \"\\n\"],\n [\"r\", \"\\r\"],\n [\"t\", \"\\t\"],\n [\"v\", \"\\v\"],\n [\"0\", \"\\0\"]\n]);\n/**\n * Parse a single character escape sequence and return the matching character.\n * If none is matched, defaults to `code`.\n * @param code A single character code.\n */\nfunction parseSingleCharacterCode(code) {\n return singleCharacterEscapes.get(code) || code;\n}\n/**\n * Matches every escape sequence possible, including invalid ones.\n *\n * All capture groups (described below) are unique (only one will match), except\n * for 4, which can only potentially match if 3 does.\n *\n * **Capture Groups:**\n * 0. A single backslash\n * 1. Hexadecimal code\n * 2. Unicode code point code with surrounding curly braces\n * 3. Unicode escape code with surrogate\n * 4. Surrogate code\n * 5. Unicode escape code without surrogate\n * 6. Octal code _NOTE: includes \"0\"._\n * 7. A single character (will never be \\, x, u, or 0-3)\n */\nconst escapeMatch = /\\\\(?:(\\\\)|x([\\s\\S]{0,2})|u(\\{[^}]*\\}?)|u([\\s\\S]{4})\\\\u([^{][\\s\\S]{0,3})|u([\\s\\S]{0,4})|([0-3]?[0-7]{1,2})|([\\s\\S])|$)/g;\n/**\n * Replace raw escape character strings with their escape characters.\n * @param raw A string where escape characters are represented as raw string\n * values like `\\'` rather than `'`.\n * @param allowOctals If `true`, will process the now-deprecated octal escape\n * sequences (ie, `\\111`).\n * @returns The processed string, with escape characters replaced by their\n * respective actual Unicode characters.\n */\nfunction unraw(raw, allowOctals = false) {\n return raw.replace(escapeMatch, function (_, backslash, hex, codePoint, unicodeWithSurrogate, surrogate, unicode, octal, singleCharacter) {\n // Compare groups to undefined because empty strings mean different errors\n // Otherwise, `\\u` would fail the same as `\\` which is wrong.\n if (backslash !== undefined) {\n return \"\\\\\";\n }\n if (hex !== undefined) {\n return parseHexadecimalCode(hex);\n }\n if (codePoint !== undefined) {\n return parseUnicodeCodePointCode(codePoint);\n }\n if (unicodeWithSurrogate !== undefined) {\n return parseUnicodeCode(unicodeWithSurrogate, surrogate);\n }\n if (unicode !== undefined) {\n return parseUnicodeCode(unicode);\n }\n if (octal === \"0\") {\n return \"\\0\";\n }\n if (octal !== undefined) {\n return parseOctalCode(octal, !allowOctals);\n }\n if (singleCharacter !== undefined) {\n return parseSingleCharacterCode(singleCharacter);\n }\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.EndOfString));\n });\n}\nexports.unraw = unraw;\nexports.default = unraw;\n","import { unraw } from 'unraw';\nimport { compileMessage } from '@lingui/message-utils/compileMessage';\n\nconst isString = (s) => typeof s === \"string\";\nconst isFunction = (f) => typeof f === \"function\";\n\nconst cache = /* @__PURE__ */ new Map();\nconst defaultLocale = \"en\";\nfunction normalizeLocales(locales) {\n const out = Array.isArray(locales) ? locales : [locales];\n return [...out, defaultLocale];\n}\nfunction date(locales, value, format) {\n const _locales = normalizeLocales(locales);\n const formatter = getMemoized(\n () => cacheKey(\"date\", _locales, format),\n () => new Intl.DateTimeFormat(_locales, format)\n );\n return formatter.format(isString(value) ? new Date(value) : value);\n}\nfunction number(locales, value, format) {\n const _locales = normalizeLocales(locales);\n const formatter = getMemoized(\n () => cacheKey(\"number\", _locales, format),\n () => new Intl.NumberFormat(_locales, format)\n );\n return formatter.format(value);\n}\nfunction plural(locales, ordinal, value, { offset = 0, ...rules }) {\n const _locales = normalizeLocales(locales);\n const plurals = ordinal ? getMemoized(\n () => cacheKey(\"plural-ordinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"ordinal\" })\n ) : getMemoized(\n () => cacheKey(\"plural-cardinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"cardinal\" })\n );\n return rules[value] ?? rules[plurals.select(value - offset)] ?? rules.other;\n}\nfunction getMemoized(getKey, construct) {\n const key = getKey();\n let formatter = cache.get(key);\n if (!formatter) {\n formatter = construct();\n cache.set(key, formatter);\n }\n return formatter;\n}\nfunction cacheKey(type, locales, options) {\n const localeKey = locales.join(\"-\");\n return `${type}-${localeKey}-${JSON.stringify(options)}`;\n}\n\nconst formats = {\n __proto__: null,\n date: date,\n defaultLocale: defaultLocale,\n number: number,\n plural: plural\n};\n\nconst UNICODE_REGEX = /\\\\u[a-fA-F0-9]{4}|\\\\x[a-fA-F0-9]{2}/;\nconst OCTOTHORPE_PH = \"%__lingui_octothorpe__%\";\nconst getDefaultFormats = (locale, passedLocales, formats = {}) => {\n const locales = passedLocales || locale;\n const style = (format) => {\n return typeof format === \"object\" ? format : formats[format] || { style: format };\n };\n const replaceOctothorpe = (value, message) => {\n const numberFormat = Object.keys(formats).length ? style(\"number\") : void 0;\n const valueStr = number(locales, value, numberFormat);\n return message.replace(new RegExp(OCTOTHORPE_PH, \"g\"), valueStr);\n };\n return {\n plural: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, false, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n selectordinal: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, true, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n select: selectFormatter,\n number: (value, format) => number(locales, value, style(format)),\n date: (value, format) => date(locales, value, style(format))\n };\n};\nconst selectFormatter = (value, rules) => rules[value] ?? rules.other;\nfunction interpolate(translation, locale, locales) {\n return (values = {}, formats) => {\n const formatters = getDefaultFormats(locale, locales, formats);\n const formatMessage = (tokens, replaceOctothorpe = false) => {\n if (!Array.isArray(tokens))\n return tokens;\n return tokens.reduce((message, token) => {\n if (token === \"#\" && replaceOctothorpe) {\n return message + OCTOTHORPE_PH;\n }\n if (isString(token)) {\n return message + token;\n }\n const [name, type, format] = token;\n let interpolatedFormat = {};\n if (type === \"plural\" || type === \"selectordinal\" || type === \"select\") {\n Object.entries(format).forEach(\n ([key, value2]) => {\n interpolatedFormat[key] = formatMessage(\n value2,\n type === \"plural\" || type === \"selectordinal\"\n );\n }\n );\n } else {\n interpolatedFormat = format;\n }\n let value;\n if (type) {\n const formatter = formatters[type];\n value = formatter(values[name], interpolatedFormat);\n } else {\n value = values[name];\n }\n if (value == null) {\n return message;\n }\n return message + value;\n }, \"\");\n };\n const result = formatMessage(translation);\n if (isString(result) && UNICODE_REGEX.test(result)) {\n return unraw(result.trim());\n }\n if (isString(result))\n return result.trim();\n return result ? String(result) : \"\";\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass EventEmitter {\n constructor() {\n __publicField$1(this, \"_events\", {});\n }\n on(event, listener) {\n var _a;\n (_a = this._events)[event] ?? (_a[event] = []);\n this._events[event].push(listener);\n return () => this.removeListener(event, listener);\n }\n removeListener(event, listener) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n const index = maybeListeners.indexOf(listener);\n if (~index)\n maybeListeners.splice(index, 1);\n }\n emit(event, ...args) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n maybeListeners.map((listener) => listener.apply(this, args));\n }\n _getListeners(event) {\n const maybeListeners = this._events[event];\n return Array.isArray(maybeListeners) ? maybeListeners : false;\n }\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass I18n extends EventEmitter {\n constructor(params) {\n super();\n __publicField(this, \"_locale\", \"\");\n __publicField(this, \"_locales\");\n __publicField(this, \"_localeData\", {});\n __publicField(this, \"_messages\", {});\n __publicField(this, \"_missing\");\n /**\n * Alias for {@see I18n._}\n */\n __publicField(this, \"t\", this._.bind(this));\n if (params.missing != null)\n this._missing = params.missing;\n if (params.messages != null)\n this.load(params.messages);\n if (params.localeData != null)\n this.loadLocaleData(params.localeData);\n if (typeof params.locale === \"string\" || params.locales) {\n this.activate(params.locale ?? defaultLocale, params.locales);\n }\n }\n get locale() {\n return this._locale;\n }\n get locales() {\n return this._locales;\n }\n get messages() {\n return this._messages[this._locale] ?? {};\n }\n /**\n * @deprecated this has no effect. Please remove this from the code. Deprecated in v4\n */\n get localeData() {\n return this._localeData[this._locale] ?? {};\n }\n _loadLocaleData(locale, localeData) {\n const maybeLocaleData = this._localeData[locale];\n if (!maybeLocaleData) {\n this._localeData[locale] = localeData;\n } else {\n Object.assign(maybeLocaleData, localeData);\n }\n }\n /**\n * @deprecated Plurals automatically used from Intl.PluralRules you can safely remove this call. Deprecated in v4\n */\n // @ts-ignore deprecated, so ignore the reported error\n loadLocaleData(localeOrAllData, localeData) {\n if (localeData != null) {\n this._loadLocaleData(localeOrAllData, localeData);\n } else {\n Object.keys(localeOrAllData).forEach(\n (locale) => this._loadLocaleData(locale, localeOrAllData[locale])\n );\n }\n this.emit(\"change\");\n }\n _load(locale, messages) {\n const maybeMessages = this._messages[locale];\n if (!maybeMessages) {\n this._messages[locale] = messages;\n } else {\n Object.assign(maybeMessages, messages);\n }\n }\n load(localeOrMessages, messages) {\n if (typeof localeOrMessages == \"string\" && typeof messages === \"object\") {\n this._load(localeOrMessages, messages);\n } else {\n Object.entries(localeOrMessages).forEach(\n ([locale, messages2]) => this._load(locale, messages2)\n );\n }\n this.emit(\"change\");\n }\n /**\n * @param options {@link LoadAndActivateOptions}\n */\n loadAndActivate({ locale, locales, messages }) {\n this._locale = locale;\n this._locales = locales || void 0;\n this._messages[this._locale] = messages;\n this.emit(\"change\");\n }\n activate(locale, locales) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!this._messages[locale]) {\n console.warn(`Messages for locale \"${locale}\" not loaded.`);\n }\n }\n this._locale = locale;\n this._locales = locales;\n this.emit(\"change\");\n }\n _(id, values, options) {\n let message = options?.message;\n if (!id) {\n id = \"\";\n }\n if (!isString(id)) {\n values = id.values || values;\n message = id.message;\n id = id.id;\n }\n const messageForId = this.messages[id];\n const messageMissing = messageForId === void 0;\n const missing = this._missing;\n if (missing && messageMissing) {\n return isFunction(missing) ? missing(this._locale, id) : missing;\n }\n if (messageMissing) {\n this.emit(\"missing\", { id, locale: this._locale });\n }\n let translation = messageForId || message || id;\n if (process.env.NODE_ENV !== \"production\") {\n translation = isString(translation) ? compileMessage(translation) : translation;\n }\n if (isString(translation) && UNICODE_REGEX.test(translation))\n return JSON.parse(`\"${translation}\"`);\n if (isString(translation))\n return translation;\n return interpolate(\n translation,\n this._locale,\n this._locales\n )(values, options?.formats);\n }\n date(value, format) {\n return date(this._locales || this._locale, value, format);\n }\n number(value, format) {\n return number(this._locales || this._locale, value, format);\n }\n}\nfunction setupI18n(params = {}) {\n return new I18n(params);\n}\n\nconst i18n = setupI18n();\n\nexport { I18n, formats, i18n, setupI18n };\n","export const addTFConsoleMethods = (methods: Record void>) => {\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore Property is created here\n\twindow.tfConsole = { ...window.tfConsole, ...methods };\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { i18n } from '@lingui/core';\nimport { I18nProvider as LinguiI18nProvider } from '@lingui/react';\n\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { appStore } from '@/core/stores';\nimport { addTFConsoleMethods } from '@/core/tfConsole';\n\nexport const loadCatalog = async (locale: string) => {\n\tconst { messages } = await import(`../../../locales/${locale}.po`);\n\ti18n.loadAndActivate({ locale, messages });\n};\n\nconst pseudoLocaleCode = 'testing';\n\nexport const I18nProvider: React.FC = ({ children }) => {\n\tconst defaultLocale = useSelector(() => appStore.defaultLocale.get());\n\tconst [isInitialized, setIsInitialized] = useState(false);\n\n\tuseEffect(() => {\n\t\tloadCatalog(defaultLocale).then(() => {\n\t\t\tsetIsInitialized(true);\n\t\t});\n\n\t\t// For testing\n\t\tlet prevActiveLocale = i18n.locale;\n\t\taddTFConsoleMethods({\n\t\t\tl10nTogglePseudolocalization: () => {\n\t\t\t\tif (i18n.locale !== pseudoLocaleCode) {\n\t\t\t\t\tprevActiveLocale = i18n.locale;\n\t\t\t\t\tloadCatalog(pseudoLocaleCode);\n\t\t\t\t} else {\n\t\t\t\t\tloadCatalog(prevActiveLocale);\n\t\t\t\t}\n\t\t\t},\n\t\t\tl10nSwitchLocale: (locale: string) => {\n\t\t\t\tloadCatalog(locale);\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tif (!isInitialized) {\n\t\treturn ;\n\t}\n\n\treturn {children};\n};\n","import type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\n\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport type { AccountWithReviews } from '@/core/types/account';\n\nexport const getAccountQuery = async (accountId: number): Promise => {\n\tconst api = BackendClient.getInstance();\n\n\t// * Get account meta\n\tconst meta = await api\n\t\t.entityGet(accountId)\n\t\t.then((res) => res.json() as Promise);\n\n\t// * Get reviews from account\n\t// TODO: This is a temporary solution, we need to implement batch review fetching\n\tconst connections = meta.listConnections\n\t\t.filter((connection) => connection.isReview)\n\t\t.map((connection) =>\n\t\t\tconnection.listFromEntities.map((entity) => ({\n\t\t\t\tgraphLinkId: entity.graphLinkId,\n\t\t\t\tgraphNodeId: entity.graphNodeId,\n\t\t\t}))\n\t\t)\n\t\t.flat();\n\n\tconst reviews: ExtendedReviewContainer[] = await Promise.all(\n\t\tconnections.map(async (connection) => {\n\t\t\tconst res = await api.reviewGet(connection.graphLinkId);\n\t\t\tconst review: BackendTypes.ReviewGetData = await res.json();\n\t\t\treturn { ...review, ...connection };\n\t\t})\n\t);\n\n\treturn { meta, reviews };\n};\n","import { CSClient, type CSTypes } from '@tf/api';\n\nexport const getDefinitionsQuery = async (\n\trevision: string,\n\tlocale: string\n): Promise => {\n\tconst res = await CSClient.getInstance().getFrontendIr(revision, locale);\n\treturn res.json();\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const getMonitoringAssociationsQuery = async (\n\tparams: BackendTypes.EntityAssociationsGetParams\n): Promise => {\n\tconst res = await BackendClient.getInstance().entityAssociationsGet(params);\n\treturn res.json();\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const getOverviewQuery = async (\n\tparams: BackendTypes.GetOverviewParams\n): Promise => {\n\tconst res = await BackendClient.getInstance().getOverview(params);\n\treturn res.json();\n};\n","import { CSClient, type CSTypes } from '@tf/api';\n\nexport const getProcessingScriptsQuery = async (\n\trevision: string\n): Promise => {\n\tconst res = await CSClient.getInstance().getScripts(revision);\n\treturn res.json();\n};\n","import { TDMClient, type TDMTypes } from '@tf/api';\n\nexport const getTenantConfigQuery = async (tenant: string): Promise => {\n\tconst res = await TDMClient.getInstance().getConfig(tenant);\n\treturn res.json();\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const instantCheckQuery = async (\n\tinput: BackendTypes.AdhocSearchParams\n): Promise => {\n\tconst res = await BackendClient.getInstance().adhocSearch(input);\n\treturn res.json();\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const monitoringSearchDetailsQuery = async (\n\tparams: BackendTypes.MonitoringSearchDetailsParams\n): Promise => {\n\tconst res = await BackendClient.getInstance().monitoringSearchDetails(params);\n\treturn res.json();\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const monitoringSearchesQuery = async (\n\tparams: BackendTypes.MonitoringSearchesParams\n): Promise => {\n\tconst res = await BackendClient.getInstance().monitoringSearches(params);\n\n\treturn res.json();\n};\n","import { queryOptions, useQuery } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\n\nimport { getOverviewQuery } from '@/core/queries';\n\nconst overviewAccountsQueryOptions = (\n\tpage: number,\n\tlimit: number,\n\tparams?: Omit\n) => {\n\treturn queryOptions({\n\t\tqueryKey: ['overviewAccounts', page, limit, params],\n\t\tqueryFn: () => getOverviewQuery({ ...params, page, limit }),\n\t\tstaleTime: 0,\n\t});\n};\n\nexport const useOverviewAccounts = (\n\tpage: number,\n\tlimit: number,\n\tparams?: Omit\n) => {\n\treturn useQuery(overviewAccountsQueryOptions(page, limit, params));\n};\n\nexport const overviewAccountQueryOptions = (accountId: number) => {\n\treturn queryOptions({\n\t\tqueryKey: ['overviewAccount', accountId],\n\t\tqueryFn: () => getOverviewQuery({ page: 1, limit: 10, accountId }),\n\t\tstaleTime: 20 * 1000,\n\t\tselect: ({ accounts, listUsers }) => ({ account: accounts.items[0], listUsers }),\n\t});\n};\n\nexport const useOverviewAccount = (accountId: number) => {\n\treturn useQuery(overviewAccountQueryOptions(accountId));\n};\n\nconst overviewDataQueryOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['overviewData'],\n\t\tqueryFn: () => getOverviewQuery({ page: 1, limit: 10 }),\n\t\tstaleTime: 40 * 1000,\n\t\tselect: ({ listUsers, tenantNodeId }) => ({ listUsers, tenantNodeId }),\n\t});\n};\n\nexport const useOverviewData = () => {\n\treturn useQuery(overviewDataQueryOptions());\n};\n","import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport { BackendClient, type BackendTypes } from '@tf/api';\nimport { T } from '@tf/utils';\n\nimport { useOverviewData } from '@/core/api/overview';\nimport { getAccountQuery } from '@/core/queries';\n\nexport const accountQueryOptions = (accountId: number) => {\n\treturn queryOptions({\n\t\tqueryKey: ['accounts', accountId],\n\t\tqueryFn: () => getAccountQuery(accountId),\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useAccount = (accountId: number) => {\n\treturn useQuery(accountQueryOptions(accountId));\n};\n\nexport const useCreateAccountMutation = () => {\n\tconst { data } = useOverviewData();\n\tconst tenantNodeId = data?.tenantNodeId;\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\taccountKind,\n\t\t\tentitySelfSegmentKind,\n\t\t\tentitySelfSegmentData,\n\t\t}: {\n\t\t\taccountKind: BackendTypes.EntityKind;\n\t\t\tentitySelfSegmentKind: BackendTypes.SegmentKind;\n\t\t\tentitySelfSegmentData: Record;\n\t\t}): Promise => {\n\t\t\tT.assertNotNullish(tenantNodeId, 'overview not loaded');\n\n\t\t\tconst res = await BackendClient.getInstance().entityConnectNew(\n\t\t\t\ttenantNodeId,\n\t\t\t\t'ACCOUNT',\n\t\t\t\taccountKind,\n\t\t\t\t{\n\t\t\t\t\tlistEntitySegments: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// @ts-expect-error No need for graphId here\n\t\t\t\t\t\t\tsegmentIdentity: {\n\t\t\t\t\t\t\t\tsegmentKind: entitySelfSegmentKind,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsegment: entitySelfSegmentData,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// @ts-expect-error No need for graphId here\n\t\t\t\t\t\t\tsegmentIdentity: {\n\t\t\t\t\t\t\t\tsegmentKind: 'COMMON__RM_FEEDBACK',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsegment: { client_account_status: 'PROSPECT' },\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tlistConnectionSegments: [],\n\t\t\t\t}\n\t\t\t);\n\n\t\t\treturn res.json();\n\t\t},\n\t\tonSuccess: async () => {\n\t\t\tawait queryClient.invalidateQueries({ queryKey: ['overviewAccounts'] });\n\t\t},\n\t});\n};\n","import { queryOptions, useQuery } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\n\nexport const segmentsQueryOptions = (segmentIdentities: BackendTypes.SegmentIdentity[]) => {\n\tconst segmentsKey = segmentIdentities.reduce((acc, s) => {\n\t\tacc[s.graphId] = acc[s.graphId] ?? {};\n\t\tacc[s.graphId][s.segmentKind] = true;\n\t\treturn acc;\n\t}, {} as Record>);\n\n\treturn queryOptions({\n\t\tqueryKey: ['segments', segmentsKey],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst res = await BackendClient.getInstance().segmentsRead(segmentIdentities);\n\t\t\treturn res.json();\n\t\t},\n\t\t// Completely disable cache\n\t\tstaleTime: 0,\n\t\tgcTime: 0,\n\t});\n};\n\ntype AdditionalSegmentsQueryOptions = Omit<\n\tReturnType,\n\t'queryFn' | 'queryKey' | 'staleTime' | 'gcTime'\n>;\n\nexport const useSegmentsQuery = (\n\tsegmentIdentities: BackendTypes.SegmentIdentity[],\n\toptions: AdditionalSegmentsQueryOptions = {}\n) => {\n\treturn useQuery({ ...segmentsQueryOptions(segmentIdentities), ...options });\n};\n","import { useSelector } from '@datagrid/state';\n\nimport type { BackendTypes } from '@tf/api';\n\nimport { appStore } from '@/core/stores';\n\nexport function useProcessingScripts(\n\tsegmentsKinds: BackendTypes.SegmentKind[]\n): Record {\n\tconst resultScripts: Record = {};\n\tconst storedScripts = useSelector(() => appStore.processingScripts.get());\n\n\tsegmentsKinds.forEach((segmentKind: string) => {\n\t\tif (storedScripts[segmentKind]) {\n\t\t\tresultScripts[segmentKind] = storedScripts[segmentKind];\n\t\t}\n\t});\n\n\treturn resultScripts;\n}\n","import { useLocation, useParams } from 'react-router-dom';\n\ntype PathParams = {\n\taccountId: string;\n\tconnectionKind: string;\n\tconnectionId: string;\n\tformKind: string;\n\tentityId: string;\n\tid: string;\n};\n\ntype AccountParams = {\n\taccountId: number;\n\tconnectionKind: string;\n\tconnectionId: number;\n\tentityId: number;\n\tformKind: string;\n\trequestId: string;\n\tsearchParams: Record;\n};\n\nexport const useAccountParams = (): AccountParams => {\n\tconst params = useParams();\n\tconst location = useLocation();\n\n\tif (!params.accountId) {\n\t\tthrow new Error('Account ID not found');\n\t}\n\n\tconst searchParams = location.search\n\t\t.replace('?', '')\n\t\t.split('&')\n\t\t.reduce((acc, entry) => {\n\t\t\tconst [key, value] = entry.split('=');\n\t\t\treturn { ...acc, [key]: value };\n\t\t}, {});\n\n\treturn {\n\t\taccountId: parseInt(params.accountId, 10),\n\t\tconnectionKind: params.connectionKind\n\t\t\t? params.connectionKind.replaceAll('-', '_').toUpperCase()\n\t\t\t: '',\n\t\tconnectionId: parseInt(params.connectionId || '0', 10),\n\t\tentityId: parseInt(params.entityId || '0', 10),\n\t\tformKind: params.formKind ?? '',\n\t\trequestId: params.id ?? '',\n\t\tsearchParams,\n\t};\n};\n","import { useAccount } from '@/core/api/account';\nimport { useAccountParams } from '@/core/hooks/use-account-params';\n\nexport const useSelectedAccount = () => {\n\tconst { accountId } = useAccountParams();\n\tconst { data } = useAccount(accountId);\n\n\tif (!data) {\n\t\tthrow new Error('Account not found');\n\t}\n\n\treturn data;\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const monitoringSearchMatchStatusUpdate = async ({\n\tgraphNodeId,\n\tdata,\n}: BackendTypes.MonitoringSearchMatchStatusUpdateData): Promise => {\n\tconst res = await BackendClient.getInstance().monitoringSearchMatchStatusUpdate(graphNodeId, data);\n};\n","import { BackendClient } from '@tf/api';\n\ninterface MutationInput {\n\taccountId: number;\n\tids: string[];\n}\n\nexport const setAccountAssigneesMutation = async ({\n\taccountId,\n\tids,\n}: MutationInput): Promise => {\n\tconst res = await BackendClient.getInstance().setAssignedManagers(accountId, ids);\n\treturn res.ok;\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\ninterface MutationInput {\n\taccountId: number;\n\tpriority: BackendTypes.OverviewImportance;\n}\n\nexport const setAccountPriorityMutation = async ({\n\taccountId,\n\tpriority,\n}: MutationInput): Promise => {\n\tconst res = await BackendClient.getInstance().setImportance(accountId, priority);\n\treturn res.ok;\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const updateMonitoringSearchCommentMutation = async ({\n\tgraphNodeId,\n\tmatchId,\n\tcomment,\n}: BackendTypes.MonitoringSearchMatchCommentCreateData): Promise => {\n\tawait BackendClient.getInstance().monitoringSearchMatchCommentCreate(graphNodeId, matchId, {\n\t\tcomment,\n\t});\n};\n","import { BackendClient, type BackendTypes } from '@tf/api';\n\nexport const writeSegmentsMutation = async (\n\tinput: BackendTypes.SegmentsWritePayload\n): Promise => {\n\tconst api = BackendClient.getInstance();\n\tconst res = await api.segmentsWrite(input).then((r) => r.json());\n\n\treturn res as BackendTypes.SegmentsWriteData;\n};\n","import { useEffect } from 'react';\n\nimport { useObservable } from '@datagrid/state';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\nimport type { FormSegment, FormValues, SubmitHandler } from '@tf/utils';\nimport { rawRevision } from '@tf/utils';\n\nimport { accountQueryOptions } from '@/core/api/account';\nimport { overviewAccountQueryOptions } from '@/core/api/overview';\nimport { segmentsQueryOptions, useSegmentsQuery } from '@/core/api/segments';\nimport { useProcessingScripts } from '@/core/hooks/use-processing-scripts';\nimport { useSelectedAccount } from '@/core/hooks/use-selected-account';\nimport { writeSegmentsMutation } from '@/core/mutations';\n\ninterface State {\n\tvalues?: FormValues;\n\trevisions: Record;\n}\n\nexport const useAccountForm = (segmentKinds: string[], options: { onSuccess: () => void }) => {\n\tconst { meta } = useSelectedAccount();\n\n\tconst state = useObservable({\n\t\trevisions: {},\n\t});\n\n\tconst formSegments: FormSegment[] = meta.listSegments\n\t\t.filter((s) => {\n\t\t\treturn segmentKinds.includes(s.SegmentIdentity.segmentKind);\n\t\t})\n\t\t.map((s) => ({ ...s.SegmentIdentity, accessMode: s.AccessMode }));\n\n\tconst segmentsQuery = useSegmentsQuery(formSegments);\n\n\tuseEffect(() => {\n\t\tif (segmentsQuery.data) {\n\t\t\tconst nextState: Required = {\n\t\t\t\tvalues: {},\n\t\t\t\trevisions: {},\n\t\t\t};\n\t\t\tfor (const segmentData of segmentsQuery.data) {\n\t\t\t\tconst { info, segment } = segmentData.container;\n\t\t\t\tconst segmentKind = info.SegmentIdentity.segmentKind;\n\t\t\t\tnextState.values[segmentKind] = segment;\n\t\t\t\tnextState.revisions[segmentKind] = info.Revision.revision;\n\t\t\t}\n\t\t\tstate.assign(nextState);\n\t\t}\n\t}, [segmentsQuery.data, state]);\n\n\tconst queryClient = useQueryClient();\n\tconst handleSubmit: SubmitHandler = async ({ values, segmentValidationStatuses }) => {\n\t\tconst payload: BackendTypes.SegmentsWritePayload = [];\n\t\tfor (const formSegment of formSegments) {\n\t\t\tif (formSegment.accessMode === 'VIEW') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tpayload.push({\n\t\t\t\tsegmentIdentity: formSegment,\n\t\t\t\tsegment: values[formSegment.segmentKind],\n\t\t\t\tvalidationStatus: segmentValidationStatuses[formSegment.segmentKind],\n\t\t\t\trevision: {\n\t\t\t\t\t...rawRevision,\n\t\t\t\t\trevision: state.revisions.peek()[formSegment.segmentKind],\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tconst res = await writeSegmentsMutation(payload);\n\n\t\t// Update revisions\n\t\tfor (const segmentData of res) {\n\t\t\tconst { SegmentIdentity, Revision } = segmentData.container.info;\n\t\t\tconst segmentKind = SegmentIdentity.segmentKind;\n\t\t\tstate.revisions.set((prev) => ({ ...prev, [segmentKind]: Revision.revision }));\n\t\t}\n\n\t\tTFNotifier.success('Account updated successfully!');\n\t\tawait queryClient.refetchQueries(overviewAccountQueryOptions(meta.graphNodeId));\n\t\tawait queryClient.refetchQueries(accountQueryOptions(meta.graphNodeId));\n\t\tawait queryClient.refetchQueries(segmentsQueryOptions(formSegments));\n\t\toptions.onSuccess();\n\t};\n\n\tconst scripts = useProcessingScripts(segmentKinds);\n\n\treturn { state, scripts, formSegments, handleSubmit };\n};\n","import { queryOptions, useQuery } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\n\nexport const accountEventLogsQueryOptions = (accountId: number) => {\n\treturn queryOptions({\n\t\tqueryKey: ['accountEventsLog', accountId],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst api = BackendClient.getInstance();\n\t\t\tconst res = await api.accountEventLog(accountId);\n\t\t\treturn res.json();\n\t\t},\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useAccountEventsLog = (accountId: number) => {\n\treturn useQuery(accountEventLogsQueryOptions(accountId));\n};\n","import type { BackendTypes } from '@tf/api';\n\ntype GetLabelOptions = {\n\tnoun?: 'singular' | 'plural';\n\tkind?: 'role' | 'reviewState' | 'accountStatus';\n};\n\nconst reviewStates = new Map([\n\t['DRAFT', 'Draft'],\n\t['READY_TO_REVIEW', 'Ready to review'],\n\t['UNDER_REVIEW', 'Pending review'],\n\t['UPDATE_REQUIRED', 'Update required'],\n\t['VERIFIED', 'Verified'],\n]);\n\ntype AccountStatusType = BackendTypes.OverviewAccountStatus | 'UNDEFINED';\n\nconst accountStatus = new Map([\n\t['UNDEFINED', 'Not defined'],\n\t['PROSPECT', 'Prospect'],\n\t['ACTIVE', 'Active'],\n\t['SUSPENDED', 'Suspended'],\n\t['REJECTED', 'Rejected'],\n\t['CLOSED', 'Closed'],\n\t['ARCHIVED', 'Archived'],\n]);\n\n/**\n * Get a label for a value\n * @param value\n * @param opts\n */\nexport const getLabel = (value: string, opts?: GetLabelOptions) => {\n\tconst { noun = 'singular', kind = 'global' } = opts || {};\n\n\tif (kind === 'reviewState') {\n\t\treturn reviewStates.get(value as BackendTypes.ReviewState) || value;\n\t}\n\n\tif (kind === 'accountStatus') {\n\t\treturn accountStatus.get(value as AccountStatusType) || value;\n\t}\n\n\treturn value;\n};\n","import { appStore } from '@/core/stores';\n\n/**\n * Get the self segment for an entity\n * @param entityKind\n */\nexport const getSelfSegment = (entityKind: string): string => {\n\tconst selfSegments = Object.entries(appStore.defs.selfSegments.peek());\n\tconst match = selfSegments.find(([s]) => s === entityKind)?.[1];\n\n\tif (!match) {\n\t\tthrow new Error(`No self segment found for entity kind \"${entityKind}\"`);\n\t}\n\n\treturn match as string;\n};\n","export enum MatchStatus {\n\tUNKNOWN = 'unknown',\n\tNO_MATCH = 'no_match',\n\tPOTENTIAL_MATCH = 'potential_match',\n\tFALSE_POSITIVE = 'false_positive',\n\tTRUE_POSITIVE = 'true_positive',\n\tTRUE_POSITIVE_APPROVE = 'true_positive_approve',\n\tTRUE_POSITIVE_REJECT = 'true_positive_reject',\n}\n\nexport const MATCH_STATUSES = [\n\t{ value: MatchStatus.UNKNOWN, label: 'Unknown' },\n\t{ value: MatchStatus.NO_MATCH, label: 'No match' },\n\t{ value: MatchStatus.POTENTIAL_MATCH, label: 'Potential match' },\n\t{ value: MatchStatus.FALSE_POSITIVE, label: 'False positive' },\n\t{ value: MatchStatus.TRUE_POSITIVE, label: 'True positive' },\n\t{ value: MatchStatus.TRUE_POSITIVE_APPROVE, label: 'Approve - true positive' },\n\t{ value: MatchStatus.TRUE_POSITIVE_REJECT, label: 'Reject - true positive' },\n];\n","import type { BackendTypes } from '@tf/api';\nimport type { FormStatuses } from '@tf/shared';\n\nexport type { AppConfig, AppDefinitions, AppState, AppUser, ComponentState } from './common.js';\n\nexport type ExtendedReviewContainer = BackendTypes.EntityReviewContainer & {\n\tgraphLinkId: number;\n\tgraphNodeId: number;\n};\n\nexport interface FormState {\n\tid: string;\n\tstatuses: FormStatuses;\n}\n\nexport enum UserCapabilities {\n\tCAN_PREPARE_ACCOUNTS_DATA = 'CAN_PREPARE_ACCOUNTS_DATA',\n\tCAN_REVIEW_ACCOUNTS_DATA = 'CAN_REVIEW_ACCOUNTS_DATA',\n\tCAN_MANAGE_MONITORING = 'CAN_MANAGE_MONITORING',\n\tCAN_MANAGE_USERS = 'CAN_MANAGE_USERS',\n\tCAN_EXPORT_ACCOUNT_DATA = 'CAN_EXPORT_ACCOUNT_DATA',\n\tCAN_MANAGE_API_TOKENS = 'CAN_MANAGE_API_TOKENS',\n}\n\nexport { MATCH_STATUSES, MatchStatus } from './monitoring.js';\n","import type { ReactElement } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Icon } from '@tf/ui';\n\nimport { UserCapabilities } from '@/core/types';\n\n/**\n * List all available capabilities with labels\n */\nexport const capabilities: Record = {\n\t[UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA]: 'Account management',\n\t[UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA]: 'Account review',\n\t[UserCapabilities.CAN_MANAGE_MONITORING]: 'Ongoing monitoring',\n\t[UserCapabilities.CAN_MANAGE_USERS]: 'User management',\n\t[UserCapabilities.CAN_EXPORT_ACCOUNT_DATA]: 'Data export',\n\t[UserCapabilities.CAN_MANAGE_API_TOKENS]: 'API token management',\n};\n\nexport const capabilitiesIcons: Record = {\n\t[UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA]: ,\n\t[UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA]: ,\n\t[UserCapabilities.CAN_MANAGE_MONITORING]: ,\n\t[UserCapabilities.CAN_MANAGE_USERS]: ,\n\t[UserCapabilities.CAN_EXPORT_ACCOUNT_DATA]: ,\n\t[UserCapabilities.CAN_MANAGE_API_TOKENS]: ,\n};\n","import type { BackendTypes } from '@tf/api';\n\nimport { capabilities } from './capabilities';\n\nexport const getCapabilities = () => {\n\treturn Object.entries(capabilities).map(([value, label]) => {\n\t\treturn {\n\t\t\tvalue: value as BackendTypes.RoleCapabilityValue,\n\t\t\tlabel,\n\t\t};\n\t});\n};\n","interface UserNameInfo {\n\tusername: string;\n\tfirstName: string;\n\tlastName: string;\n}\n\nexport const getDisplayName = (user: UserNameInfo) => {\n\tconst fullName = `${user.firstName} ${user.lastName}`.trim();\n\n\treturn fullName || user.username;\n};\n","import type { BackendTypes } from '@tf/api';\n\nimport { useCurrentUser } from '@/core/hooks';\n\n/**\n * Check if the current user has a capability\n * @param capability\n */\nexport const useCurrentUserCapabilityCheck = (capability: BackendTypes.RoleCapabilityValue) => {\n\tconst user = useCurrentUser();\n\treturn user.listRoleCapabilities.includes(capability);\n};\n","import { useEffect } from 'react';\n\nimport { useObservable, useSelector } from '@datagrid/state';\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\nimport type { FormSegment } from '@tf/utils';\nimport { rawRevision } from '@tf/utils';\n\nimport { accountQueryOptions } from '@/core/api/account';\nimport { accountEventLogsQueryOptions } from '@/core/api/accountEvenstLog';\nimport { overviewAccountQueryOptions } from '@/core/api/overview';\nimport { segmentsQueryOptions, useSegmentsQuery } from '@/core/api/segments';\nimport { useSelectedAccount } from '@/core/hooks/use-selected-account';\nimport { writeSegmentsMutation } from '@/core/mutations';\nimport { getSelfSegment } from '@/core/utils';\n\ninterface Values {\n\tCORPORATE_ACCOUNT__SELF: {\n\t\tname: string;\n\t};\n\tCOMMON__RM_FEEDBACK: {\n\t\tclient_account_status: BackendTypes.OverviewAccountStatus;\n\t\tonboarding_date: string;\n\t\tclosing_date: string;\n\t\taccount_id: string;\n\t};\n\tCOMMON__COMPLIANCE_FEEDBACK: {\n\t\tclient_risk_level: BackendTypes.OverviewAccountRiskLevel;\n\t};\n\tCOMMON__COMPLIANCE_DATES: {\n\t\tkyc_approval_date: string;\n\t\tnext_kyc_review_date: string;\n\t};\n\n\t[field: string]: any;\n}\n\ntype ValuesUpdate = {\n\t[SegmentKind in keyof Values]?: Partial;\n};\n\ninterface State {\n\tvalues?: Values;\n\trevisions?: Record;\n\tvalidationStatuses?: Record;\n}\n\nexport const useAccountInfoSegments = () => {\n\tconst { meta } = useSelectedAccount();\n\n\tconst state = useObservable({});\n\n\t// Extract target segment identities\n\tconst selfSegmentKind = getSelfSegment(meta.entityKind);\n\tconst formSegments: FormSegment[] = meta.listSegments\n\t\t.filter((s) => {\n\t\t\tconst segmentKind = s.SegmentIdentity.segmentKind;\n\t\t\tconst requiredSegments = [\n\t\t\t\tselfSegmentKind,\n\t\t\t\t'COMMON__RM_FEEDBACK',\n\t\t\t\t'COMMON__COMPLIANCE_FEEDBACK',\n\t\t\t\t'COMMON__COMPLIANCE_DATES',\n\t\t\t];\n\t\t\treturn requiredSegments.includes(segmentKind);\n\t\t})\n\t\t.map((s) => ({ ...s.SegmentIdentity, accessMode: s.AccessMode }));\n\n\t// * Get segments data\n\tconst segmentsQuery = useSegmentsQuery(formSegments);\n\n\tuseEffect(() => {\n\t\tif (segmentsQuery.data) {\n\t\t\tprepareState(segmentsQuery.data);\n\t\t}\n\t}, [segmentsQuery.data]);\n\n\tfunction prepareState(data: BackendTypes.SegmentsReadData) {\n\t\tconst nextState: Required = {\n\t\t\tvalues: {} as Values,\n\t\t\trevisions: {},\n\t\t\tvalidationStatuses: {},\n\t\t};\n\n\t\tfor (const segmentData of data) {\n\t\t\tconst { info, segment, validationStatus } = segmentData.container;\n\t\t\tconst segmentKind = info.SegmentIdentity.segmentKind;\n\t\t\tnextState.values[segmentKind] = segment;\n\t\t\tnextState.revisions[segmentKind] = info.Revision.revision;\n\t\t\tnextState.validationStatuses[segmentKind] = validationStatus;\n\t\t}\n\n\t\tstate.assign(nextState);\n\t}\n\n\tconst queryClient = useQueryClient();\n\n\tconst updateSegments = (values: ValuesUpdate) => {\n\t\tconst payload: BackendTypes.SegmentsWritePayload = [];\n\t\tfor (const formSegment of formSegments) {\n\t\t\tif (formSegment.accessMode === 'VIEW') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpayload.push({\n\t\t\t\tsegmentIdentity: formSegment,\n\t\t\t\tsegment: {\n\t\t\t\t\t...state.values?.get()?.[formSegment.segmentKind],\n\t\t\t\t\t...values[formSegment.segmentKind],\n\t\t\t\t},\n\t\t\t\trevision: {\n\t\t\t\t\t...rawRevision,\n\t\t\t\t\trevision: state.revisions?.peek()?.[formSegment.segmentKind] ?? rawRevision.revision,\n\t\t\t\t},\n\t\t\t\tvalidationStatus: state.validationStatuses?.peek()?.[formSegment.segmentKind],\n\t\t\t});\n\t\t}\n\n\t\treturn writeSegmentsMutation(payload);\n\t};\n\n\tconst onSuccess = (res: BackendTypes.SegmentsWriteData) => {\n\t\t// * Update revisions\n\t\tfor (const segmentData of res) {\n\t\t\tconst { SegmentIdentity, Revision } = segmentData.container.info;\n\t\t\tconst segmentKind = SegmentIdentity.segmentKind;\n\t\t\tif (state.revisions) {\n\t\t\t\tstate.revisions.set((prev) => ({ ...prev, [segmentKind]: Revision.revision }));\n\t\t\t}\n\t\t}\n\n\t\tTFNotifier.success('Account updated successfully!');\n\t\tqueryClient.refetchQueries(overviewAccountQueryOptions(meta.graphNodeId));\n\t\tqueryClient.refetchQueries(accountQueryOptions(meta.graphNodeId));\n\t\tqueryClient.refetchQueries(segmentsQueryOptions(formSegments));\n\t\tqueryClient.invalidateQueries(accountEventLogsQueryOptions(meta.graphNodeId));\n\t};\n\n\t// Getters and mutations for separate fields\n\tconst accountStatus = useSelector(\n\t\t() => state.values?.get()?.COMMON__RM_FEEDBACK?.client_account_status\n\t);\n\tconst onboardingDate = useSelector(() => state.values?.get()?.COMMON__RM_FEEDBACK.onboarding_date);\n\tconst closingDate = useSelector(() => state.values?.get()?.COMMON__RM_FEEDBACK.closing_date);\n\n\tconst kycApprovalDate = useSelector(\n\t\t() => state.values?.get()?.COMMON__COMPLIANCE_DATES?.kyc_approval_date\n\t);\n\n\tconst kycApprovalDateMutation = useMutation({\n\t\tmutationFn: (newDate: string) => {\n\t\t\treturn updateSegments({ COMMON__COMPLIANCE_DATES: { kyc_approval_date: newDate } });\n\t\t},\n\t\tonSuccess,\n\t});\n\n\tconst nextKycReviewDate = useSelector(\n\t\t() => state.values?.get()?.COMMON__COMPLIANCE_DATES?.next_kyc_review_date\n\t);\n\n\tconst nextKycReviewDateMutation = useMutation({\n\t\tmutationFn: (newDate: string) => {\n\t\t\treturn updateSegments({ COMMON__COMPLIANCE_DATES: { next_kyc_review_date: newDate } });\n\t\t},\n\t\tonSuccess,\n\t});\n\n\tconst accountDataMutation = useMutation({\n\t\tmutationFn: ({\n\t\t\tclient_account_status,\n\t\t\tonboarding_date,\n\t\t\tclosing_date,\n\t\t\taccount_id,\n\t\t}: Values['COMMON__RM_FEEDBACK']) => {\n\t\t\treturn updateSegments({\n\t\t\t\tCOMMON__RM_FEEDBACK: {\n\t\t\t\t\tclient_account_status,\n\t\t\t\t\tonboarding_date,\n\t\t\t\t\tclosing_date,\n\t\t\t\t\taccount_id,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tonSuccess,\n\t});\n\n\tconst clientRiskLevel = useSelector(\n\t\t() => state.values?.get()?.COMMON__COMPLIANCE_FEEDBACK?.client_risk_level\n\t);\n\n\tconst defaultValues = [\n\t\t{ fieldName: 'onboarding_date', fieldType: 'date' },\n\t\t{ fieldName: 'closing_date', fieldType: 'date' },\n\t\t{ fieldName: 'kyc_approval_date', fieldType: 'date' },\n\t\t{ fieldName: 'next_kyc_review_date', fieldType: 'date' },\n\t];\n\n\treturn {\n\t\tstate,\n\t\taccountStatus,\n\t\tonboardingDate,\n\t\tclosingDate,\n\t\tkycApprovalDate,\n\t\tkycApprovalDateMutation,\n\t\tnextKycReviewDate,\n\t\tnextKycReviewDateMutation,\n\t\tformSegments,\n\t\taccountDataMutation,\n\t\tclientRiskLevel,\n\t\tdefaultValues,\n\t};\n};\n","import { useOrganization, useUser } from '@clerk/clerk-react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { T } from '@tf/utils';\n\nexport const useCurrentUser = (): BackendTypes.UserInfo => {\n\tconst { organization } = useOrganization();\n\tT.assertNotNullish(organization, 'organization is empty');\n\n\tconst { user } = useUser();\n\tT.assertNotNullish(user, 'user is empty, not signed in');\n\n\tconst orgMembership = user.organizationMemberships.find((m) => m.organization.id === organization.id);\n\tT.assertNotNullish(orgMembership, 'active organization not found in user memberships');\n\n\treturn {\n\t\tuserId: user.id,\n\t\tusername: user.username ?? '',\n\t\tfirstName: user.firstName ?? '',\n\t\tlastName: user.lastName ?? '',\n\t\thasImage: user.hasImage,\n\t\timageUrl: user.imageUrl,\n\t\tlistRoleCapabilities: orgMembership.publicMetadata\n\t\t\t.capabilities as BackendTypes.RoleCapabilityValue[],\n\t};\n};\n","import { useSelector } from '@datagrid/state';\n\nimport type { BackendTypes } from '@tf/api';\nimport { S } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\n\ntype ConnectionLabels = Record;\n\nexport const useEntityConnectionLabels = (entityKind: BackendTypes.EntityKind): ConnectionLabels => {\n\tconst entities = useSelector(() => appStore.defs.entities.get());\n\tconst labels: ConnectionLabels = {};\n\n\tentities[entityKind].possibleConnections.forEach((connection) => {\n\t\tlabels[connection.kind] = {\n\t\t\tsingular: connection.labels?.singular || S.prettify(connection.kind),\n\t\t\tplural: connection.labels?.plural || S.prettify(connection.kind),\n\t\t};\n\t});\n\n\treturn labels;\n};\n","import { useSelector } from '@datagrid/state';\n\nimport type { BackendTypes } from '@tf/api';\nimport { S } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\n\nexport const useGetEntityLabel = () => {\n\tconst defs = useSelector(() => appStore.defs.get());\n\n\treturn (entityKind: BackendTypes.EntityKind) =>\n\t\tdefs.entities[entityKind]?.label ?? S.prettify(entityKind);\n};\n","import digest from '../runtime/digest.js';\nexport const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n buffers.forEach((buffer) => {\n buf.set(buffer, i);\n i += buffer.length;\n });\n return buf;\n}\nexport function p2s(alg, p2sInput) {\n return concat(encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nexport function uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nexport function lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nexport async function concatKdf(secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n const res = new Uint8Array(iterations * 32);\n for (let iter = 0; iter < iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter + 1));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n res.set(await digest('sha256', buf), iter * 32);\n }\n return res.slice(0, bits >> 3);\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nexport const encodeBase64 = (input) => {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < unencoded.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join(''));\n};\nexport const encode = (input) => {\n return encodeBase64(input).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nexport const decodeBase64 = (encoded) => {\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n};\nexport const decode = (input) => {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, '');\n try {\n return decodeBase64(encoded);\n }\n catch (_a) {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n};\n","export class JOSEError extends Error {\n static get code() {\n return 'ERR_JOSE_GENERIC';\n }\n constructor(message) {\n var _a;\n super(message);\n this.code = 'ERR_JOSE_GENERIC';\n this.name = this.constructor.name;\n (_a = Error.captureStackTrace) === null || _a === void 0 ? void 0 : _a.call(Error, this, this.constructor);\n }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n static get code() {\n return 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JWTExpired extends JOSEError {\n static get code() {\n return 'ERR_JWT_EXPIRED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_EXPIRED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n static get code() {\n return 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n}\nexport class JOSENotSupported extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_NOT_SUPPORTED';\n }\n static get code() {\n return 'ERR_JOSE_NOT_SUPPORTED';\n }\n}\nexport class JWEDecryptionFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_DECRYPTION_FAILED';\n this.message = 'decryption operation failed';\n }\n static get code() {\n return 'ERR_JWE_DECRYPTION_FAILED';\n }\n}\nexport class JWEInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_INVALID';\n }\n static get code() {\n return 'ERR_JWE_INVALID';\n }\n}\nexport class JWSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_INVALID';\n }\n static get code() {\n return 'ERR_JWS_INVALID';\n }\n}\nexport class JWTInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWT_INVALID';\n }\n static get code() {\n return 'ERR_JWT_INVALID';\n }\n}\nexport class JWKInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWK_INVALID';\n }\n static get code() {\n return 'ERR_JWK_INVALID';\n }\n}\nexport class JWKSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_INVALID';\n }\n static get code() {\n return 'ERR_JWKS_INVALID';\n }\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_NO_MATCHING_KEY';\n this.message = 'no applicable key found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_NO_MATCHING_KEY';\n }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n this.message = 'multiple matching keys found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n }\n}\nSymbol.asyncIterator;\nexport class JWKSTimeout extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_TIMEOUT';\n this.message = 'request timed out';\n }\n static get code() {\n return 'ERR_JWKS_TIMEOUT';\n }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n this.message = 'signature verification failed';\n }\n static get code() {\n return 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n }\n}\n","function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nexport default function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n","import * as base64url from '../runtime/base64url.js';\nexport const encode = base64url.encode;\nexport const decode = base64url.decode;\n","import { decode as base64url } from './base64url.js';\nimport { decoder } from '../lib/buffer_utils.js';\nimport isObject from '../lib/is_object.js';\nimport { JWTInvalid } from './errors.js';\nexport function decodeJwt(jwt) {\n if (typeof jwt !== 'string')\n throw new JWTInvalid('JWTs must use Compact JWS serialization, JWT must be a string');\n const { 1: payload, length } = jwt.split('.');\n if (length === 5)\n throw new JWTInvalid('Only JWTs using Compact JWS serialization can be decoded');\n if (length !== 3)\n throw new JWTInvalid('Invalid JWT');\n if (!payload)\n throw new JWTInvalid('JWTs must contain a payload');\n let decoded;\n try {\n decoded = base64url(payload);\n }\n catch (_a) {\n throw new JWTInvalid('Failed to parse the base64url encoded payload');\n }\n let result;\n try {\n result = JSON.parse(decoder.decode(decoded));\n }\n catch (_b) {\n throw new JWTInvalid('Failed to parse the decoded payload as JSON');\n }\n if (!isObject(result))\n throw new JWTInvalid('Invalid JWT Claims Set');\n return result;\n}\n","import { useCallback } from 'react';\n\nimport { useAuth, useClerk } from '@clerk/clerk-react';\nimport { useSelector } from '@datagrid/state';\nimport * as Sentry from '@sentry/react';\nimport { decodeJwt } from 'jose';\nimport type { JWTPayload } from 'jose/dist/types/types';\n\nimport type { BackendTypes } from '@tf/api';\n\nimport { configStore } from '@/core/stores';\n\ninterface TokenResult {\n\tvalue: string;\n\ttenant: string;\n\tuserId: string;\n}\n\ntype JWTMembershipMetadata = JWTPayload & {\n\torg_name: string;\n\torg_member_metadata: { capabilities: BackendTypes.RoleCapabilityValue[] };\n};\n\nconst hasMembershipMetadata = (claims: JWTPayload): claims is JWTMembershipMetadata => {\n\tif (typeof claims['org_name'] !== 'string') {\n\t\treturn false;\n\t}\n\n\tif ('org_member_metadata' in claims) {\n\t\tconst orgMetadata = claims.org_member_metadata as any;\n\t\tif ('capabilities' in orgMetadata) {\n\t\t\treturn Array.isArray(orgMetadata.capabilities) && orgMetadata.capabilities.length > 0;\n\t\t}\n\t}\n\n\treturn false;\n};\n\ntype Options = {\n\twithLogger: boolean;\n};\n\nexport const useGetTenantToken = ({ withLogger }: Options = { withLogger: false }) => {\n\tconst config = useSelector(() => configStore.get());\n\tconst { getToken, signOut, isLoaded, isSignedIn } = useAuth();\n\tconst clerk = useClerk();\n\n\tconst requiredTenant = import.meta.env.DEV\n\t\t? 'local'\n\t\t: window.location.hostname.match(/^[\\w-]+/)?.[0].toLowerCase();\n\n\tconst logToSentry = (message: string, context: Record): void => {\n\t\tif (!withLogger) {\n\t\t\treturn;\n\t\t}\n\n\t\tSentry.captureMessage(`GetTenantToken: ${message}`, {\n\t\t\tlevel: 'error',\n\t\t\tfingerprint: [window.location.hostname, message],\n\t\t\textra: {\n\t\t\t\tclerkIsLoaded: isLoaded,\n\t\t\t\tisSignedIn,\n\t\t\t\thostname: window.location.hostname,\n\t\t\t\trequiredTenant,\n\t\t\t\tuserId: clerk.user?.id,\n\t\t\t\tuserPrimaryEmail: clerk.user?.primaryEmailAddress?.emailAddress,\n\t\t\t\t...context,\n\t\t\t},\n\t\t});\n\t};\n\n\tconst getParsedToken = useCallback(async (): Promise => {\n\t\tconst token = await getToken({ template: config.auth.jwt_template }).catch((error) => {\n\t\t\tlogToSentry('Clerk getToken error', {\n\t\t\t\tjwtTemplate: config.auth.jwt_template,\n\t\t\t\terror,\n\t\t\t});\n\t\t\treturn null;\n\t\t});\n\n\t\tif (!token) {\n\t\t\tlogToSentry('Clerk returned null token', {\n\t\t\t\tjwtTemplate: config.auth.jwt_template,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\n\t\tconst claims = decodeJwt(token);\n\t\tif (!claims.sub || !hasMembershipMetadata(claims)) {\n\t\t\tlogToSentry('Wrong JWT claims', {\n\t\t\t\tjwtTemplate: config.auth.jwt_template,\n\t\t\t\tclaims,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\tvalue: token,\n\t\t\tuserId: claims.sub,\n\t\t\ttenant: claims['org_name'],\n\t\t};\n\t}, [config.auth.jwt_template, getToken]);\n\n\treturn async function retrieveToken() {\n\t\tconst token = await getParsedToken();\n\n\t\tif (token?.tenant.toLowerCase() === requiredTenant) {\n\t\t\treturn token;\n\t\t}\n\n\t\t// No token or it belongs to another org, let's try to switch to required org\n\t\tconst userMemberships = clerk.user?.organizationMemberships;\n\t\tconst requiredMembership = userMemberships?.find((m) => {\n\t\t\treturn m.organization.name.toLowerCase() === requiredTenant;\n\t\t});\n\n\t\tif (!requiredMembership) {\n\t\t\t// user is not a member of required organization\n\t\t\tlogToSentry('User is not a member of required organization', {\n\t\t\t\tuserMemberships: userMemberships?.map((m) => m.organization.name.toLowerCase()),\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\n\t\tawait clerk.setActive({ organization: requiredMembership.organization });\n\n\t\tconst secondToken = await getParsedToken();\n\t\t// Double-check: in rare cases token is still linked to previous tenant after switching\n\t\tif (!secondToken || secondToken.tenant.toLowerCase() !== requiredTenant) {\n\t\t\tlogToSentry('Invalid token after organization switch, signing out', {\n\t\t\t\toldTenant: token?.tenant,\n\t\t\t\tnewTenant: secondToken?.tenant,\n\t\t\t\tisTokenChanged: token?.value !== secondToken?.value,\n\t\t\t});\n\t\t\tawait signOut();\n\t\t\treturn null;\n\t\t}\n\n\t\treturn secondToken;\n\t};\n};\n","import { useEffect } from 'react';\n\nimport { useQuery } from '@tanstack/react-query';\n\nimport { monitoringSearchDetailsQuery } from '@/core/queries';\nimport { monitoringStore } from '@/core/stores';\n\ninterface UseMonitoringHitsParams {\n\tgraphId: number;\n\tpage: number;\n\tlimit: number;\n}\n\nexport const useMonitoringHits = ({ graphId, page, limit }: UseMonitoringHitsParams) => {\n\tconst query = useQuery({\n\t\tqueryKey: ['searchDetails', graphId, page, limit],\n\t\tqueryFn: () =>\n\t\t\tmonitoringSearchDetailsQuery({\n\t\t\t\tgraphNodeId: graphId,\n\t\t\t\tpage: page,\n\t\t\t\tlimit: limit,\n\t\t\t}),\n\t\tstaleTime: Infinity,\n\t});\n\n\tuseEffect(() => {\n\t\tif (query.data) {\n\t\t\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\t\tconst hits = query.data.matches.map((item) => item.rawResponse.hit);\n\n\t\t\tmonitoringStore.assign({\n\t\t\t\thits: hits,\n\t\t\t\tsearchInfo: query.data.searchInfo,\n\t\t\t});\n\t\t}\n\t}, [query.data]);\n\n\treturn query;\n};\n","import { useMutation } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\n\nimport { useOverviewAccount } from '@/core/api/overview';\nimport { useSelectedAccount } from '@/core/hooks/use-selected-account';\nimport { setAccountPriorityMutation } from '@/core/mutations';\n\nexport const usePriority = () => {\n\tconst { meta } = useSelectedAccount();\n\n\tconst { data } = useOverviewAccount(meta.graphNodeId);\n\n\tconst updatePriority = useMutation({\n\t\tmutationFn: ({\n\t\t\tpriority,\n\t\t\taccountId,\n\t\t}: {\n\t\t\tpriority: BackendTypes.OverviewImportance;\n\t\t\taccountId?: number;\n\t\t}) => {\n\t\t\treturn setAccountPriorityMutation({\n\t\t\t\taccountId: accountId || meta.graphNodeId,\n\t\t\t\tpriority,\n\t\t\t});\n\t\t},\n\t});\n\n\treturn {\n\t\tpriority: data?.account.importance,\n\t\tupdatePriority,\n\t};\n};\n","import { useAccount } from '@/core/api/account';\nimport { useAccountParams } from '@/core/hooks/use-account-params';\n\nexport const useSelectedAccountApplicantReview = () => {\n\tconst { accountId } = useAccountParams();\n\tconst { data } = useAccount(accountId);\n\n\tif (!data) {\n\t\tthrow new Error('Account not found');\n\t}\n\n\tconst applicantReview = data.reviews.find((r) => r.connectionKind === 'APPLICANT');\n\tif (!applicantReview) {\n\t\tthrow new Error('Applicant review not found');\n\t}\n\n\treturn applicantReview;\n};\n","import { useMemo } from 'react';\n\nimport { useSelector } from '@datagrid/state';\n\nimport { getAccountTasks } from '@tf/shared';\n\nimport { useSelectedAccount } from '@/core/hooks/use-selected-account';\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\n\nexport const useSelectedAccountTasks = () => {\n\tconst canEditAccounts = useCurrentUserCapabilityCheck(UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA);\n\tconst canReviewAccounts = useCurrentUserCapabilityCheck(UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA);\n\n\tconst account = useSelectedAccount();\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\tconst entityDefs = useSelector(() => appStore.defs.get().entities);\n\n\tconst accountTasks = useMemo(() => {\n\t\tconst reviews = account.reviews.sort((a, b) => a.connectionKind.localeCompare(b.connectionKind));\n\n\t\treturn getAccountTasks({ formDefs, entityDefs, accountId: account.meta.graphNodeId, reviews });\n\t}, [formDefs, entityDefs, account.meta.graphNodeId, account.reviews]);\n\n\treturn accountTasks.map((reviewTasks) => {\n\t\treturn {\n\t\t\t...reviewTasks,\n\t\t\tentities: reviewTasks.entities.map((entityTasks) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entityTasks,\n\t\t\t\t\ttasks: entityTasks.tasks.filter((task) => {\n\t\t\t\t\t\tswitch (task.type) {\n\t\t\t\t\t\t\tcase 'PENDING_FILL':\n\t\t\t\t\t\t\tcase 'VALIDATION_ERRORS':\n\t\t\t\t\t\t\tcase 'REJECTED':\n\t\t\t\t\t\t\tcase 'REQUIRED_CONNECTION':\n\t\t\t\t\t\t\tcase 'CORRECT_SHAREHOLDERS_PERCENTAGE_SUM':\n\t\t\t\t\t\t\tcase 'CORRECT_PARTNERSHIP_PERCENTAGE_SUM':\n\t\t\t\t\t\t\t\treturn canEditAccounts;\n\t\t\t\t\t\t\tcase 'PENDING_REVIEW':\n\t\t\t\t\t\t\tcase 'FINALIZE_REVIEW':\n\t\t\t\t\t\t\t\treturn canReviewAccounts;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tthrow new Error(`Unhandled task type in capabilities filter`);\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});\n};\n","import { useSelectedAccountTasks } from '@/core/hooks/use-selected-account-tasks';\n\nexport const useSelectedAccountTasksTotal = () => {\n\tconst accountTasks = useSelectedAccountTasks();\n\n\treturn accountTasks.reduce((total, reviewTasks) => {\n\t\treturn (\n\t\t\ttotal +\n\t\t\treviewTasks.entities.reduce((reviewTotal, { tasks }) => {\n\t\t\t\treturn reviewTotal + tasks.length;\n\t\t\t}, 0)\n\t\t);\n\t}, 0);\n};\n","import { useSelector } from '@datagrid/state';\n\nimport { monitoringStore } from '@/core/stores';\n\nexport const useSelectedMonitoringEntity = () => {\n\treturn useSelector(() => {\n\t\tconst account = monitoringStore.selected.get();\n\t\tif (!account) {\n\t\t\tthrow new Error('Entity not found');\n\t\t}\n\n\t\treturn account;\n\t});\n};\n","import { useAccount } from '@/core/api/account';\nimport { useAccountParams } from '@/core/hooks';\n\nexport const useSelectedReview = () => {\n\tconst { connectionId } = useAccountParams();\n\tconst { accountId } = useAccountParams();\n\tconst { data } = useAccount(accountId);\n\n\tif (!data) {\n\t\tthrow new Error('Account not found');\n\t}\n\n\tconst review = data.reviews.find((r) => r.graphLinkId === connectionId);\n\tif (!review) {\n\t\tthrow new Error('Review not found');\n\t}\n\n\treturn review;\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/extract-files@9.0.0/node_modules/extract-files/public/ReactNativeFile.js\nvar require_ReactNativeFile = __commonJS({\n \"../../node_modules/.pnpm/extract-files@9.0.0/node_modules/extract-files/public/ReactNativeFile.js\"(exports, module) {\n \"use strict\";\n module.exports = function ReactNativeFile(_ref) {\n var uri = _ref.uri, name = _ref.name, type = _ref.type;\n this.uri = uri;\n this.name = name;\n this.type = type;\n };\n }\n});\n\n// ../../node_modules/.pnpm/extract-files@9.0.0/node_modules/extract-files/public/isExtractableFile.js\nvar require_isExtractableFile = __commonJS({\n \"../../node_modules/.pnpm/extract-files@9.0.0/node_modules/extract-files/public/isExtractableFile.js\"(exports, module) {\n \"use strict\";\n var ReactNativeFile = require_ReactNativeFile();\n module.exports = function isExtractableFile(value) {\n return typeof File !== \"undefined\" && value instanceof File || typeof Blob !== \"undefined\" && value instanceof Blob || value instanceof ReactNativeFile;\n };\n }\n});\n\n// ../../node_modules/.pnpm/extract-files@9.0.0/node_modules/extract-files/public/extractFiles.js\nvar require_extractFiles = __commonJS({\n \"../../node_modules/.pnpm/extract-files@9.0.0/node_modules/extract-files/public/extractFiles.js\"(exports, module) {\n \"use strict\";\n var defaultIsExtractableFile = require_isExtractableFile();\n module.exports = function extractFiles(value, path, isExtractableFile) {\n if (path === void 0) {\n path = \"\";\n }\n if (isExtractableFile === void 0) {\n isExtractableFile = defaultIsExtractableFile;\n }\n var clone;\n var files = /* @__PURE__ */ new Map();\n function addFile(paths, file) {\n var storedPaths = files.get(file);\n if (storedPaths) storedPaths.push.apply(storedPaths, paths);\n else files.set(file, paths);\n }\n if (isExtractableFile(value)) {\n clone = null;\n addFile([path], value);\n } else {\n var prefix = path ? path + \".\" : \"\";\n if (typeof FileList !== \"undefined\" && value instanceof FileList)\n clone = Array.prototype.map.call(value, function(file, i2) {\n addFile([\"\" + prefix + i2], file);\n return null;\n });\n else if (Array.isArray(value))\n clone = value.map(function(child, i2) {\n var result2 = extractFiles(child, \"\" + prefix + i2, isExtractableFile);\n result2.files.forEach(addFile);\n return result2.clone;\n });\n else if (value && value.constructor === Object) {\n clone = {};\n for (var i in value) {\n var result = extractFiles(value[i], \"\" + prefix + i, isExtractableFile);\n result.files.forEach(addFile);\n clone[i] = result.clone;\n }\n } else clone = value;\n }\n return {\n clone,\n files\n };\n };\n }\n});\n\n// ../../node_modules/.pnpm/extract-files@9.0.0/node_modules/extract-files/public/index.mjs\nvar import_extractFiles = __toESM(require_extractFiles(), 1);\n\n// src/GraphQLRequestError.ts\nvar GraphQLRequestError = class extends Error {\n query;\n variables;\n response;\n extensions;\n fieldErrors;\n constructor({\n query,\n variables,\n response,\n message,\n extensions,\n fieldErrors\n }) {\n super(`GraphQL Request Error: ${message}`);\n this.query = query;\n if (variables) {\n this.variables = variables;\n }\n if (extensions) {\n this.extensions = extensions;\n }\n if (fieldErrors) {\n this.fieldErrors = fieldErrors;\n }\n Object.defineProperty(this, \"response\", {\n enumerable: false,\n value: response\n });\n }\n};\n\n// src/util/assert.ts\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg);\n }\n}\n\n// src/util/formatGetRequestUrl.ts\nfunction formatGetRequestUrl({\n endpoint,\n query,\n variables\n}) {\n const searchParams = new URLSearchParams();\n searchParams.set(\"query\", query);\n if (variables && Object.keys(variables).length > 0) {\n searchParams.set(\"variables\", JSON.stringify(variables));\n }\n return `${endpoint}?${searchParams.toString()}`;\n}\n\n// src/util/isFileUpload.ts\nvar isStreamLike = (value) => typeof value === \"object\" && value !== null && typeof value.pipe === \"function\";\nvar isPromiseLike = (value) => typeof value === \"object\" && value !== null && typeof value.then === \"function\";\nvar isFileUpload = (value) => typeof File !== \"undefined\" && value instanceof File || typeof Blob !== \"undefined\" && value instanceof Blob || typeof Buffer !== \"undefined\" && value instanceof Buffer || isStreamLike(value) || isPromiseLike(value);\n\n// src/util/isResponseJSON.ts\nvar isResponseJSON = (response) => (response.headers.get(\"Content-Type\") ?? \"\").includes(\"application/json\");\n\n// src/util/normalizeHeaders.ts\nvar isHeaders = (headers) => typeof headers.get === \"function\";\nvar isIterableHeaders = (headers) => typeof headers[Symbol.iterator] === \"function\";\nfunction normalizeHeaders(headers) {\n if (headers === void 0) {\n return {};\n }\n if (isHeaders(headers)) {\n const newHeaders = {};\n headers.forEach((value, key) => {\n newHeaders[key] = value;\n });\n return newHeaders;\n }\n if (isIterableHeaders(headers)) {\n const newHeaders = {};\n for (const [key, value] of headers) {\n newHeaders[key.toLowerCase()] = value;\n }\n return newHeaders;\n }\n return Object.fromEntries(\n Object.entries(headers).map(([key, value]) => [key.toLowerCase(), value])\n );\n}\n\n// src/AwesomeGraphQLClient.ts\nvar AwesomeGraphQLClient = class {\n endpoint;\n fetch;\n fetchOptions;\n formatQuery;\n FormData;\n onError;\n isFileUpload;\n constructor(config) {\n assert(config.endpoint !== void 0, \"endpoint is required\");\n assert(\n config.fetch !== void 0 || typeof fetch !== \"undefined\",\n \"Fetch must be polyfilled or passed in new AwesomeGraphQLClient({ fetch })\"\n );\n assert(\n !config.formatQuery || typeof config.formatQuery === \"function\",\n \"Invalid config value: `formatQuery` must be a function\"\n );\n assert(\n !config.onError || typeof config.onError === \"function\",\n \"Invalid config value: `onError` must be a function\"\n );\n assert(\n !config.isFileUpload || typeof config.isFileUpload === \"function\",\n \"Invalid config value: `isFileUpload` should be a function\"\n );\n this.endpoint = config.endpoint;\n this.fetch = config.fetch || fetch.bind(null);\n this.fetchOptions = config.fetchOptions;\n this.FormData = config.FormData !== void 0 ? config.FormData : typeof FormData !== \"undefined\" ? FormData : void 0;\n this.formatQuery = config.formatQuery;\n this.onError = config.onError;\n this.isFileUpload = config.isFileUpload || isFileUpload;\n }\n createRequestBody(query, variables) {\n const { clone, files } = (0, import_extractFiles.default)(\n { query, variables },\n \"\",\n this.isFileUpload\n );\n const operationJSON = JSON.stringify(clone);\n if (files.size === 0) {\n return operationJSON;\n }\n assert(\n this.FormData !== void 0,\n \"FormData must be polyfilled or passed in new AwesomeGraphQLClient({ FormData })\"\n );\n const form = new this.FormData();\n form.append(\"operations\", operationJSON);\n const map = {};\n let i = 0;\n for (const paths of files.values()) {\n map[++i] = paths;\n }\n form.append(\"map\", JSON.stringify(map));\n i = 0;\n for (const file of files.keys()) {\n form.append(`${++i}`, file);\n }\n return form;\n }\n /**\n * Sets a new GraphQL endpoint\n *\n * @param endpoint new overrides for endpoint\n */\n setEndpoint(endpoint) {\n assert(endpoint !== void 0, \"endpoint is required\");\n this.endpoint = endpoint;\n }\n /**\n * Returns current GraphQL endpoint\n */\n getEndpoint() {\n return this.endpoint;\n }\n /**\n * Sets new overrides for fetch options\n *\n * @param fetchOptions new overrides for fetch options\n */\n setFetchOptions(fetchOptions) {\n this.fetchOptions = fetchOptions;\n }\n /**\n * Returns current overrides for fetch options\n */\n getFetchOptions() {\n return this.fetchOptions;\n }\n /**\n * Sends GraphQL Request and returns object with 'ok: true', 'data' and 'response' fields\n * or with 'ok: false' and 'error' fields.\n * Notice: this function never throws\n *\n * @example\n * const result = await requestSafe(...)\n * if (!result.ok) {\n * throw result.error\n * }\n * console.log(result.data)\n *\n * @param query query\n * @param variables variables\n * @param fetchOptions overrides for fetch options\n */\n async requestSafe(query, variables, fetchOptions) {\n let partialData = void 0;\n try {\n const queryAsString = this.formatQuery ? this.formatQuery(query) : query;\n assert(\n typeof queryAsString === \"string\",\n `Query should be a string, not ${typeof queryAsString}. Otherwise provide formatQuery option`\n );\n const options = {\n method: \"POST\",\n ...this.fetchOptions,\n ...fetchOptions,\n headers: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ...normalizeHeaders(this.fetchOptions?.headers),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ...normalizeHeaders(fetchOptions?.headers)\n }\n };\n let response;\n if (options.method?.toUpperCase() === \"GET\") {\n const url = formatGetRequestUrl({\n endpoint: this.endpoint,\n query: queryAsString,\n variables\n });\n response = await this.fetch(url, options);\n } else {\n const body = this.createRequestBody(queryAsString, variables);\n response = await this.fetch(this.endpoint, {\n ...options,\n body,\n headers: typeof body === \"string\" ? { ...options.headers, \"Content-Type\": \"application/json\" } : options.headers\n });\n }\n if (!response.ok) {\n if (isResponseJSON(response)) {\n const { data, errors } = await response.json();\n if (errors?.[0] !== void 0) {\n partialData = data;\n throw new GraphQLRequestError({\n query: queryAsString,\n variables,\n response,\n message: errors[0].message,\n extensions: errors[0].extensions,\n fieldErrors: errors\n });\n }\n }\n throw new GraphQLRequestError({\n query: queryAsString,\n variables,\n response,\n message: `Http Status ${response.status}`\n });\n }\n const result = await response.json();\n if (result.errors?.[0] !== void 0) {\n partialData = result.data;\n throw new GraphQLRequestError({\n query: queryAsString,\n variables,\n response,\n message: result.errors[0].message,\n extensions: result.errors[0].extensions,\n fieldErrors: result.errors\n });\n }\n return { ok: true, data: result.data, response };\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n if (this.onError) {\n try {\n this.onError(error);\n } catch {\n return { ok: false, error, partialData };\n }\n }\n return { ok: false, error, partialData };\n }\n }\n /**\n * Makes GraphQL request and returns data or throws an error\n *\n * @example\n * const data = await request(...)\n *\n * @param query query\n * @param variables variables\n * @param fetchOptions overrides for fetch options\n */\n async request(query, variables, fetchOptions) {\n const result = await this.requestSafe(\n query,\n variables,\n fetchOptions\n );\n if (!result.ok) {\n throw result.error;\n }\n return result.data;\n }\n};\n\n// src/util/gql.ts\nvar gql = (strings, ...values) => {\n let result = \"\";\n for (const [index, string] of strings.entries()) {\n result += `${string}${index in values ? values[index] : \"\"}`;\n }\n return result.trim();\n};\nexport {\n AwesomeGraphQLClient,\n GraphQLRequestError,\n gql,\n isFileUpload\n};\n","import { AwesomeGraphQLClient } from 'awesome-graphql-client';\n\nexport { gql } from 'awesome-graphql-client';\n\n// TODO: move to @tf/api package?\nexport class GraphQLClient {\n\tprivate static instance: AwesomeGraphQLClient | null = null;\n\n\tprivate constructor() {}\n\n\tstatic init(url: string, customFetch: typeof window.fetch) {\n\t\tthis.instance = new AwesomeGraphQLClient({ endpoint: url, fetch: customFetch });\n\t}\n\n\t// TODO: error handling\n\tstatic getInstance() {\n\t\tif (this.instance === null) {\n\t\t\tthrow new Error('GraphQL client is not initialized');\n\t\t}\n\n\t\treturn this.instance;\n\t}\n}\n","import { useMemo, useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\n\nimport type { BackendTypes } from '@tf/api';\nimport { createModal, Select, useModalControl } from '@tf/ui';\nimport { type SubmitHandler, T } from '@tf/utils';\n\nimport { useCreateAccountMutation } from '@/core/api/account';\nimport { useProcessingScripts } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport { AppFormBuilder, ModalFooter } from '@/components/shared';\n\ninterface Props {\n\tonSuccess: (res: { connectedEntityId: BackendTypes.GraphId }) => void;\n\tonError: (error: Error) => void;\n}\n\nexport const AddAccountModal = createModal(({ onSuccess, onError }: Props) => {\n\tconst { onClose } = useModalControl();\n\n\tconst defs = useSelector(() => appStore.defs.get());\n\n\tconst accountKinds = (defs.options['AccountKind'] || []).sort((a, b) =>\n\t\ta.value.localeCompare(b.value)\n\t);\n\tconst [selectedAccountKind, setSelectedAccountKind] = useState(\n\t\taccountKinds[0]?.value ?? null\n\t);\n\n\tconst selfSegments = useMemo(() => {\n\t\tif (!selectedAccountKind) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Applicant connection always exist and have exactly one entity kind that can be connected with this connection\n\t\tconst applicantEntityKind = defs.entities[selectedAccountKind].possibleConnections.find(\n\t\t\t(c) => c.kind === 'APPLICANT'\n\t\t)?.fromEntities[0]?.kind;\n\t\tT.assertNotNullish(\n\t\t\tapplicantEntityKind,\n\t\t\t`applicant entity not found for account ${selectedAccountKind}`\n\t\t);\n\n\t\treturn {\n\t\t\taccount: defs.selfSegments[selectedAccountKind],\n\t\t\tentity: defs.selfSegments[applicantEntityKind],\n\t\t};\n\t}, [defs.entities, defs.selfSegments, selectedAccountKind]);\n\n\tconst scripts = useProcessingScripts(selfSegments?.entity ? [selfSegments.entity] : []);\n\n\tconst createAccountMutation = useCreateAccountMutation();\n\tconst submitHandler: SubmitHandler = async ({ values }) => {\n\t\tif (!selectedAccountKind || !selfSegments?.entity) {\n\t\t\tonError(new Error('No account kind selected'));\n\t\t\treturn;\n\t\t}\n\n\t\tcreateAccountMutation.mutate(\n\t\t\t{\n\t\t\t\taccountKind: selectedAccountKind,\n\t\t\t\tentitySelfSegmentKind: selfSegments.entity,\n\t\t\t\tentitySelfSegmentData: values[selfSegments.entity],\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess,\n\t\t\t\tonError,\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t{selfSegments?.entity && (\n\t\t\t\t (\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);\n});\n","import React from 'react';\n\nimport * as Sentry from '@sentry/react';\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Button, Icon, TFNotifier, useDisclosure } from '@tf/ui';\n\nimport { AddAccountModal } from './AddAccountModal';\n\nexport const AddAccountButton: React.FC = () => {\n\tconst addAccountModal = useDisclosure();\n\n\tconst navigate = useNavigate();\n\tconst onSuccess = ({ connectedEntityId }: { connectedEntityId: BackendTypes.GraphId }) => {\n\t\tTFNotifier.success('Account created');\n\t\tnavigate(`/accounts/${connectedEntityId}`);\n\t};\n\n\tconst onError = (err: Error) => {\n\t\tconst message = \"Couldn't create account\";\n\t\tSentry.captureException(new Error(message, { cause: err }));\n\t\tTFNotifier.error(message);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n","import { useMutation, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\nimport { rawRevision } from '@tf/utils';\n\nimport { getSelfSegment } from '@/core/utils';\n\nconst useNewConnectionSuccessHandler = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn async () => {\n\t\tawait queryClient.invalidateQueries({ queryKey: ['accounts'] });\n\t};\n};\n\ninterface ConnectNewEntityMutationParams {\n\tparentEntityId: BackendTypes.GraphId;\n\tconnectionKind: BackendTypes.EntityConnectionKind;\n\tentityKind: BackendTypes.EntityKind;\n\tselfSegmentData: Record;\n}\n\nexport const useConnectNewEntityMutation = () => {\n\tconst onSuccess = useNewConnectionSuccessHandler();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tparentEntityId,\n\t\t\tconnectionKind,\n\t\t\tentityKind,\n\t\t\tselfSegmentData,\n\t\t}: ConnectNewEntityMutationParams) => {\n\t\t\tconst response = await BackendClient.getInstance().entityConnectNew(\n\t\t\t\tparentEntityId,\n\t\t\t\tconnectionKind,\n\t\t\t\tentityKind,\n\t\t\t\t{\n\t\t\t\t\tlistEntitySegments: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trevision: rawRevision,\n\t\t\t\t\t\t\tsegmentIdentity: {\n\t\t\t\t\t\t\t\tsegmentKind: getSelfSegment(entityKind),\n\t\t\t\t\t\t\t\tgraphId: -2,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsegment: selfSegmentData,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tlistConnectionSegments: [],\n\t\t\t\t}\n\t\t\t);\n\n\t\t\treturn (await response.json()) as BackendTypes.EntityConnectNewData;\n\t\t},\n\t\tonSuccess,\n\t});\n};\n\ninterface ConnectExistingEntityMutationParams {\n\tparentEntityId: BackendTypes.GraphId;\n\tconnectionKind: BackendTypes.EntityConnectionKind;\n\tentityId: BackendTypes.GraphId;\n}\n\nexport const useConnectExistingEntityMutation = () => {\n\tconst onSuccess = useNewConnectionSuccessHandler();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tparentEntityId,\n\t\t\tconnectionKind,\n\t\t\tentityId,\n\t\t}: ConnectExistingEntityMutationParams) => {\n\t\t\tconst response = await BackendClient.getInstance().entityConnectExisting(\n\t\t\t\tparentEntityId,\n\t\t\t\tconnectionKind,\n\t\t\t\tentityId,\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn (await response.json()) as BackendTypes.EntityConnectExistingData;\n\t\t},\n\t\tonSuccess,\n\t});\n};\n\ninterface DisconnectEntityMutationParams {\n\tparentEntityId: BackendTypes.GraphId;\n\tconnectionKind: BackendTypes.EntityConnectionKind;\n\tentityId: BackendTypes.GraphId;\n}\n\nexport const useDisconnectEntityMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({ parentEntityId, connectionKind, entityId }: DisconnectEntityMutationParams) => {\n\t\t\tconst response = await BackendClient.getInstance().entityDisconnectEntity(\n\t\t\t\tparentEntityId,\n\t\t\t\tconnectionKind,\n\t\t\t\tentityId\n\t\t\t);\n\n\t\t\treturn (await response.json()) as BackendTypes.EntityDisconnectEntityData;\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: ['accounts'] });\n\t\t},\n\t});\n};\n","import { queryOptions, useQuery } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\n\nimport { getMonitoringAssociationsQuery } from '@/core/queries';\n\nexport const entityLookupQueryOptions = (entityKinds: BackendTypes.EntityKind[], query: string) => {\n\treturn queryOptions({\n\t\tqueryKey: ['entityLookup', entityKinds, query],\n\t\tqueryFn: async () => {\n\t\t\tif (query.length === 0) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst result = await BackendClient.getInstance().entityLookup({ query: query }, { entityKinds });\n\n\t\t\treturn (await result.json()) as BackendTypes.EntityLookupData;\n\t\t},\n\t});\n};\n\nexport const useEntityLookupQuery = (entityKinds: BackendTypes.EntityKind[], query: string) => {\n\treturn useQuery(entityLookupQueryOptions(entityKinds, query));\n};\n\nconst entitiesQueryOptions = (params: BackendTypes.EntitiesParams) => {\n\treturn {\n\t\tqueryKey: ['entities', params],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst res = await BackendClient.getInstance().entities(params);\n\t\t\treturn res.json();\n\t\t},\n\t};\n};\n\nexport const useEntities = (params: BackendTypes.EntitiesParams) => {\n\treturn useQuery(entitiesQueryOptions(params));\n};\n\nconst entityQueryOptions = (entityId: number) => {\n\treturn {\n\t\tqueryKey: ['entity', entityId],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst res = await BackendClient.getInstance().entityGet(entityId);\n\t\t\treturn res.json();\n\t\t},\n\t};\n};\n\nexport const useEntity = (entityId: number) => {\n\treturn useQuery(entityQueryOptions(entityId));\n};\n\nconst entityAssociationsQueryOptions = (params: BackendTypes.EntityAssociationsGetParams) => {\n\treturn {\n\t\tqueryKey: ['entityAssociations', params],\n\t\tqueryFn: () => getMonitoringAssociationsQuery(params),\n\t};\n};\n\nexport const useEntityAssociations = (params: BackendTypes.EntityAssociationsGetParams) => {\n\treturn useQuery(entityAssociationsQueryOptions(params));\n};\n","import { useNavigate } from 'react-router-dom';\n\nimport { S } from '@tf/utils';\n\nimport { useSelectedAccount } from '@/core/hooks';\n\nexport const useNavigateToEntity = () => {\n\tconst navigate = useNavigate();\n\tconst account = useSelectedAccount();\n\n\tconst getEntityPath = (\n\t\tconnectionGraphId: number,\n\t\tconnectionKind: string,\n\t\tentityGraphNodeId: number\n\t) => {\n\t\tconst mainEntityId = account.reviews.find((r) => r.connectionKind === 'APPLICANT')?.graphNodeId;\n\n\t\tconst basePath = `/accounts/${account.meta.graphNodeId}/${S.slugify(connectionKind)}`;\n\n\t\treturn entityGraphNodeId === mainEntityId\n\t\t\t? basePath\n\t\t\t: `${basePath}/${connectionGraphId}/entity/${entityGraphNodeId}`;\n\t};\n\n\tconst navigateToEntity = (\n\t\tconnectionGraphId: number,\n\t\tconnectionKind: string,\n\t\tentityGraphNodeId: number\n\t) => {\n\t\twindow.scrollTo(0, 0);\n\t\treturn navigate(getEntityPath(connectionGraphId, connectionKind, entityGraphNodeId));\n\t};\n\n\treturn { getEntityPath, navigateToEntity };\n};\n","import React, { useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\n\nimport { type BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tButton,\n\tcreateStyles,\n\tEntityBadge,\n\tFlex,\n\tIcon,\n\tLoader,\n\tScrollArea,\n\tSelect,\n\tStack,\n\tTextInput,\n\tTFListCard,\n\tTFNotifier,\n\tTFText,\n\tUnstyledButton,\n\tuseDebounce,\n} from '@tf/ui';\nimport type { ConnectionErrorResponse, SubmitHandler } from '@tf/utils';\nimport { connectionErrorsMap, S } from '@tf/utils';\n\nimport { useConnectExistingEntityMutation, useConnectNewEntityMutation } from '@/core/api/connections';\nimport { useEntityLookupQuery } from '@/core/api/entities';\nimport { useGetEntityLabel, useProcessingScripts } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport { getSelfSegment } from '@/core/utils';\nimport { useNavigateToEntity } from '@/core/utils/routes';\nimport { AppFormBuilder, ModalFooter } from '@/components/shared';\n\nconst useStyles = createStyles(({ colors }) => ({\n\ttitle: {\n\t\tcolor: colors.gray[9],\n\t\tfontWeight: 500,\n\t\tfontSize: 14,\n\t\tlineHeight: 'normal',\n\t},\n\tsubtitle: {\n\t\tmarginTop: '4px',\n\t\tcolor: colors.gray[4],\n\t\tfontWeight: 500,\n\t\tfontSize: 13,\n\t\tlineHeight: 'normal',\n\t\twhiteSpace: 'nowrap',\n\t\toverflow: 'hidden',\n\t\ttextOverflow: 'ellipsis',\n\t},\n}));\n\nexport interface ConnectionFormProps {\n\tparentEntity: {\n\t\tkind: BackendTypes.EntityKind;\n\t\tgraphId: BackendTypes.GraphId;\n\t};\n\tconnectionKind: BackendTypes.EntityConnectionKind;\n\treview?: {\n\t\tgraphLinkId: BackendTypes.GraphId;\n\t\tconnectionKind: BackendTypes.EntityConnectionKind;\n\t};\n\tskipRedirect?: boolean;\n}\n\ninterface Props extends ConnectionFormProps {\n\tonSuccess: () => void;\n}\n\ntype ConnectionType = 'new' | 'existing';\nexport const ConnectionForm: React.FC = ({\n\tparentEntity,\n\tconnectionKind,\n\treview,\n\tskipRedirect,\n\tonSuccess,\n}) => {\n\tconst { navigateToEntity } = useNavigateToEntity();\n\tconst { classes } = useStyles();\n\n\t// TODO: This is a temporary solution. We need to find a way to get the list of available entities\n\tconst defs = useSelector(() => appStore.defs.get());\n\tconst entityDef = defs.entities[parentEntity.kind];\n\tconst connectionDef = entityDef.possibleConnections.find((c) => c.kind === connectionKind);\n\tconst availableEntities = connectionDef?.fromEntities.map((e) => e.kind) || [];\n\n\tconst [selectedKind, setSelectedKind] = useState(availableEntities[0]);\n\tconst [connectionType, setConnectionType] = useState('existing');\n\tconst [searchValue, setSearchValue] = useState('');\n\tconst [selectedEntityId, setSelectedEntityId] = useState(null);\n\n\tconst query = useDebounce(searchValue, 250);\n\tconst entityLookupQuery = useEntityLookupQuery(availableEntities, query);\n\tconst suggestedEntities = entityLookupQuery.data?.slice(0, 10) ?? [];\n\tconst getEntityLabel = useGetEntityLabel();\n\n\tconst connectExistingEntityMutation = useConnectExistingEntityMutation();\n\tconst connectExistingEntity = async () => {\n\t\ttry {\n\t\t\tif (!selectedEntityId) {\n\t\t\t\tthrow new Error('Entity not selected');\n\t\t\t}\n\n\t\t\tconst result = await connectExistingEntityMutation.mutateAsync({\n\t\t\t\tparentEntityId: parentEntity.graphId,\n\t\t\t\tconnectionKind,\n\t\t\t\tentityId: selectedEntityId,\n\t\t\t});\n\n\t\t\tonConnectionSuccess(result.connectedLinkId, selectedEntityId);\n\t\t} catch (err) {\n\t\t\tif (err instanceof Response) {\n\t\t\t\ttry {\n\t\t\t\t\tconst errorResponse: ConnectionErrorResponse = await err.json();\n\t\t\t\t\tif (errorResponse.message === 'failed on db rules check') {\n\t\t\t\t\t\tTFNotifier.error('Failed to add connection');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tfor (const [key, value] of Object.entries(errorResponse)) {\n\t\t\t\t\t\tif (value.length) {\n\t\t\t\t\t\t\tTFNotifier.error(connectionErrorsMap[key]);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.log('Failed to parse error', e);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst message = err instanceof Error ? err.message : 'Unknown error';\n\t\t\t\tTFNotifier.error(message);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onConnectionSuccess = (\n\t\tconnectedLinkId: BackendTypes.GraphId,\n\t\tconnectedEntityId: BackendTypes.GraphId\n\t) => {\n\t\tonSuccess();\n\t\tTFNotifier.success('Connection created successfully');\n\n\t\tif (skipRedirect) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!review || review.connectionKind === connectionKind) {\n\t\t\t// New review created, so use its id in link\n\t\t\tnavigateToEntity(connectedLinkId, connectionKind, connectedEntityId);\n\t\t} else {\n\t\t\tnavigateToEntity(review.graphLinkId, review.connectionKind, connectedEntityId);\n\t\t}\n\t};\n\n\tconst scripts = useProcessingScripts(availableEntities.map((item) => getSelfSegment(item)));\n\tconst connectNewEntityMutation = useConnectNewEntityMutation();\n\tconst connectNewEntity: SubmitHandler = async ({ values }) => {\n\t\ttry {\n\t\t\tconst selfSegment = getSelfSegment(selectedKind);\n\t\t\tconst selfSegmentData = values[selfSegment];\n\n\t\t\tconst result = await connectNewEntityMutation.mutateAsync({\n\t\t\t\tparentEntityId: parentEntity.graphId,\n\t\t\t\tconnectionKind,\n\t\t\t\tentityKind: selectedKind,\n\t\t\t\tselfSegmentData,\n\t\t\t});\n\n\t\t\tonConnectionSuccess(result.connectedLinkId, result.connectedEntityId);\n\t\t} catch (err) {\n\t\t\tconst message = err instanceof Error ? err.message : 'Unknown error';\n\t\t\tTFNotifier.error(message);\n\t\t}\n\t};\n\n\tif (connectionType === 'existing' && connectionKind !== 'NOMINATED_ACCOUNT') {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetSearchValue(e.target.value);\n\t\t\t\t\t\t\tsetSelectedEntityId(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trightSection={entityLookupQuery.isFetching && }\n\t\t\t\t\t/>\n\t\t\t\t\t{!suggestedEntities.length && query.length > 1 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNo results found. Check the spelling or create new\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{Boolean(suggestedEntities.length) && (\n\t\t\t\t\t\t 10 ? '500px' : 'auto'}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{suggestedEntities.map(({ graphNodeId, name, entityKind }) => {\n\t\t\t\t\t\t\t\t\tconst isSelected = graphNodeId === selectedEntityId;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (isSelected) setSelectedEntityId(null);\n\t\t\t\t\t\t\t\t\t\t\t\telse setSelectedEntityId(graphNodeId);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tisActive={selectedEntityId === graphNodeId}\n\t\t\t\t\t\t\t\t\t\t\tkey={name}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\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\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{name}\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\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);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{Boolean(query) && query.length > 1 && (\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvariant=\"default\"\n\t\t\t\t\t\t\tonClick={() => setConnectionType('new')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCreate new\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{Boolean(suggestedEntities.length) && selectedEntityId && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{connectionKind !== 'NOMINATED_ACCOUNT' && (\n\t\t\t\t ({\n\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\tfill: colors.brand[6],\n\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\tcolor: colors.brand[8],\n\t\t\t\t\t\t\tfill: colors.brand[8],\n\t\t\t\t\t\t},\n\t\t\t\t\t})}\n\t\t\t\t\tm=\"16px 0 12px 8px\"\n\t\t\t\t\tonClick={() => setConnectionType('existing')}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tBack to search results\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{availableEntities.length > 1 && (\n\t\t\t\t {\n\t\t\t\t\t\tif (value) setSelectedKind(value);\n\t\t\t\t\t}}\n\t\t\t\t\tplaceholder=\"Select a kind of entity\"\n\t\t\t\t\tdata={availableEntities.map((kind) => ({ value: kind, label: S.prettify(kind) }))}\n\t\t\t\t\tm=\".25rem .75rem 0\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\tonSubmit={connectNewEntity}\n\t\t\t/>\n\t\t\n\t);\n};\n\nconst getPrefilledValues = (value: string, entityKind: string) => {\n\tif (entityKind === 'INDIVIDUAL_ENTITY') {\n\t\treturn { INDIVIDUAL_ENTITY__SELF: { last_name: value } };\n\t}\n\treturn { [`${entityKind}__SELF`]: { name: value } };\n};\n","import React from 'react';\n\nimport {\n\tButton,\n\ttype ButtonProps,\n\tcreateStyles,\n\tIcon,\n\tModal,\n\tTooltip,\n\tUnstyledButton,\n\tuseDisclosure,\n} from '@tf/ui';\n\nimport { useEntityConnectionLabels } from '@/core/hooks';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { ConnectionForm, type ConnectionFormProps } from '@/components/shared/ConnectionForm';\n\nconst useStyles = createStyles(({ colors }) => ({\n\ticonButton: {\n\t\tcolor: colors.gray[4],\n\t\tfontWeight: 600,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tfontSize: '.7rem',\n\t\tpadding: '.25rem',\n\t\tborderRadius: '50%',\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[5],\n\t\t\tbackgroundColor: colors.brand[0],\n\t\t},\n\t},\n}));\n\ninterface Props extends ConnectionFormProps {\n\tlabel?: string;\n\tbuttonKind?: 'default' | 'icon';\n\tbuttonProps?: ButtonProps;\n}\n\nexport const AddConnectionButton: React.FC = (props) => {\n\tconst { classes } = useStyles();\n\tconst connectionModal = useDisclosure();\n\tconst connectionLabels = useEntityConnectionLabels(props.parentEntity.kind);\n\tconst label = props.label || connectionLabels[props.connectionKind].singular;\n\n\tif (!useCurrentUserCapabilityCheck(UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{props.buttonKind === 'icon' ? (\n\t\t\t\t\n\t\t\t\t\t\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\t\t}\n\t\t\t\t\tonClick={connectionModal.open}\n\t\t\t\t\t{...props.buttonProps}\n\t\t\t\t>\n\t\t\t\t\tAdd {label}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{connectionModal.isOpen && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import { useMutation } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\nimport type { FileDownloadFn, FileUploadFn } from '@tf/form-builder';\n\nexport const fileUpload: FileUploadFn = async (input) => {\n\tconst res = await BackendClient.getInstance().upload({\n\t\tSegmentIdentity: input.identity,\n\t\tfilename: input.file,\n\t});\n\n\treturn res.json();\n};\n\nexport const fileDownload: FileDownloadFn = async (input) => {\n\tconst res = await BackendClient.getInstance().download(input.storageKey);\n\n\treturn res.arrayBuffer();\n};\n\nexport const useDownloadFileMutation = () => {\n\treturn useMutation({\n\t\tmutationFn: async ({ file }: { file: BackendTypes.FieldFile }) => {\n\t\t\tconst res = await BackendClient.getInstance().download(file.storageKey);\n\t\t\tconst blob = await res.arrayBuffer();\n\n\t\t\tconst url = URL.createObjectURL(new Blob([blob]));\n\t\t\tconst a = document.createElement('a');\n\t\t\ta.href = url;\n\t\t\ta.download = file.filename;\n\t\t\ta.click();\n\t\t\twindow.URL.revokeObjectURL(url);\n\t\t},\n\t});\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\n\nimport { FormBuilder, type FormBuilderProps } from '@tf/form-builder';\n\nimport { fileDownload, fileUpload } from '@/core/api/files';\nimport { useCurrentUser } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\n\nexport const AppFormBuilder: React.FC<\n\tOmit & { fieldFilters?: string[] }\n> = (props) => {\n\tconst defs = useSelector(() => appStore.defs.peek());\n\tconst { username } = useCurrentUser();\n\n\tif (Object.keys(defs.structs).length === 0) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport { useUser } from '@clerk/clerk-react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\nimport { Box, Button, createModal, Select, Textarea, TFNotifier, useModalControl } from '@tf/ui';\n\nexport const HaveIssuesModal = createModal(() => {\n\tconst [isSubmitting, setIsSubmitting] = useState(false);\n\tconst [category, setCategory] = useState('GENERAL');\n\tconst [description, setDescription] = useState('');\n\tconst { onClose } = useModalControl();\n\tconst { user, isSignedIn } = useUser();\n\n\tconst sendFeedback = async (): Promise => {\n\t\tif (!isSignedIn) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tsetIsSubmitting(true);\n\t\t\tawait BackendClient.getInstance().feedbackIssue({\n\t\t\t\tcategory,\n\t\t\t\t// Replace special characters as their presence break request to Linear\n\t\t\t\tdescription: `${description} Sent from: ${window.location.href}, User agent: ${\n\t\t\t\t\twindow.navigator.userAgent\n\t\t\t\t}, User id: ${user.id}, User email: ${\n\t\t\t\t\tuser.emailAddresses[0]\n\t\t\t\t}, Time: ${new Date().toUTCString()}, App version: ${\n\t\t\t\t\timport.meta.env.VITE_APP_VERSION\n\t\t\t\t}`.replaceAll(/[\\n\\r\\t]/g, ' '),\n\t\t\t});\n\t\t\tTFNotifier.info('Thank you for your feedback! We will get back to you soon.');\n\n\t\t\tsetCategory('GENERAL');\n\t\t\tsetDescription('');\n\t\t} catch (e) {\n\t\t\tTFNotifier.error('Something went wrong. Please try again later.');\n\t\t} finally {\n\t\t\tsetIsSubmitting(false);\n\t\t\tonClose();\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t setCategory((value as BackendTypes.FeedbackIssueCategory) || 'GENERAL')}\n\t\t\t\tdata={[\n\t\t\t\t\t{ value: 'GENERAL', label: 'General issues' },\n\t\t\t\t\t{ value: 'MIGRATION', label: 'Migration issues' },\n\t\t\t\t\t{ value: 'OTHER', label: 'Other issues' },\n\t\t\t\t]}\n\t\t\t\tdata-autofocus\n\t\t\t/>\n\t\t\t setDescription(e.currentTarget.value)}\n\t\t\t\tdisabled={isSubmitting}\n\t\t\t\tautosize\n\t\t\t\tplaceholder=\"Please describe your issue\"\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tSubmit\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n});\n","import {\n\tActionIcon,\n\tAffix as UIAffix,\n\tcreateStyles,\n\tIcon,\n\tMenu,\n\tStack,\n\tTooltip,\n\tTransition,\n\tuseDisclosure,\n\tuseHotkeys,\n\tuseMantineTheme,\n\tuseWindowScroll,\n} from '@tf/ui';\n\nimport { HaveIssuesModal } from './HaveIssuesModal';\n\nconst useStyles = createStyles(({ radius, colors, shadows, spacing }) => ({\n\televation: {\n\t\tboxShadow: shadows.md,\n\t},\n\tmenuDropdown: {\n\t\tbackgroundColor: colors.gray[9],\n\t\tpadding: '0.5rem',\n\t\tborderColor: 'unset',\n\t},\n\tmenuItem: {\n\t\tfontWeight: 500,\n\t\tfontSize: '0.875rem',\n\t\tlineHeight: '1.3',\n\t\tcolor: colors.slate[1],\n\t\tborderRadius: radius.round_8,\n\t\tpadding: '0.5rem 0.75rem',\n\t\ttransition: 'background-color .3s ease-out',\n\t\t'&:hover': {\n\t\t\tbackgroundColor: colors.slate[8],\n\t\t},\n\t\t'&[data-hovered]': {\n\t\t\tbackgroundColor: colors.slate[8],\n\t\t\toutlineWidth: '1px',\n\t\t},\n\t},\n\tmenuItemSection: {\n\t\tmarginInlineEnd: spacing.space_8,\n\t},\n\tmenuItemCaption: {\n\t\tfontSize: '0.75rem',\n\t\tcolor: colors.gray[4],\n\t},\n}));\n\nexport const Affix = () => {\n\tconst { classes } = useStyles();\n\tconst { colors, radius, spacing } = useMantineTheme();\n\n\tconst supportMenu = useDisclosure();\n\tconst issuesModal = useDisclosure();\n\tconst [scroll, scrollTo] = useWindowScroll();\n\n\tuseHotkeys([['Ctrl+ArrowUp', () => scrollTo({ y: 0 })]]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t 400}>\n\t\t\t\t\t\t{(transitionStyles) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t scrollTo({ y: 0 })}\n\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\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\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{supportMenu.isOpen ? (\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\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\n\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\tcomponent=\"a\"\n\t\t\t\t\t\t\t\t\thref=\"https://docs.trustform.io/guide\"\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tUser guide\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\tonClick={issuesModal.open}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tReport an issue\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\tcomponent=\"a\"\n\t\t\t\t\t\t\t\t\thref=\"mailto:support@trustform.io\"\n\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\tContact support\n\t\t\t\t\t\t\t\t\t\tsupport@trustform.io\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\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\t\n\t\t\n\t);\n};\n","import { useSelector } from '@datagrid/state';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport { Box, Button, Center, createStyles, lighten, TFLogo } from '@tf/ui';\n\nimport { configStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\n\nconst useStyles = createStyles(({ colors }) => ({\n\tmenu: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tlogo: {\n\t\tbackgroundColor: '#fff',\n\t\tdisplay: 'inline-flex',\n\t\tmarginRight: '1rem',\n\t\theight: 22,\n\t\twidth: 22,\n\t\t'&:hover': {\n\t\t\tbackgroundColor: colors.bra,\n\t\t},\n\t},\n\tmenuButton: {\n\t\theight: 44,\n\t\tborderRadius: 0,\n\t\tborderBottomStyle: 'solid',\n\t\tborderBottomWidth: 1.5,\n\t\tborderBottomColor: 'transparent',\n\t\t'&[data-active=\"true\"]': {\n\t\t\tbackgroundColor: lighten(colors.brand[0], 0.5),\n\t\t\tborderBottomColor: colors.brand[6],\n\t\t},\n\t},\n}));\n\nconst menuItems = [\n\t{\n\t\tlabel: 'Accounts',\n\t\tpath: '/',\n\t},\n\n\t{\n\t\tlabel: 'Instant check',\n\t\tpath: '/instant-check',\n\t},\n];\n\nexport const AppMenu = () => {\n\tconst { classes } = useStyles();\n\tconst config = useSelector(() => configStore.get());\n\tconst { pathname } = useLocation();\n\n\tconst withObserver = Boolean(Number(config.feature_flags?.['entity_observer']));\n\n\tconst isMonitoringRules = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_MONITORING);\n\n\tif (isMonitoringRules && !menuItems.find((item) => item.path === '/monitoring')) {\n\t\tmenuItems.push({\n\t\t\tlabel: 'Monitoring',\n\t\t\tpath: '/monitoring',\n\t\t});\n\t}\n\n\tif (withObserver) {\n\t\tmenuItems.push({\n\t\t\tlabel: 'Entities',\n\t\t\tpath: '/entities',\n\t\t});\n\t}\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t{menuItems.map((item) => {\n\t\t\t\tlet isActive: boolean;\n\t\t\t\tif (item.path === '/') {\n\t\t\t\t\tisActive = pathname.startsWith('/accounts') || pathname === '/';\n\t\t\t\t} else {\n\t\t\t\t\tisActive = pathname.startsWith(item.path);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\t\t
\n\t);\n};\n","import { forwardRef } from 'react';\n\nimport { Avatar } from '@tf/ui';\nimport { S } from '@tf/utils';\n\ninterface UserAvatarProps {\n\tuserInfo: {\n\t\tusername: string;\n\t\tfirstName: string;\n\t\tlastName: string;\n\t\timageUrl: string;\n\t\thasImage: boolean;\n\t};\n\tsize?: number;\n\tclassName?: string;\n}\n\nexport const UserAvatar = forwardRef(({ userInfo, size = 32 }, ref) => {\n\tconst fullName = `${userInfo.firstName} ${userInfo.lastName}`.trim();\n\tconst initials = S.abbreviate(fullName);\n\tconst hasInitials = initials.length > 0;\n\n\tconst alt = fullName.replaceAll(' ', '') ? fullName : userInfo.username || '';\n\tconst imgSrc = userInfo.hasImage || !hasInitials ? userInfo.imageUrl : undefined;\n\n\treturn (\n\t\t\n\t\t\t{hasInitials ? initials : ''}\n\t\t\n\t);\n});\n","export var AuthProviderEnum;\n(function (AuthProviderEnum) {\n AuthProviderEnum[\"GOOGLE\"] = \"google\";\n AuthProviderEnum[\"GITHUB\"] = \"github\";\n})(AuthProviderEnum || (AuthProviderEnum = {}));\nexport var UserRoleEnum;\n(function (UserRoleEnum) {\n UserRoleEnum[\"USER\"] = \"user\";\n})(UserRoleEnum || (UserRoleEnum = {}));\n","export var MemberRoleEnum;\n(function (MemberRoleEnum) {\n MemberRoleEnum[\"ADMIN\"] = \"admin\";\n MemberRoleEnum[\"MEMBER\"] = \"member\";\n})(MemberRoleEnum || (MemberRoleEnum = {}));\n","export var MemberStatusEnum;\n(function (MemberStatusEnum) {\n MemberStatusEnum[\"NEW\"] = \"new\";\n MemberStatusEnum[\"ACTIVE\"] = \"active\";\n MemberStatusEnum[\"INVITED\"] = \"invited\";\n})(MemberStatusEnum || (MemberStatusEnum = {}));\n","export class IGroupedBlueprint {\n}\nexport var TriggerTypeEnum;\n(function (TriggerTypeEnum) {\n TriggerTypeEnum[\"EVENT\"] = \"event\";\n})(TriggerTypeEnum || (TriggerTypeEnum = {}));\nexport var TriggerContextTypeEnum;\n(function (TriggerContextTypeEnum) {\n TriggerContextTypeEnum[\"TENANT\"] = \"tenant\";\n})(TriggerContextTypeEnum || (TriggerContextTypeEnum = {}));\n","export var ExecutionDetailsSourceEnum;\n(function (ExecutionDetailsSourceEnum) {\n ExecutionDetailsSourceEnum[\"CREDENTIALS\"] = \"Credentials\";\n ExecutionDetailsSourceEnum[\"INTERNAL\"] = \"Internal\";\n ExecutionDetailsSourceEnum[\"PAYLOAD\"] = \"Payload\";\n ExecutionDetailsSourceEnum[\"WEBHOOK\"] = \"Webhook\";\n})(ExecutionDetailsSourceEnum || (ExecutionDetailsSourceEnum = {}));\nexport var ExecutionDetailsStatusEnum;\n(function (ExecutionDetailsStatusEnum) {\n ExecutionDetailsStatusEnum[\"SUCCESS\"] = \"Success\";\n ExecutionDetailsStatusEnum[\"WARNING\"] = \"Warning\";\n ExecutionDetailsStatusEnum[\"FAILED\"] = \"Failed\";\n ExecutionDetailsStatusEnum[\"PENDING\"] = \"Pending\";\n ExecutionDetailsStatusEnum[\"QUEUED\"] = \"Queued\";\n ExecutionDetailsStatusEnum[\"READ_CONFIRMATION\"] = \"ReadConfirmation\";\n})(ExecutionDetailsStatusEnum || (ExecutionDetailsStatusEnum = {}));\n","export var ButtonTypeEnum;\n(function (ButtonTypeEnum) {\n ButtonTypeEnum[\"PRIMARY\"] = \"primary\";\n ButtonTypeEnum[\"SECONDARY\"] = \"secondary\";\n ButtonTypeEnum[\"CLICKED\"] = \"clicked\";\n})(ButtonTypeEnum || (ButtonTypeEnum = {}));\n","export var MessageActionStatusEnum;\n(function (MessageActionStatusEnum) {\n MessageActionStatusEnum[\"PENDING\"] = \"pending\";\n MessageActionStatusEnum[\"DONE\"] = \"done\";\n})(MessageActionStatusEnum || (MessageActionStatusEnum = {}));\n","export var TimeOperatorEnum;\n(function (TimeOperatorEnum) {\n TimeOperatorEnum[\"DAYS\"] = \"days\";\n TimeOperatorEnum[\"HOURS\"] = \"hours\";\n TimeOperatorEnum[\"MINUTES\"] = \"minutes\";\n})(TimeOperatorEnum || (TimeOperatorEnum = {}));\nexport var FilterPartTypeEnum;\n(function (FilterPartTypeEnum) {\n FilterPartTypeEnum[\"PAYLOAD\"] = \"payload\";\n FilterPartTypeEnum[\"SUBSCRIBER\"] = \"subscriber\";\n FilterPartTypeEnum[\"WEBHOOK\"] = \"webhook\";\n FilterPartTypeEnum[\"IS_ONLINE\"] = \"isOnline\";\n FilterPartTypeEnum[\"IS_ONLINE_IN_LAST\"] = \"isOnlineInLast\";\n FilterPartTypeEnum[\"PREVIOUS_STEP\"] = \"previousStep\";\n})(FilterPartTypeEnum || (FilterPartTypeEnum = {}));\nexport var PreviousStepTypeEnum;\n(function (PreviousStepTypeEnum) {\n PreviousStepTypeEnum[\"READ\"] = \"read\";\n PreviousStepTypeEnum[\"UNREAD\"] = \"unread\";\n PreviousStepTypeEnum[\"SEEN\"] = \"seen\";\n PreviousStepTypeEnum[\"UNSEEN\"] = \"unseen\";\n})(PreviousStepTypeEnum || (PreviousStepTypeEnum = {}));\n","export var ChannelTypeEnum;\n(function (ChannelTypeEnum) {\n ChannelTypeEnum[\"IN_APP\"] = \"in_app\";\n ChannelTypeEnum[\"EMAIL\"] = \"email\";\n ChannelTypeEnum[\"SMS\"] = \"sms\";\n ChannelTypeEnum[\"CHAT\"] = \"chat\";\n ChannelTypeEnum[\"PUSH\"] = \"push\";\n})(ChannelTypeEnum || (ChannelTypeEnum = {}));\nexport var StepTypeEnum;\n(function (StepTypeEnum) {\n StepTypeEnum[\"IN_APP\"] = \"in_app\";\n StepTypeEnum[\"EMAIL\"] = \"email\";\n StepTypeEnum[\"SMS\"] = \"sms\";\n StepTypeEnum[\"CHAT\"] = \"chat\";\n StepTypeEnum[\"PUSH\"] = \"push\";\n StepTypeEnum[\"DIGEST\"] = \"digest\";\n StepTypeEnum[\"TRIGGER\"] = \"trigger\";\n StepTypeEnum[\"DELAY\"] = \"delay\";\n})(StepTypeEnum || (StepTypeEnum = {}));\nexport const STEP_TYPE_TO_CHANNEL_TYPE = new Map([\n [StepTypeEnum.IN_APP, ChannelTypeEnum.IN_APP],\n [StepTypeEnum.EMAIL, ChannelTypeEnum.EMAIL],\n [StepTypeEnum.SMS, ChannelTypeEnum.SMS],\n [StepTypeEnum.CHAT, ChannelTypeEnum.CHAT],\n [StepTypeEnum.PUSH, ChannelTypeEnum.PUSH],\n]);\nexport var ChannelCTATypeEnum;\n(function (ChannelCTATypeEnum) {\n ChannelCTATypeEnum[\"REDIRECT\"] = \"redirect\";\n})(ChannelCTATypeEnum || (ChannelCTATypeEnum = {}));\nexport var TemplateVariableTypeEnum;\n(function (TemplateVariableTypeEnum) {\n TemplateVariableTypeEnum[\"STRING\"] = \"String\";\n TemplateVariableTypeEnum[\"ARRAY\"] = \"Array\";\n TemplateVariableTypeEnum[\"BOOLEAN\"] = \"Boolean\";\n})(TemplateVariableTypeEnum || (TemplateVariableTypeEnum = {}));\nexport var ActorTypeEnum;\n(function (ActorTypeEnum) {\n ActorTypeEnum[\"NONE\"] = \"none\";\n ActorTypeEnum[\"USER\"] = \"user\";\n ActorTypeEnum[\"SYSTEM_ICON\"] = \"system_icon\";\n ActorTypeEnum[\"SYSTEM_CUSTOM\"] = \"system_custom\";\n})(ActorTypeEnum || (ActorTypeEnum = {}));\nexport var SystemAvatarIconEnum;\n(function (SystemAvatarIconEnum) {\n SystemAvatarIconEnum[\"WARNING\"] = \"warning\";\n SystemAvatarIconEnum[\"INFO\"] = \"info\";\n SystemAvatarIconEnum[\"ERROR\"] = \"error\";\n SystemAvatarIconEnum[\"SUCCESS\"] = \"success\";\n SystemAvatarIconEnum[\"UP\"] = \"up\";\n SystemAvatarIconEnum[\"QUESTION\"] = \"question\";\n})(SystemAvatarIconEnum || (SystemAvatarIconEnum = {}));\nexport const CHANNELS_WITH_PRIMARY = [ChannelTypeEnum.EMAIL, ChannelTypeEnum.SMS];\n","export var TriggerRecipientsTypeEnum;\n(function (TriggerRecipientsTypeEnum) {\n TriggerRecipientsTypeEnum[\"SUBSCRIBER\"] = \"Subscriber\";\n TriggerRecipientsTypeEnum[\"TOPIC\"] = \"Topic\";\n})(TriggerRecipientsTypeEnum || (TriggerRecipientsTypeEnum = {}));\n","export var FeatureFlagsKeysEnum;\n(function (FeatureFlagsKeysEnum) {\n FeatureFlagsKeysEnum[\"IS_TEMPLATE_STORE_ENABLED\"] = \"IS_TEMPLATE_STORE_ENABLED\";\n FeatureFlagsKeysEnum[\"IS_TOPIC_NOTIFICATION_ENABLED\"] = \"IS_TOPIC_NOTIFICATION_ENABLED\";\n FeatureFlagsKeysEnum[\"IS_MULTI_PROVIDER_CONFIGURATION_ENABLED\"] = \"IS_MULTI_PROVIDER_CONFIGURATION_ENABLED\";\n FeatureFlagsKeysEnum[\"IS_MULTI_TENANCY_ENABLED\"] = \"IS_MULTI_TENANCY_ENABLED\";\n})(FeatureFlagsKeysEnum || (FeatureFlagsKeysEnum = {}));\n","export var EmailBlockTypeEnum;\n(function (EmailBlockTypeEnum) {\n EmailBlockTypeEnum[\"BUTTON\"] = \"button\";\n EmailBlockTypeEnum[\"TEXT\"] = \"text\";\n})(EmailBlockTypeEnum || (EmailBlockTypeEnum = {}));\nexport var TextAlignEnum;\n(function (TextAlignEnum) {\n TextAlignEnum[\"CENTER\"] = \"center\";\n TextAlignEnum[\"LEFT\"] = \"left\";\n TextAlignEnum[\"RIGHT\"] = \"right\";\n})(TextAlignEnum || (TextAlignEnum = {}));\n","export var OrderDirectionEnum;\n(function (OrderDirectionEnum) {\n OrderDirectionEnum[OrderDirectionEnum[\"ASC\"] = 1] = \"ASC\";\n OrderDirectionEnum[OrderDirectionEnum[\"DESC\"] = -1] = \"DESC\";\n})(OrderDirectionEnum || (OrderDirectionEnum = {}));\n","export var PreferenceOverrideSourceEnum;\n(function (PreferenceOverrideSourceEnum) {\n PreferenceOverrideSourceEnum[\"SUBSCRIBER\"] = \"subscriber\";\n PreferenceOverrideSourceEnum[\"TEMPLATE\"] = \"template\";\n})(PreferenceOverrideSourceEnum || (PreferenceOverrideSourceEnum = {}));\n","export var SignUpOriginEnum;\n(function (SignUpOriginEnum) {\n SignUpOriginEnum[\"WEB\"] = \"web\";\n SignUpOriginEnum[\"CLI\"] = \"cli\";\n SignUpOriginEnum[\"VERCEL\"] = \"vercel\";\n})(SignUpOriginEnum || (SignUpOriginEnum = {}));\n","export var MarkMessagesAsEnum;\n(function (MarkMessagesAsEnum) {\n MarkMessagesAsEnum[\"READ\"] = \"read\";\n MarkMessagesAsEnum[\"SEEN\"] = \"seen\";\n MarkMessagesAsEnum[\"UNREAD\"] = \"unread\";\n MarkMessagesAsEnum[\"UNSEEN\"] = \"unseen\";\n})(MarkMessagesAsEnum || (MarkMessagesAsEnum = {}));\n","export var WebSocketEventEnum;\n(function (WebSocketEventEnum) {\n WebSocketEventEnum[\"RECEIVED\"] = \"notification_received\";\n WebSocketEventEnum[\"UNREAD\"] = \"unread_count_changed\";\n WebSocketEventEnum[\"UNSEEN\"] = \"unseen_count_changed\";\n})(WebSocketEventEnum || (WebSocketEventEnum = {}));\n","import { TemplateVariableTypeEnum, } from '../../types';\nimport { TriggerContextTypeEnum } from '../notification-template';\nexport const TemplateSystemVariables = ['subscriber', 'step', 'branding', 'tenant', 'preheader'];\nexport const SystemVariablesWithTypes = {\n subscriber: {\n firstName: 'string',\n lastName: 'string',\n email: 'string',\n phone: 'string',\n avatar: 'string',\n locale: 'string',\n subscriberId: 'string',\n },\n step: {\n digest: 'boolean',\n events: 'array',\n total_count: 'number',\n },\n branding: {\n logo: 'string',\n color: 'string',\n },\n tenant: {\n name: 'string',\n data: 'object',\n },\n};\nexport const TriggerReservedVariables = ['tenant'];\nexport const ReservedVariablesMap = {\n [TriggerContextTypeEnum.TENANT]: [{ name: 'identifier', type: TemplateVariableTypeEnum.STRING }],\n};\n","export var LogStatusEnum;\n(function (LogStatusEnum) {\n LogStatusEnum[\"ERROR\"] = \"error\";\n LogStatusEnum[\"SUCCESS\"] = \"success\";\n LogStatusEnum[\"INFO\"] = \"info\";\n})(LogStatusEnum || (LogStatusEnum = {}));\nexport var LogCodeEnum;\n(function (LogCodeEnum) {\n LogCodeEnum[LogCodeEnum[\"TRIGGER_RECEIVED\"] = 1000] = \"TRIGGER_RECEIVED\";\n LogCodeEnum[LogCodeEnum[\"TEMPLATE_NOT_ACTIVE\"] = 1001] = \"TEMPLATE_NOT_ACTIVE\";\n LogCodeEnum[LogCodeEnum[\"TEMPLATE_NOT_FOUND\"] = 1002] = \"TEMPLATE_NOT_FOUND\";\n LogCodeEnum[LogCodeEnum[\"SMS_ERROR\"] = 1004] = \"SMS_ERROR\";\n LogCodeEnum[LogCodeEnum[\"CHAT_ERROR\"] = 1005] = \"CHAT_ERROR\";\n LogCodeEnum[LogCodeEnum[\"MISSING_SMS_PROVIDER\"] = 1006] = \"MISSING_SMS_PROVIDER\";\n LogCodeEnum[LogCodeEnum[\"IN_APP_MESSAGE_CREATED\"] = 1007] = \"IN_APP_MESSAGE_CREATED\";\n LogCodeEnum[LogCodeEnum[\"MAIL_PROVIDER_DELIVERY_ERROR\"] = 1008] = \"MAIL_PROVIDER_DELIVERY_ERROR\";\n LogCodeEnum[LogCodeEnum[\"TRIGGER_PROCESSED\"] = 1009] = \"TRIGGER_PROCESSED\";\n LogCodeEnum[LogCodeEnum[\"PUSH_ERROR\"] = 1010] = \"PUSH_ERROR\";\n LogCodeEnum[LogCodeEnum[\"MISSING_PUSH_PROVIDER\"] = 1011] = \"MISSING_PUSH_PROVIDER\";\n LogCodeEnum[LogCodeEnum[\"SUBSCRIBER_NOT_FOUND\"] = 3001] = \"SUBSCRIBER_NOT_FOUND\";\n LogCodeEnum[LogCodeEnum[\"SUBSCRIBER_MISSING_EMAIL\"] = 3002] = \"SUBSCRIBER_MISSING_EMAIL\";\n LogCodeEnum[LogCodeEnum[\"SUBSCRIBER_MISSING_PHONE\"] = 3003] = \"SUBSCRIBER_MISSING_PHONE\";\n LogCodeEnum[LogCodeEnum[\"SUBSCRIBER_MISSING_CHAT_CHANNEL_ID\"] = 3006] = \"SUBSCRIBER_MISSING_CHAT_CHANNEL_ID\";\n LogCodeEnum[LogCodeEnum[\"SUBSCRIBER_ID_MISSING\"] = 3004] = \"SUBSCRIBER_ID_MISSING\";\n LogCodeEnum[LogCodeEnum[\"MISSING_EMAIL_INTEGRATION\"] = 3005] = \"MISSING_EMAIL_INTEGRATION\";\n LogCodeEnum[LogCodeEnum[\"MISSING_SMS_INTEGRATION\"] = 3007] = \"MISSING_SMS_INTEGRATION\";\n LogCodeEnum[LogCodeEnum[\"MISSING_CHAT_INTEGRATION\"] = 3008] = \"MISSING_CHAT_INTEGRATION\";\n LogCodeEnum[LogCodeEnum[\"MISSING_PUSH_INTEGRATION\"] = 3009] = \"MISSING_PUSH_INTEGRATION\";\n LogCodeEnum[LogCodeEnum[\"SUBSCRIBER_MISSING_PUSH\"] = 3010] = \"SUBSCRIBER_MISSING_PUSH\";\n LogCodeEnum[LogCodeEnum[\"MISSING_PAYLOAD_VARIABLE\"] = 3011] = \"MISSING_PAYLOAD_VARIABLE\";\n LogCodeEnum[LogCodeEnum[\"AVATAR_ACTOR_ERROR\"] = 3012] = \"AVATAR_ACTOR_ERROR\";\n LogCodeEnum[LogCodeEnum[\"SYNTAX_ERROR_IN_EMAIL_EDITOR\"] = 3013] = \"SYNTAX_ERROR_IN_EMAIL_EDITOR\";\n LogCodeEnum[LogCodeEnum[\"TOPIC_ERROR\"] = 4001] = \"TOPIC_ERROR\";\n LogCodeEnum[LogCodeEnum[\"TOPIC_SUBSCRIBERS_ERROR\"] = 4002] = \"TOPIC_SUBSCRIBERS_ERROR\";\n})(LogCodeEnum || (LogCodeEnum = {}));\n","export var ChangeEntityTypeEnum;\n(function (ChangeEntityTypeEnum) {\n ChangeEntityTypeEnum[\"FEED\"] = \"Feed\";\n ChangeEntityTypeEnum[\"MESSAGE_TEMPLATE\"] = \"MessageTemplate\";\n ChangeEntityTypeEnum[\"LAYOUT\"] = \"Layout\";\n ChangeEntityTypeEnum[\"DEFAULT_LAYOUT\"] = \"DefaultLayout\";\n ChangeEntityTypeEnum[\"NOTIFICATION_TEMPLATE\"] = \"NotificationTemplate\";\n ChangeEntityTypeEnum[\"NOTIFICATION_GROUP\"] = \"NotificationGroup\";\n})(ChangeEntityTypeEnum || (ChangeEntityTypeEnum = {}));\n","export var DigestUnitEnum;\n(function (DigestUnitEnum) {\n DigestUnitEnum[\"SECONDS\"] = \"seconds\";\n DigestUnitEnum[\"MINUTES\"] = \"minutes\";\n DigestUnitEnum[\"HOURS\"] = \"hours\";\n DigestUnitEnum[\"DAYS\"] = \"days\";\n DigestUnitEnum[\"WEEKS\"] = \"weeks\";\n DigestUnitEnum[\"MONTHS\"] = \"months\";\n})(DigestUnitEnum || (DigestUnitEnum = {}));\nexport var DaysEnum;\n(function (DaysEnum) {\n DaysEnum[\"MONDAY\"] = \"monday\";\n DaysEnum[\"TUESDAY\"] = \"tuesday\";\n DaysEnum[\"WEDNESDAY\"] = \"wednesday\";\n DaysEnum[\"THURSDAY\"] = \"thursday\";\n DaysEnum[\"FRIDAY\"] = \"friday\";\n DaysEnum[\"SATURDAY\"] = \"saturday\";\n DaysEnum[\"SUNDAY\"] = \"sunday\";\n})(DaysEnum || (DaysEnum = {}));\nexport var DigestTypeEnum;\n(function (DigestTypeEnum) {\n DigestTypeEnum[\"REGULAR\"] = \"regular\";\n DigestTypeEnum[\"BACKOFF\"] = \"backoff\";\n DigestTypeEnum[\"TIMED\"] = \"timed\";\n})(DigestTypeEnum || (DigestTypeEnum = {}));\nexport var DelayTypeEnum;\n(function (DelayTypeEnum) {\n DelayTypeEnum[\"REGULAR\"] = \"regular\";\n DelayTypeEnum[\"SCHEDULED\"] = \"scheduled\";\n})(DelayTypeEnum || (DelayTypeEnum = {}));\nexport var MonthlyTypeEnum;\n(function (MonthlyTypeEnum) {\n MonthlyTypeEnum[\"EACH\"] = \"each\";\n MonthlyTypeEnum[\"ON\"] = \"on\";\n})(MonthlyTypeEnum || (MonthlyTypeEnum = {}));\nexport var OrdinalEnum;\n(function (OrdinalEnum) {\n OrdinalEnum[\"FIRST\"] = \"1\";\n OrdinalEnum[\"SECOND\"] = \"2\";\n OrdinalEnum[\"THIRD\"] = \"3\";\n OrdinalEnum[\"FOURTH\"] = \"4\";\n OrdinalEnum[\"FIFTH\"] = \"5\";\n OrdinalEnum[\"LAST\"] = \"last\";\n})(OrdinalEnum || (OrdinalEnum = {}));\nexport var OrdinalValueEnum;\n(function (OrdinalValueEnum) {\n OrdinalValueEnum[\"DAY\"] = \"day\";\n OrdinalValueEnum[\"WEEKDAY\"] = \"weekday\";\n OrdinalValueEnum[\"WEEKEND\"] = \"weekend\";\n OrdinalValueEnum[\"SUNDAY\"] = \"sunday\";\n OrdinalValueEnum[\"MONDAY\"] = \"monday\";\n OrdinalValueEnum[\"TUESDAY\"] = \"tuesday\";\n OrdinalValueEnum[\"WEDNESDAY\"] = \"wednesday\";\n OrdinalValueEnum[\"THURSDAY\"] = \"thursday\";\n OrdinalValueEnum[\"FRIDAY\"] = \"friday\";\n OrdinalValueEnum[\"SATURDAY\"] = \"saturday\";\n})(OrdinalValueEnum || (OrdinalValueEnum = {}));\n","export var JobStatusEnum;\n(function (JobStatusEnum) {\n JobStatusEnum[\"PENDING\"] = \"pending\";\n JobStatusEnum[\"QUEUED\"] = \"queued\";\n JobStatusEnum[\"RUNNING\"] = \"running\";\n JobStatusEnum[\"COMPLETED\"] = \"completed\";\n JobStatusEnum[\"FAILED\"] = \"failed\";\n JobStatusEnum[\"DELAYED\"] = \"delayed\";\n JobStatusEnum[\"CANCELED\"] = \"canceled\";\n})(JobStatusEnum || (JobStatusEnum = {}));\n","export var CredentialsKeyEnum;\n(function (CredentialsKeyEnum) {\n CredentialsKeyEnum[\"ApiKey\"] = \"apiKey\";\n CredentialsKeyEnum[\"User\"] = \"user\";\n CredentialsKeyEnum[\"SecretKey\"] = \"secretKey\";\n CredentialsKeyEnum[\"Domain\"] = \"domain\";\n CredentialsKeyEnum[\"Password\"] = \"password\";\n CredentialsKeyEnum[\"Host\"] = \"host\";\n CredentialsKeyEnum[\"Port\"] = \"port\";\n CredentialsKeyEnum[\"Secure\"] = \"secure\";\n CredentialsKeyEnum[\"Region\"] = \"region\";\n CredentialsKeyEnum[\"AccountSid\"] = \"accountSid\";\n CredentialsKeyEnum[\"MessageProfileId\"] = \"messageProfileId\";\n CredentialsKeyEnum[\"Token\"] = \"token\";\n CredentialsKeyEnum[\"From\"] = \"from\";\n CredentialsKeyEnum[\"SenderName\"] = \"senderName\";\n CredentialsKeyEnum[\"ApplicationId\"] = \"applicationId\";\n CredentialsKeyEnum[\"ClientId\"] = \"clientId\";\n CredentialsKeyEnum[\"ProjectName\"] = \"projectName\";\n CredentialsKeyEnum[\"ServiceAccount\"] = \"serviceAccount\";\n CredentialsKeyEnum[\"BaseUrl\"] = \"baseUrl\";\n CredentialsKeyEnum[\"WebhookUrl\"] = \"webhookUrl\";\n CredentialsKeyEnum[\"RequireTls\"] = \"requireTls\";\n CredentialsKeyEnum[\"IgnoreTls\"] = \"ignoreTls\";\n CredentialsKeyEnum[\"TlsOptions\"] = \"tlsOptions\";\n CredentialsKeyEnum[\"RedirectUrl\"] = \"redirectUrl\";\n CredentialsKeyEnum[\"Hmac\"] = \"hmac\";\n CredentialsKeyEnum[\"IpPoolName\"] = \"ipPoolName\";\n})(CredentialsKeyEnum || (CredentialsKeyEnum = {}));\nexport var EmailProviderIdEnum;\n(function (EmailProviderIdEnum) {\n EmailProviderIdEnum[\"EmailJS\"] = \"emailjs\";\n EmailProviderIdEnum[\"Mailgun\"] = \"mailgun\";\n EmailProviderIdEnum[\"Mailjet\"] = \"mailjet\";\n EmailProviderIdEnum[\"Mandrill\"] = \"mandrill\";\n EmailProviderIdEnum[\"CustomSMTP\"] = \"nodemailer\";\n EmailProviderIdEnum[\"Postmark\"] = \"postmark\";\n EmailProviderIdEnum[\"SendGrid\"] = \"sendgrid\";\n EmailProviderIdEnum[\"Sendinblue\"] = \"sendinblue\";\n EmailProviderIdEnum[\"SES\"] = \"ses\";\n EmailProviderIdEnum[\"NetCore\"] = \"netcore\";\n EmailProviderIdEnum[\"Infobip\"] = \"infobip-email\";\n EmailProviderIdEnum[\"Resend\"] = \"resend\";\n EmailProviderIdEnum[\"Plunk\"] = \"plunk\";\n EmailProviderIdEnum[\"MailerSend\"] = \"mailersend\";\n EmailProviderIdEnum[\"Clickatell\"] = \"clickatell\";\n EmailProviderIdEnum[\"Outlook365\"] = \"outlook365\";\n EmailProviderIdEnum[\"Novu\"] = \"novu-email\";\n EmailProviderIdEnum[\"SparkPost\"] = \"sparkpost\";\n EmailProviderIdEnum[\"EmailWebhook\"] = \"email-webhook\";\n})(EmailProviderIdEnum || (EmailProviderIdEnum = {}));\nexport var SmsProviderIdEnum;\n(function (SmsProviderIdEnum) {\n SmsProviderIdEnum[\"Nexmo\"] = \"nexmo\";\n SmsProviderIdEnum[\"Plivo\"] = \"plivo\";\n SmsProviderIdEnum[\"Sms77\"] = \"sms77\";\n SmsProviderIdEnum[\"SmsCentral\"] = \"sms-central\";\n SmsProviderIdEnum[\"SNS\"] = \"sns\";\n SmsProviderIdEnum[\"Telnyx\"] = \"telnyx\";\n SmsProviderIdEnum[\"Twilio\"] = \"twilio\";\n SmsProviderIdEnum[\"Gupshup\"] = \"gupshup\";\n SmsProviderIdEnum[\"Firetext\"] = \"firetext\";\n SmsProviderIdEnum[\"Infobip\"] = \"infobip-sms\";\n SmsProviderIdEnum[\"BurstSms\"] = \"burst-sms\";\n SmsProviderIdEnum[\"Clickatell\"] = \"clickatell\";\n SmsProviderIdEnum[\"FortySixElks\"] = \"forty-six-elks\";\n SmsProviderIdEnum[\"Kannel\"] = \"kannel\";\n SmsProviderIdEnum[\"Maqsam\"] = \"maqsam\";\n SmsProviderIdEnum[\"Termii\"] = \"termii\";\n SmsProviderIdEnum[\"AfricasTalking\"] = \"africas-talking\";\n SmsProviderIdEnum[\"Novu\"] = \"novu-sms\";\n SmsProviderIdEnum[\"Sendchamp\"] = \"sendchamp\";\n})(SmsProviderIdEnum || (SmsProviderIdEnum = {}));\nexport var ChatProviderIdEnum;\n(function (ChatProviderIdEnum) {\n ChatProviderIdEnum[\"Slack\"] = \"slack\";\n ChatProviderIdEnum[\"Discord\"] = \"discord\";\n ChatProviderIdEnum[\"MsTeams\"] = \"msteams\";\n ChatProviderIdEnum[\"Mattermost\"] = \"mattermost\";\n})(ChatProviderIdEnum || (ChatProviderIdEnum = {}));\nexport var PushProviderIdEnum;\n(function (PushProviderIdEnum) {\n PushProviderIdEnum[\"FCM\"] = \"fcm\";\n PushProviderIdEnum[\"APNS\"] = \"apns\";\n PushProviderIdEnum[\"EXPO\"] = \"expo\";\n PushProviderIdEnum[\"OneSignal\"] = \"one-signal\";\n PushProviderIdEnum[\"PushWebhook\"] = \"push-webhook\";\n})(PushProviderIdEnum || (PushProviderIdEnum = {}));\nexport var InAppProviderIdEnum;\n(function (InAppProviderIdEnum) {\n InAppProviderIdEnum[\"Novu\"] = \"novu\";\n})(InAppProviderIdEnum || (InAppProviderIdEnum = {}));\n","import { CredentialsKeyEnum } from '../provider.enum';\nexport const secureCredentials = [\n CredentialsKeyEnum.ApiKey,\n CredentialsKeyEnum.SecretKey,\n CredentialsKeyEnum.Token,\n CredentialsKeyEnum.Password,\n CredentialsKeyEnum.ServiceAccount,\n];\n","import { CredentialsKeyEnum } from '../provider.enum';\nconst mailConfigBase = [\n {\n key: CredentialsKeyEnum.From,\n displayName: 'From email address',\n description: 'Use the same email address you used to authenticate your delivery provider',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SenderName,\n displayName: 'Sender name',\n type: 'string',\n required: true,\n },\n];\nconst smsConfigBase = [\n {\n key: CredentialsKeyEnum.From,\n displayName: 'From',\n type: 'string',\n required: true,\n },\n];\nconst pushConfigBase = [];\nexport const mailJsConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Secret key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const mailgunConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.BaseUrl,\n displayName: 'Base URL',\n type: 'string',\n required: false,\n },\n {\n key: CredentialsKeyEnum.User,\n displayName: 'User name',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Domain,\n displayName: 'Domain',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const mailjetConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'API Secret',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const nexmoConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'API secret',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const mandrillConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const nodemailerConfig = [\n {\n key: CredentialsKeyEnum.User,\n displayName: 'User',\n type: 'string',\n required: false,\n },\n {\n key: CredentialsKeyEnum.Password,\n displayName: 'Password',\n type: 'string',\n required: false,\n },\n {\n key: CredentialsKeyEnum.Host,\n displayName: 'Host',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Port,\n displayName: 'Port',\n type: 'number',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Secure,\n displayName: 'Secure',\n type: 'boolean',\n required: false,\n },\n {\n key: CredentialsKeyEnum.RequireTls,\n displayName: 'Require TLS',\n type: 'switch',\n required: false,\n },\n {\n key: CredentialsKeyEnum.IgnoreTls,\n displayName: 'Ignore TLS',\n type: 'switch',\n required: false,\n },\n {\n key: CredentialsKeyEnum.TlsOptions,\n displayName: 'TLS options',\n type: 'object',\n required: false,\n },\n {\n key: CredentialsKeyEnum.Domain,\n displayName: 'DKIM: Domain name',\n type: 'string',\n required: false,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'DKIM: Private key',\n type: 'string',\n required: false,\n },\n {\n key: CredentialsKeyEnum.AccountSid,\n displayName: 'DKIM: Key selector',\n type: 'string',\n required: false,\n },\n ...mailConfigBase,\n];\nexport const postmarkConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const sendgridConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.IpPoolName,\n displayName: 'IP Pool Name',\n type: 'string',\n required: false,\n },\n ...mailConfigBase,\n];\nexport const resendConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const plunkConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const sparkpostConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Region,\n displayName: 'EU',\n description: 'Use `eu` if your account is registered to SparkPost EU',\n type: 'boolean',\n required: false,\n },\n ...mailConfigBase,\n];\nexport const netCoreConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const sendinblueConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const sesConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'Access key ID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Secret access key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Region,\n displayName: 'Region',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const mailerSendConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const plivoConfig = [\n {\n key: CredentialsKeyEnum.AccountSid,\n displayName: 'Account SID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Token,\n displayName: 'Auth token',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const sms77Config = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const termiiConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const burstSmsConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'API Secret',\n type: 'string',\n required: true,\n },\n];\nexport const clickatellConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n];\nexport const snsConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'Access key ID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Secret access key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Region,\n displayName: 'AWS region',\n type: 'string',\n required: true,\n },\n];\nexport const telnyxConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.MessageProfileId,\n displayName: 'Message profile ID',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const twilioConfig = [\n {\n key: CredentialsKeyEnum.AccountSid,\n displayName: 'Account SID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Token,\n displayName: 'Auth token',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const slackConfig = [\n {\n key: CredentialsKeyEnum.ApplicationId,\n displayName: 'Application Id',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.ClientId,\n displayName: 'Client ID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Client Secret',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.RedirectUrl,\n displayName: 'Redirect URL',\n description: 'Redirect after Slack OAuth flow finished (default behaviour will close the tab)',\n type: 'string',\n required: false,\n },\n {\n key: CredentialsKeyEnum.Hmac,\n displayName: 'HMAC',\n type: 'switch',\n required: false,\n },\n];\nexport const fcmConfig = [\n {\n key: CredentialsKeyEnum.ServiceAccount,\n displayName: 'Service Account (entire JSON file)',\n type: 'text',\n required: true,\n },\n ...pushConfigBase,\n];\nexport const expoConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'Access Token',\n type: 'text',\n required: true,\n },\n ...pushConfigBase,\n];\nexport const pushWebhookConfig = [\n {\n key: CredentialsKeyEnum.WebhookUrl,\n displayName: 'Webhook URL',\n type: 'string',\n description: 'the webhook URL to call to trigger push notifications',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Secret Hmac Key',\n type: 'string',\n description: 'the secret used to sign webhooks calls',\n required: true,\n },\n ...pushConfigBase,\n];\nexport const oneSignalConfig = [\n {\n key: CredentialsKeyEnum.ApplicationId,\n displayName: 'Application ID',\n type: 'text',\n required: true,\n },\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'text',\n required: true,\n },\n ...pushConfigBase,\n];\nexport const apnsConfig = [\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Private Key',\n type: 'text',\n required: true,\n },\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'Key ID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.ProjectName,\n displayName: 'Team ID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.ApplicationId,\n displayName: 'Bundle ID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Secure,\n displayName: 'Production',\n type: 'switch',\n required: true,\n },\n ...pushConfigBase,\n];\nexport const gupshupConfig = [\n {\n key: CredentialsKeyEnum.User,\n displayName: 'User id',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Password,\n displayName: 'Password',\n type: 'string',\n required: true,\n },\n];\nexport const firetextConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const outlook365Config = [\n {\n key: CredentialsKeyEnum.Password,\n displayName: 'Password',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const infobipSMSConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.BaseUrl,\n displayName: 'Base URL',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const infobipEmailConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.BaseUrl,\n displayName: 'Base URL',\n type: 'string',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const fortySixElksConfig = [\n {\n key: CredentialsKeyEnum.User,\n displayName: 'Username',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Password,\n displayName: 'Password',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const kannelConfig = [\n {\n key: CredentialsKeyEnum.Host,\n displayName: 'Host',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Port,\n displayName: 'Port',\n type: 'number',\n required: true,\n },\n {\n key: CredentialsKeyEnum.User,\n displayName: 'Username',\n type: 'string',\n required: false,\n },\n {\n key: CredentialsKeyEnum.Password,\n displayName: 'Password',\n type: 'string',\n required: false,\n },\n ...smsConfigBase,\n];\nexport const maqsamConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'Access Key ID',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Access Secret',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const smsCentralConfig = [\n {\n key: CredentialsKeyEnum.User,\n displayName: 'Username',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.Password,\n displayName: 'Password',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.BaseUrl,\n displayName: 'Base URL',\n type: 'string',\n required: false,\n },\n ...smsConfigBase,\n];\nexport const emailWebhookConfig = [\n {\n key: CredentialsKeyEnum.WebhookUrl,\n displayName: 'Webhook URL',\n type: 'string',\n description: 'the webhook URL to call instead of sending the email',\n required: true,\n },\n {\n key: CredentialsKeyEnum.SecretKey,\n displayName: 'Secret Hmac Key',\n type: 'string',\n description: 'the secret used to sign webhooks calls',\n required: true,\n },\n ...mailConfigBase,\n];\nexport const africasTalkingConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n {\n key: CredentialsKeyEnum.User,\n displayName: 'Username',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\nexport const novuInAppConfig = [\n {\n key: CredentialsKeyEnum.Hmac,\n displayName: 'Security HMAC encryption',\n type: 'switch',\n required: false,\n tooltip: {\n text: 'When active it verifies if a request is performed by a specific user',\n when: false,\n },\n },\n];\nexport const sendchampConfig = [\n {\n key: CredentialsKeyEnum.ApiKey,\n displayName: 'API Key',\n type: 'string',\n required: true,\n },\n ...smsConfigBase,\n];\n","import { mailerSendConfig, mailgunConfig, mailjetConfig, mandrillConfig, netCoreConfig, nodemailerConfig, postmarkConfig, sendgridConfig, sendinblueConfig, sesConfig, outlook365Config, infobipEmailConfig, resendConfig, plunkConfig, sparkpostConfig, emailWebhookConfig, } from '../credentials';\nimport { EmailProviderIdEnum } from '../provider.enum';\nimport { ChannelTypeEnum } from '../../../types';\nexport const emailProviders = [\n {\n id: EmailProviderIdEnum.Novu,\n displayName: 'Novu Email',\n channel: ChannelTypeEnum.EMAIL,\n credentials: [],\n docReference: 'https://docs.novu.co/channels/email/',\n logoFileName: { light: 'novu.png', dark: 'novu.png' },\n },\n {\n id: EmailProviderIdEnum.Mailgun,\n displayName: 'Mailgun',\n channel: ChannelTypeEnum.EMAIL,\n credentials: mailgunConfig,\n docReference: 'https://docs.novu.co/channels/email/mailgun',\n logoFileName: { light: 'mailgun.svg', dark: 'mailgun.svg' },\n },\n {\n id: EmailProviderIdEnum.Mailjet,\n displayName: 'Mailjet',\n channel: ChannelTypeEnum.EMAIL,\n credentials: mailjetConfig,\n docReference: 'https://docs.novu.co/channels/email/mailjet',\n logoFileName: { light: 'mailjet.png', dark: 'mailjet.png' },\n },\n {\n id: EmailProviderIdEnum.Mandrill,\n displayName: 'Mandrill',\n channel: ChannelTypeEnum.EMAIL,\n credentials: mandrillConfig,\n docReference: 'https://docs.novu.co/channels/email/mandrill',\n logoFileName: { light: 'mandrill.svg', dark: 'mandrill.svg' },\n },\n {\n id: EmailProviderIdEnum.Postmark,\n displayName: 'Postmark',\n channel: ChannelTypeEnum.EMAIL,\n credentials: postmarkConfig,\n docReference: 'https://docs.novu.co/channels/email/postmark',\n logoFileName: { light: 'postmark.png', dark: 'postmark.png' },\n },\n {\n id: EmailProviderIdEnum.SendGrid,\n displayName: 'SendGrid',\n channel: ChannelTypeEnum.EMAIL,\n credentials: sendgridConfig,\n docReference: 'https://docs.novu.co/channels/email/sendgrid',\n logoFileName: { light: 'sendgrid.png', dark: 'sendgrid.png' },\n },\n {\n id: EmailProviderIdEnum.Sendinblue,\n displayName: 'Sendinblue',\n channel: ChannelTypeEnum.EMAIL,\n credentials: sendinblueConfig,\n docReference: 'https://docs.novu.co/channels/email/sendinblue',\n logoFileName: { light: 'sendinblue.png', dark: 'sendinblue.png' },\n },\n {\n id: EmailProviderIdEnum.SES,\n displayName: 'SES',\n channel: ChannelTypeEnum.EMAIL,\n credentials: sesConfig,\n docReference: 'https://docs.novu.co/channels/email/ses',\n logoFileName: { light: 'ses.svg', dark: 'ses.svg' },\n },\n {\n id: EmailProviderIdEnum.NetCore,\n displayName: 'Netcore',\n channel: ChannelTypeEnum.EMAIL,\n credentials: netCoreConfig,\n docReference: 'https://docs.novu.co/channels/email/netcore',\n logoFileName: { light: 'netcore.png', dark: 'netcore.png' },\n },\n {\n id: EmailProviderIdEnum.CustomSMTP,\n displayName: 'Custom SMTP',\n channel: ChannelTypeEnum.EMAIL,\n credentials: nodemailerConfig,\n docReference: 'https://docs.novu.co/channels/email/custom-smtp',\n logoFileName: { light: 'custom_smtp.svg', dark: 'custom_smtp.svg' },\n },\n {\n id: EmailProviderIdEnum.MailerSend,\n displayName: 'MailerSend',\n channel: ChannelTypeEnum.EMAIL,\n credentials: mailerSendConfig,\n docReference: 'https://docs.novu.co/channels/email/mailersend',\n logoFileName: { light: 'mailersend.svg', dark: 'mailersend.svg' },\n },\n {\n id: EmailProviderIdEnum.Outlook365,\n displayName: 'Microsoft Outlook365',\n channel: ChannelTypeEnum.EMAIL,\n credentials: outlook365Config,\n docReference: 'https://docs.novu.co/channels/email/outlook365',\n logoFileName: { light: 'outlook365.png', dark: 'outlook365.png' },\n },\n {\n id: EmailProviderIdEnum.Infobip,\n displayName: 'Infobip',\n channel: ChannelTypeEnum.EMAIL,\n credentials: infobipEmailConfig,\n docReference: 'https://docs.novu.co/channels/email/infobip',\n logoFileName: { light: 'infobip.png', dark: 'infobip.png' },\n },\n {\n id: EmailProviderIdEnum.Resend,\n displayName: 'Resend',\n channel: ChannelTypeEnum.EMAIL,\n credentials: resendConfig,\n docReference: 'https://docs.novu.co/channels/email/resend',\n logoFileName: { light: 'resend.svg', dark: 'resend.svg' },\n },\n {\n id: EmailProviderIdEnum.Plunk,\n displayName: 'Plunk',\n channel: ChannelTypeEnum.EMAIL,\n credentials: plunkConfig,\n docReference: 'https://docs.novu.co/channels/email/plunk',\n logoFileName: { light: 'plunk.png', dark: 'plunk.png' },\n },\n {\n id: EmailProviderIdEnum.SparkPost,\n displayName: 'SparkPost',\n channel: ChannelTypeEnum.EMAIL,\n credentials: sparkpostConfig,\n docReference: 'https://docs.novu.co/channels/email/sparkpost',\n logoFileName: { light: 'sparkpost.svg', dark: 'sparkpost.svg' },\n },\n {\n id: EmailProviderIdEnum.EmailWebhook,\n displayName: 'Email Webhook',\n channel: ChannelTypeEnum.EMAIL,\n credentials: emailWebhookConfig,\n betaVersion: true,\n docReference: 'https://docs.novu.co/channels/email/email-webhook/',\n logoFileName: { light: 'email_webhook.svg', dark: 'email_webhook.svg' },\n },\n];\n","import { gupshupConfig, nexmoConfig, plivoConfig, sms77Config, snsConfig, telnyxConfig, twilioConfig, firetextConfig, infobipSMSConfig, burstSmsConfig, clickatellConfig, fortySixElksConfig, kannelConfig, maqsamConfig, smsCentralConfig, termiiConfig, africasTalkingConfig, sendchampConfig, } from '../credentials';\nimport { SmsProviderIdEnum } from '../provider.enum';\nimport { ChannelTypeEnum } from '../../../types';\nexport const smsProviders = [\n {\n id: SmsProviderIdEnum.Novu,\n displayName: 'Novu SMS',\n channel: ChannelTypeEnum.SMS,\n credentials: [],\n docReference: 'https://docs.novu.co/channels/sms/',\n logoFileName: { light: 'novu.png', dark: 'novu.png' },\n },\n {\n id: SmsProviderIdEnum.Nexmo,\n displayName: 'Nexmo',\n channel: ChannelTypeEnum.SMS,\n credentials: nexmoConfig,\n docReference: 'https://docs.novu.co/channels/sms/nexmo',\n logoFileName: { light: 'nexmo.png', dark: 'nexmo.png' },\n },\n {\n id: SmsProviderIdEnum.Plivo,\n displayName: 'Plivo',\n channel: ChannelTypeEnum.SMS,\n credentials: plivoConfig,\n docReference: 'https://www.plivo.com/docs/',\n logoFileName: { light: 'plivo.png', dark: 'plivo.png' },\n },\n {\n id: SmsProviderIdEnum.Sms77,\n displayName: 'sms77',\n channel: ChannelTypeEnum.SMS,\n credentials: sms77Config,\n docReference: 'https://docs.novu.co/channels/sms/SMS77',\n logoFileName: { light: 'sms77.svg', dark: 'sms77.svg' },\n },\n {\n id: SmsProviderIdEnum.SNS,\n displayName: 'SNS',\n channel: ChannelTypeEnum.SMS,\n credentials: snsConfig,\n docReference: 'https://docs.novu.co/channels/sms/sns',\n logoFileName: { light: 'sns.svg', dark: 'sns.svg' },\n },\n {\n id: SmsProviderIdEnum.Telnyx,\n displayName: 'Telnyx',\n channel: ChannelTypeEnum.SMS,\n credentials: telnyxConfig,\n docReference: 'https://docs.novu.co/channels/sms/telnyx',\n logoFileName: { light: 'telnyx.png', dark: 'telnyx.png' },\n },\n {\n id: SmsProviderIdEnum.Twilio,\n displayName: 'Twilio',\n channel: ChannelTypeEnum.SMS,\n credentials: twilioConfig,\n docReference: 'https://docs.novu.co/channels/sms/twilio',\n logoFileName: { light: 'twilio.png', dark: 'twilio.png' },\n },\n {\n id: SmsProviderIdEnum.Gupshup,\n displayName: 'Gupshup',\n channel: ChannelTypeEnum.SMS,\n credentials: gupshupConfig,\n docReference: 'https://docs.gupshup.io/docs/send-single-message',\n logoFileName: { light: 'gupshup.png', dark: 'gupshup.png' },\n },\n {\n id: SmsProviderIdEnum.Firetext,\n displayName: 'Firetext',\n channel: ChannelTypeEnum.SMS,\n credentials: firetextConfig,\n docReference: 'https://www.firetext.co.uk/docs',\n logoFileName: { light: 'firetext.svg', dark: 'firetext.svg' },\n },\n {\n id: SmsProviderIdEnum.Infobip,\n displayName: 'Infobip',\n channel: ChannelTypeEnum.SMS,\n credentials: infobipSMSConfig,\n docReference: 'https://www.infobip.com/docs',\n logoFileName: { light: 'infobip.png', dark: 'infobip.png' },\n },\n {\n id: SmsProviderIdEnum.BurstSms,\n displayName: 'BurstSMS',\n channel: ChannelTypeEnum.SMS,\n credentials: burstSmsConfig,\n docReference: 'https://developer.transmitsms.com/',\n logoFileName: { light: 'burst-sms.svg', dark: 'burst-sms.svg' },\n },\n {\n id: SmsProviderIdEnum.Clickatell,\n displayName: 'clickatell',\n channel: ChannelTypeEnum.SMS,\n credentials: clickatellConfig,\n betaVersion: true,\n docReference: 'https://docs.clickatell.com/',\n logoFileName: { light: 'clickatell.png', dark: 'clickatell.png' },\n },\n {\n id: SmsProviderIdEnum.FortySixElks,\n displayName: '46elks',\n channel: ChannelTypeEnum.SMS,\n credentials: fortySixElksConfig,\n docReference: 'https://46elks.com/docs/send-sms',\n logoFileName: { light: '46elks.png', dark: '46elks.png' },\n },\n {\n id: SmsProviderIdEnum.Kannel,\n displayName: 'Kannel SMS',\n channel: ChannelTypeEnum.SMS,\n credentials: kannelConfig,\n betaVersion: true,\n docReference: 'https://www.kannel.org/doc.shtml',\n logoFileName: { light: 'kannel.png', dark: 'kannel.png' },\n },\n {\n id: SmsProviderIdEnum.Maqsam,\n displayName: 'Maqsam',\n channel: ChannelTypeEnum.SMS,\n credentials: maqsamConfig,\n docReference: 'https://portal.maqsam.com/docs/v2/sms',\n logoFileName: { light: 'maqsam.png', dark: 'maqsam.png' },\n },\n {\n id: SmsProviderIdEnum.SmsCentral,\n displayName: 'SMS Central',\n channel: ChannelTypeEnum.SMS,\n credentials: smsCentralConfig,\n docReference: 'https://www.smscentral.com.au/sms-api/',\n logoFileName: { light: 'sms-central.png', dark: 'sms-central.png' },\n },\n {\n id: SmsProviderIdEnum.Termii,\n displayName: 'Termii',\n channel: ChannelTypeEnum.SMS,\n credentials: termiiConfig,\n docReference: 'https://developers.termii.com/authentication',\n logoFileName: { light: 'termii.png', dark: 'termii.png' },\n },\n {\n id: SmsProviderIdEnum.AfricasTalking,\n displayName: `Africa's Talking`,\n channel: ChannelTypeEnum.SMS,\n credentials: africasTalkingConfig,\n docReference: 'https://docs.novu.co/channels/sms/africas-talking',\n logoFileName: { light: 'africas-talking.svg', dark: 'africas-talking.svg' },\n },\n {\n id: SmsProviderIdEnum.Sendchamp,\n displayName: `Sendchamp`,\n channel: ChannelTypeEnum.SMS,\n credentials: sendchampConfig,\n docReference: 'https://sendchamp.readme.io/reference/api-structure',\n logoFileName: { light: 'sendchamp.svg', dark: 'sendchamp.svg' },\n },\n];\n","import { slackConfig } from '../credentials';\nimport { ChatProviderIdEnum } from '../provider.enum';\nimport { ChannelTypeEnum } from '../../../types';\nexport const chatProviders = [\n {\n id: ChatProviderIdEnum.Slack,\n displayName: 'Slack',\n channel: ChannelTypeEnum.CHAT,\n credentials: slackConfig,\n docReference: 'https://docs.novu.co/channels/chat/slack',\n logoFileName: { light: 'slack.svg', dark: 'slack.svg' },\n },\n {\n id: ChatProviderIdEnum.Discord,\n displayName: 'Discord',\n channel: ChannelTypeEnum.CHAT,\n credentials: [],\n docReference: 'https://docs.novu.co/channels/chat/discord',\n logoFileName: { light: 'discord.svg', dark: 'discord.svg' },\n },\n {\n id: ChatProviderIdEnum.MsTeams,\n displayName: 'MSTeams',\n channel: ChannelTypeEnum.CHAT,\n credentials: [],\n docReference: 'https://docs.novu.co/channels/chat/msteams',\n logoFileName: { light: 'msteams.svg', dark: 'msteams.svg' },\n },\n {\n id: ChatProviderIdEnum.Mattermost,\n displayName: 'Mattermost',\n channel: ChannelTypeEnum.CHAT,\n credentials: [],\n docReference: 'https://developers.mattermost.com/integrate/webhooks/incoming/',\n logoFileName: { light: 'mattermost.svg', dark: 'mattermost.svg' },\n },\n];\n","import { apnsConfig, fcmConfig, expoConfig, oneSignalConfig, pushWebhookConfig } from '../credentials';\nimport { PushProviderIdEnum } from '../provider.enum';\nimport { ChannelTypeEnum } from '../../../types';\nexport const pushProviders = [\n {\n id: PushProviderIdEnum.OneSignal,\n displayName: 'OneSignal',\n channel: ChannelTypeEnum.PUSH,\n credentials: oneSignalConfig,\n docReference: 'https://documentation.onesignal.com/reference/create-notification',\n logoFileName: { light: 'one-signal.svg', dark: 'one-signal.svg' },\n },\n {\n id: PushProviderIdEnum.FCM,\n displayName: 'Firebase Cloud Messaging',\n channel: ChannelTypeEnum.PUSH,\n credentials: fcmConfig,\n docReference: 'https://docs.novu.co/channels/push/fcm',\n logoFileName: { light: 'fcm.svg', dark: 'fcm.svg' },\n },\n {\n id: PushProviderIdEnum.EXPO,\n displayName: 'Expo Push',\n channel: ChannelTypeEnum.PUSH,\n credentials: expoConfig,\n docReference: 'https://docs.novu.co/channels/push/expo',\n logoFileName: { light: 'expo.svg', dark: 'expo.svg' },\n },\n {\n id: PushProviderIdEnum.APNS,\n displayName: 'APNs',\n channel: ChannelTypeEnum.PUSH,\n credentials: apnsConfig,\n docReference: 'https://docs.novu.co/channels/push/apns',\n logoFileName: { light: 'apns.png', dark: 'apns.png' },\n betaVersion: true,\n },\n {\n id: PushProviderIdEnum.PushWebhook,\n displayName: 'Push Webhook',\n channel: ChannelTypeEnum.PUSH,\n credentials: pushWebhookConfig,\n docReference: 'https://docs.novu.co/channels/push/webhook',\n logoFileName: { light: 'push-webhook.svg', dark: 'push-webhook.svg' },\n betaVersion: true,\n },\n];\n","import { novuInAppConfig } from '../credentials';\nimport { InAppProviderIdEnum } from '../provider.enum';\nimport { ChannelTypeEnum } from '../../../types';\nexport const inAppProviders = [\n {\n id: InAppProviderIdEnum.Novu,\n displayName: 'Novu In-App',\n channel: ChannelTypeEnum.IN_APP,\n credentials: novuInAppConfig,\n docReference: 'https://docs.novu.co/notification-center/getting-started',\n logoFileName: { light: 'novu.png', dark: 'novu.png' },\n },\n];\n","import { chatProviders, emailProviders, smsProviders, pushProviders, inAppProviders } from './channels';\nimport { InAppProviderIdEnum, EmailProviderIdEnum, SmsProviderIdEnum } from './provider.enum';\nexport { chatProviders, emailProviders, smsProviders, pushProviders, inAppProviders } from './channels';\nexport const providers = [\n ...emailProviders,\n ...smsProviders,\n ...chatProviders,\n ...pushProviders,\n ...inAppProviders,\n];\nexport const NOVU_PROVIDERS = [\n InAppProviderIdEnum.Novu,\n SmsProviderIdEnum.Novu,\n EmailProviderIdEnum.Novu,\n];\nexport const NOVU_SMS_EMAIL_PROVIDERS = [SmsProviderIdEnum.Novu, EmailProviderIdEnum.Novu];\n","import { ButtonTypeEnum } from '../../entities/messages';\nconst primaryButton = {\n key: ButtonTypeEnum.PRIMARY,\n displayName: 'Primary',\n};\nconst secondaryButton = {\n key: ButtonTypeEnum.SECONDARY,\n displayName: 'Secondary',\n};\nexport const darkButtonStyle = {\n primary: {\n backGroundColor: 'linear-gradient(99deg,#DD2476 0% 0%, #FF512F 100% 100%)',\n fontColor: '#FFFFFF',\n removeCircleColor: 'white',\n },\n secondary: { backGroundColor: '#3D3D4D', fontColor: '#FFFFFF', removeCircleColor: '#525266' },\n clicked: { backGroundColor: 'white', fontColor: '#FFFFFF', removeCircleColor: '#525266' },\n};\nexport const lightButtonStyle = {\n primary: {\n backGroundColor: 'linear-gradient(99deg,#DD2476 0% 0%, #FF512F 100% 100%)',\n fontColor: '#FFFFFF',\n removeCircleColor: 'white',\n },\n secondary: { backGroundColor: '#F5F8FA', fontColor: '#525266', removeCircleColor: '#525266' },\n clicked: { backGroundColor: 'white', fontColor: '#525266', removeCircleColor: '#525266' },\n};\nexport const notificationItemButtons = [primaryButton, secondaryButton];\n","export var HandlebarHelpersEnum;\n(function (HandlebarHelpersEnum) {\n HandlebarHelpersEnum[\"EQUALS\"] = \"equals\";\n HandlebarHelpersEnum[\"TITLECASE\"] = \"titlecase\";\n HandlebarHelpersEnum[\"UPPERCASE\"] = \"uppercase\";\n HandlebarHelpersEnum[\"LOWERCASE\"] = \"lowercase\";\n HandlebarHelpersEnum[\"PLURALIZE\"] = \"pluralize\";\n HandlebarHelpersEnum[\"DATEFORMAT\"] = \"dateFormat\";\n HandlebarHelpersEnum[\"UNIQUE\"] = \"unique\";\n HandlebarHelpersEnum[\"GROUP_BY\"] = \"groupBy\";\n HandlebarHelpersEnum[\"SORT_BY\"] = \"sortBy\";\n})(HandlebarHelpersEnum || (HandlebarHelpersEnum = {}));\nexport const HandlebarHelpers = {\n [HandlebarHelpersEnum.EQUALS]: { description: 'assert equal' },\n [HandlebarHelpersEnum.TITLECASE]: { description: 'transform to TitleCase' },\n [HandlebarHelpersEnum.UPPERCASE]: { description: 'transform to UPPERCASE' },\n [HandlebarHelpersEnum.LOWERCASE]: { description: 'transform to lowercase' },\n [HandlebarHelpersEnum.PLURALIZE]: { description: 'pluralize if needed' },\n [HandlebarHelpersEnum.DATEFORMAT]: { description: 'format date' },\n [HandlebarHelpersEnum.UNIQUE]: { description: 'filter unique values in an array' },\n [HandlebarHelpersEnum.GROUP_BY]: { description: 'group by a property' },\n [HandlebarHelpersEnum.SORT_BY]: { description: 'sort an array of objects by a property' },\n};\n","import { FilterPartTypeEnum } from '../../types';\nexport const FILTER_TO_LABEL = {\n [FilterPartTypeEnum.PAYLOAD]: 'Payload',\n [FilterPartTypeEnum.SUBSCRIBER]: 'Subscriber',\n [FilterPartTypeEnum.WEBHOOK]: 'Webhook',\n [FilterPartTypeEnum.IS_ONLINE]: 'Online right now',\n [FilterPartTypeEnum.IS_ONLINE_IN_LAST]: \"Online in the last 'X' time period\",\n [FilterPartTypeEnum.PREVIOUS_STEP]: 'Previous step',\n};\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else {\n requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.4.0\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from 'axios';\nexport class HttpClient {\n constructor(backendUrl) {\n this.backendUrl = backendUrl;\n this.axiosClient = axios.create({\n baseURL: backendUrl + '/v1',\n });\n }\n setAuthorizationToken(token) {\n this.axiosClient.defaults.headers.common.Authorization = `Bearer ${token}`;\n }\n disposeAuthorizationToken() {\n delete this.axiosClient.defaults.headers.common.Authorization;\n }\n getFullResponse(url, params) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.axiosClient\n .get(url, {\n params,\n })\n .then((response) => response.data);\n });\n }\n get(url, params) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.axiosClient\n .get(url, {\n params,\n })\n .then((response) => response.data.data);\n });\n }\n post(url, body = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.axiosClient.post(url, body).then((response) => response.data.data);\n });\n }\n patch(url, body = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.axiosClient.patch(url, body).then((response) => response.data.data);\n });\n }\n delete(url, body = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.axiosClient.delete(url, body).then((response) => response.data.data);\n });\n }\n}\n","export var NovuComponentEnum;\n(function (NovuComponentEnum) {\n NovuComponentEnum[NovuComponentEnum[\"WEB\"] = 0] = \"WEB\";\n NovuComponentEnum[NovuComponentEnum[\"API\"] = 1] = \"API\";\n NovuComponentEnum[NovuComponentEnum[\"WIDGET\"] = 2] = \"WIDGET\";\n NovuComponentEnum[NovuComponentEnum[\"WS\"] = 3] = \"WS\";\n})(NovuComponentEnum || (NovuComponentEnum = {}));\nexport function getContextPath(component) {\n let contextPath = '';\n const env = typeof process !== 'undefined' && (process === null || process === void 0 ? void 0 : process.env) ? process === null || process === void 0 ? void 0 : process.env : window._env_;\n if (!env) {\n return contextPath;\n }\n if (env.GLOBAL_CONTEXT_PATH) {\n contextPath += env.GLOBAL_CONTEXT_PATH + '/';\n }\n switch (component) {\n case NovuComponentEnum.API:\n if (env.API_CONTEXT_PATH) {\n contextPath += env.API_CONTEXT_PATH + '/';\n }\n break;\n case NovuComponentEnum.WEB:\n if (env.FRONT_BASE_CONTEXT_PATH) {\n contextPath += env.FRONT_BASE_CONTEXT_PATH + '/';\n }\n break;\n case NovuComponentEnum.WIDGET:\n if (env.WIDGET_CONTEXT_PATH) {\n contextPath += env.WIDGET_CONTEXT_PATH + '/';\n }\n break;\n case NovuComponentEnum.WS:\n if (env.WS_CONTEXT_PATH) {\n contextPath += env.WS_CONTEXT_PATH + '/';\n }\n break;\n }\n return contextPath;\n}\n","export var JobTopicNameEnum;\n(function (JobTopicNameEnum) {\n JobTopicNameEnum[\"INBOUND_PARSE_MAIL\"] = \"inbound-parse-mail\";\n JobTopicNameEnum[\"METRICS\"] = \"metric\";\n JobTopicNameEnum[\"STANDARD\"] = \"standard\";\n JobTopicNameEnum[\"WEB_SOCKETS\"] = \"ws_socket_queue\";\n JobTopicNameEnum[\"WORKFLOW\"] = \"trigger-handler\";\n})(JobTopicNameEnum || (JobTopicNameEnum = {}));\nexport var ObservabilityBackgroundTransactionEnum;\n(function (ObservabilityBackgroundTransactionEnum) {\n ObservabilityBackgroundTransactionEnum[\"JOB_PROCESSING_QUEUE\"] = \"job-processing-queue\";\n ObservabilityBackgroundTransactionEnum[\"TRIGGER_HANDLER_QUEUE\"] = \"trigger-handler-queue\";\n})(ObservabilityBackgroundTransactionEnum || (ObservabilityBackgroundTransactionEnum = {}));\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\n/* import type {\n ElementType,\n StatelessFunctionalComponent,\n AbstractComponent\n} from 'react' */\n/*\nexport type Interpolations = Array\n\nexport type StyledElementType =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent = StatelessFunctionalComponent & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType,\n nextOptions?: StyledOptions\n ) => StyledComponent\n}\n\nexport type PrivateStyledComponent = StyledComponent & {\n __emotion_real: StyledComponent,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n*/\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key\n/*: string */\n) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag\n/*: ElementType */\n) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag\n/*: PrivateStyledComponent */\n, options\n/*: StyledOptions | void */\n, isReal\n/*: boolean */\n) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName\n /*: string */\n ) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n/*\nexport type CreateStyledComponent = (\n ...args: Interpolations\n) => StyledComponent\n\nexport type CreateStyled = {\n (\n tag: StyledElementType,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n*/\n\nvar isDevelopment = false;\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled\n/*: CreateStyled */\n= function createStyled\n/*: CreateStyled */\n(tag\n/*: any */\n, options\n/* ?: StyledOptions */\n) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n /* return function(): PrivateStyledComponent { */\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled\n /*: PrivateStyledComponent */\n = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag\n /*: StyledElementType */\n , nextOptions\n /* ?: StyledOptions */\n ) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport { createEmotion as default };\n","import createEmotion from '../create-instance/dist/emotion-css-create-instance.esm.js';\nimport '@emotion/cache';\nimport '@emotion/serialize';\nimport '@emotion/utils';\n\nvar _createEmotion = createEmotion({\n key: 'css'\n}),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n cache = _createEmotion.cache;\n\nexport { cache, css, cx, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet };\n","function findElementAncestor(element, selector) {\n let _element = element;\n while ((_element = _element.parentElement) && !_element.matches(selector))\n ;\n return _element;\n}\n\nexport { findElementAncestor };\n//# sourceMappingURL=find-element-ancestor.js.map\n","import { findElementAncestor } from '../find-element-ancestor/find-element-ancestor.js';\n\nfunction getPreviousIndex(current, elements, loop) {\n for (let i = current - 1; i >= 0; i -= 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n if (loop) {\n for (let i = elements.length - 1; i > -1; i -= 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n }\n return current;\n}\nfunction getNextIndex(current, elements, loop) {\n for (let i = current + 1; i < elements.length; i += 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n if (loop) {\n for (let i = 0; i < elements.length; i += 1) {\n if (!elements[i].disabled) {\n return i;\n }\n }\n }\n return current;\n}\nfunction onSameLevel(target, sibling, parentSelector) {\n return findElementAncestor(target, parentSelector) === findElementAncestor(sibling, parentSelector);\n}\nfunction createScopedKeydownHandler({\n parentSelector,\n siblingSelector,\n onKeyDown,\n loop = true,\n activateOnFocus = false,\n dir = \"rtl\",\n orientation\n}) {\n return (event) => {\n var _a;\n onKeyDown == null ? void 0 : onKeyDown(event);\n const elements = Array.from(((_a = findElementAncestor(event.currentTarget, parentSelector)) == null ? void 0 : _a.querySelectorAll(siblingSelector)) || []).filter((node) => onSameLevel(event.currentTarget, node, parentSelector));\n const current = elements.findIndex((el) => event.currentTarget === el);\n const _nextIndex = getNextIndex(current, elements, loop);\n const _previousIndex = getPreviousIndex(current, elements, loop);\n const nextIndex = dir === \"rtl\" ? _previousIndex : _nextIndex;\n const previousIndex = dir === \"rtl\" ? _nextIndex : _previousIndex;\n switch (event.key) {\n case \"ArrowRight\": {\n if (orientation === \"horizontal\") {\n event.stopPropagation();\n event.preventDefault();\n elements[nextIndex].focus();\n activateOnFocus && elements[nextIndex].click();\n }\n break;\n }\n case \"ArrowLeft\": {\n if (orientation === \"horizontal\") {\n event.stopPropagation();\n event.preventDefault();\n elements[previousIndex].focus();\n activateOnFocus && elements[previousIndex].click();\n }\n break;\n }\n case \"ArrowUp\": {\n if (orientation === \"vertical\") {\n event.stopPropagation();\n event.preventDefault();\n elements[_previousIndex].focus();\n activateOnFocus && elements[_previousIndex].click();\n }\n break;\n }\n case \"ArrowDown\": {\n if (orientation === \"vertical\") {\n event.stopPropagation();\n event.preventDefault();\n elements[_nextIndex].focus();\n activateOnFocus && elements[_nextIndex].click();\n }\n break;\n }\n case \"Home\": {\n event.stopPropagation();\n event.preventDefault();\n !elements[0].disabled && elements[0].focus();\n break;\n }\n case \"End\": {\n event.stopPropagation();\n event.preventDefault();\n const last = elements.length - 1;\n !elements[last].disabled && elements[last].focus();\n break;\n }\n }\n };\n}\n\nexport { createScopedKeydownHandler };\n//# sourceMappingURL=create-scoped-keydown-handler.js.map\n","import { findElementAncestor } from '../find-element-ancestor/find-element-ancestor.js';\n\nfunction getContextItemIndex(elementSelector, parentSelector, node) {\n var _a;\n if (!node) {\n return null;\n }\n return Array.from(((_a = findElementAncestor(node, parentSelector)) == null ? void 0 : _a.querySelectorAll(elementSelector)) || []).findIndex((element) => element === node);\n}\n\nexport { getContextItemIndex };\n//# sourceMappingURL=get-context-item-index.js.map\n","import React, { createContext, useContext } from 'react';\n\nfunction createSafeContext(errorMessage) {\n const Context = createContext(null);\n const useSafeContext = () => {\n const ctx = useContext(Context);\n if (ctx === null) {\n throw new Error(errorMessage);\n }\n return ctx;\n };\n const Provider = ({ children, value }) => /* @__PURE__ */ React.createElement(Context.Provider, {\n value\n }, children);\n return [Provider, useSafeContext];\n}\n\nexport { createSafeContext };\n//# sourceMappingURL=create-safe-context.js.map\n","function packSx(sx) {\n return Array.isArray(sx) ? sx : [sx];\n}\n\nexport { packSx };\n//# sourceMappingURL=pack-sx.js.map\n","function getSafeId(uid, errorMessage) {\n return (value) => {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new Error(errorMessage);\n }\n return `${uid}-${value}`;\n };\n}\n\nexport { getSafeId };\n//# sourceMappingURL=get-safe-id.js.map\n","const noop = () => {\n};\n\nexport { noop };\n//# sourceMappingURL=noop.js.map\n","import { noop } from '../noop/noop.js';\n\nfunction closeOnEscape(callback, options = { active: true }) {\n if (typeof callback !== \"function\" || !options.active) {\n return options.onKeyDown || noop;\n }\n return (event) => {\n var _a;\n if (event.key === \"Escape\") {\n callback(event);\n (_a = options.onTrigger) == null ? void 0 : _a.call(options);\n }\n };\n}\n\nexport { closeOnEscape };\n//# sourceMappingURL=close-on-escape.js.map\n","function createEventHandler(parentEventHandler, eventHandler) {\n return (event) => {\n parentEventHandler == null ? void 0 : parentEventHandler(event);\n eventHandler == null ? void 0 : eventHandler(event);\n };\n}\n\nexport { createEventHandler };\n//# sourceMappingURL=create-event-handler.js.map\n","import { useState } from 'react';\n\nfunction useHovered() {\n const [hovered, setHovered] = useState(-1);\n const resetHovered = () => setHovered(-1);\n return [hovered, { setHovered, resetHovered }];\n}\n\nexport { useHovered };\n//# sourceMappingURL=use-hovered.js.map\n","import React from 'react';\n\nfunction isElement(value) {\n if (Array.isArray(value) || value === null) {\n return false;\n }\n if (typeof value === \"object\") {\n if (value.type === React.Fragment) {\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport { isElement };\n//# sourceMappingURL=is-element.js.map\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","const DEFAULT_COLORS = {\n dark: [\n \"#C1C2C5\",\n \"#A6A7AB\",\n \"#909296\",\n \"#5c5f66\",\n \"#373A40\",\n \"#2C2E33\",\n \"#25262b\",\n \"#1A1B1E\",\n \"#141517\",\n \"#101113\"\n ],\n gray: [\n \"#f8f9fa\",\n \"#f1f3f5\",\n \"#e9ecef\",\n \"#dee2e6\",\n \"#ced4da\",\n \"#adb5bd\",\n \"#868e96\",\n \"#495057\",\n \"#343a40\",\n \"#212529\"\n ],\n red: [\n \"#fff5f5\",\n \"#ffe3e3\",\n \"#ffc9c9\",\n \"#ffa8a8\",\n \"#ff8787\",\n \"#ff6b6b\",\n \"#fa5252\",\n \"#f03e3e\",\n \"#e03131\",\n \"#c92a2a\"\n ],\n pink: [\n \"#fff0f6\",\n \"#ffdeeb\",\n \"#fcc2d7\",\n \"#faa2c1\",\n \"#f783ac\",\n \"#f06595\",\n \"#e64980\",\n \"#d6336c\",\n \"#c2255c\",\n \"#a61e4d\"\n ],\n grape: [\n \"#f8f0fc\",\n \"#f3d9fa\",\n \"#eebefa\",\n \"#e599f7\",\n \"#da77f2\",\n \"#cc5de8\",\n \"#be4bdb\",\n \"#ae3ec9\",\n \"#9c36b5\",\n \"#862e9c\"\n ],\n violet: [\n \"#f3f0ff\",\n \"#e5dbff\",\n \"#d0bfff\",\n \"#b197fc\",\n \"#9775fa\",\n \"#845ef7\",\n \"#7950f2\",\n \"#7048e8\",\n \"#6741d9\",\n \"#5f3dc4\"\n ],\n indigo: [\n \"#edf2ff\",\n \"#dbe4ff\",\n \"#bac8ff\",\n \"#91a7ff\",\n \"#748ffc\",\n \"#5c7cfa\",\n \"#4c6ef5\",\n \"#4263eb\",\n \"#3b5bdb\",\n \"#364fc7\"\n ],\n blue: [\n \"#e7f5ff\",\n \"#d0ebff\",\n \"#a5d8ff\",\n \"#74c0fc\",\n \"#4dabf7\",\n \"#339af0\",\n \"#228be6\",\n \"#1c7ed6\",\n \"#1971c2\",\n \"#1864ab\"\n ],\n cyan: [\n \"#e3fafc\",\n \"#c5f6fa\",\n \"#99e9f2\",\n \"#66d9e8\",\n \"#3bc9db\",\n \"#22b8cf\",\n \"#15aabf\",\n \"#1098ad\",\n \"#0c8599\",\n \"#0b7285\"\n ],\n teal: [\n \"#e6fcf5\",\n \"#c3fae8\",\n \"#96f2d7\",\n \"#63e6be\",\n \"#38d9a9\",\n \"#20c997\",\n \"#12b886\",\n \"#0ca678\",\n \"#099268\",\n \"#087f5b\"\n ],\n green: [\n \"#ebfbee\",\n \"#d3f9d8\",\n \"#b2f2bb\",\n \"#8ce99a\",\n \"#69db7c\",\n \"#51cf66\",\n \"#40c057\",\n \"#37b24d\",\n \"#2f9e44\",\n \"#2b8a3e\"\n ],\n lime: [\n \"#f4fce3\",\n \"#e9fac8\",\n \"#d8f5a2\",\n \"#c0eb75\",\n \"#a9e34b\",\n \"#94d82d\",\n \"#82c91e\",\n \"#74b816\",\n \"#66a80f\",\n \"#5c940d\"\n ],\n yellow: [\n \"#fff9db\",\n \"#fff3bf\",\n \"#ffec99\",\n \"#ffe066\",\n \"#ffd43b\",\n \"#fcc419\",\n \"#fab005\",\n \"#f59f00\",\n \"#f08c00\",\n \"#e67700\"\n ],\n orange: [\n \"#fff4e6\",\n \"#ffe8cc\",\n \"#ffd8a8\",\n \"#ffc078\",\n \"#ffa94d\",\n \"#ff922b\",\n \"#fd7e14\",\n \"#f76707\",\n \"#e8590c\",\n \"#d9480f\"\n ]\n};\n\nexport { DEFAULT_COLORS };\n//# sourceMappingURL=default-colors.js.map\n","function fontStyles(theme) {\n return () => ({ fontFamily: theme.fontFamily || \"sans-serif\" });\n}\n\nexport { fontStyles };\n//# sourceMappingURL=font-styles.js.map\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction focusStyles(theme) {\n return (selector) => ({\n WebkitTapHighlightColor: \"transparent\",\n [selector || \"&:focus\"]: __spreadValues({}, theme.focusRing === \"always\" || theme.focusRing === \"auto\" ? theme.focusRingStyles.styles(theme) : theme.focusRingStyles.resetStyles(theme)),\n [selector ? selector.replace(\":focus\", \":focus:not(:focus-visible)\") : \"&:focus:not(:focus-visible)\"]: __spreadValues({}, theme.focusRing === \"auto\" || theme.focusRing === \"never\" ? theme.focusRingStyles.resetStyles(theme) : null)\n });\n}\n\nexport { focusStyles };\n//# sourceMappingURL=focus-styles.js.map\n","function primaryShade(theme) {\n return (colorScheme) => {\n if (typeof theme.primaryShade === \"number\") {\n return theme.primaryShade;\n }\n return theme.primaryShade[colorScheme || theme.colorScheme];\n };\n}\n\nexport { primaryShade };\n//# sourceMappingURL=primary-shade.js.map\n","import { primaryShade } from '../primary-shade/primary-shade.js';\n\nfunction themeColor(theme) {\n const getPrimaryShade = primaryShade(theme);\n return (color, shade, primaryFallback = true, useSplittedShade = true) => {\n if (typeof color === \"string\" && color.includes(\".\")) {\n const [splitterColor, _splittedShade] = color.split(\".\");\n const splittedShade = parseInt(_splittedShade, 10);\n if (splitterColor in theme.colors && splittedShade >= 0 && splittedShade < 10) {\n return theme.colors[splitterColor][typeof shade === \"number\" && !useSplittedShade ? shade : splittedShade];\n }\n }\n const _shade = typeof shade === \"number\" ? shade : getPrimaryShade();\n return color in theme.colors ? theme.colors[color][_shade] : primaryFallback ? theme.colors[theme.primaryColor][_shade] : color;\n };\n}\n\nexport { themeColor };\n//# sourceMappingURL=theme-color.js.map\n","function getGradientColorStops(colors) {\n let stops = \"\";\n for (let i = 1; i < colors.length - 1; i += 1) {\n stops += `${colors[i]} ${i / (colors.length - 1) * 100}%, `;\n }\n return `${colors[0]} 0%, ${stops}${colors[colors.length - 1]} 100%`;\n}\n\nexport { getGradientColorStops };\n//# sourceMappingURL=get-gradient-color-stops.js.map\n","import { themeColor } from '../theme-color/theme-color.js';\nimport { primaryShade } from '../primary-shade/primary-shade.js';\nimport { getGradientColorStops } from './get-gradient-color-stops/get-gradient-color-stops.js';\n\nfunction linearGradient(deg, ...colors) {\n return `linear-gradient(${deg}deg, ${getGradientColorStops(colors)})`;\n}\nfunction radialGradient(...colors) {\n return `radial-gradient(circle, ${getGradientColorStops(colors)})`;\n}\nfunction gradient(theme) {\n const getThemeColor = themeColor(theme);\n const getPrimaryShade = primaryShade(theme);\n return (payload) => {\n const merged = {\n from: (payload == null ? void 0 : payload.from) || theme.defaultGradient.from,\n to: (payload == null ? void 0 : payload.to) || theme.defaultGradient.to,\n deg: (payload == null ? void 0 : payload.deg) || theme.defaultGradient.deg\n };\n return `linear-gradient(${merged.deg}deg, ${getThemeColor(merged.from, getPrimaryShade(), false)} 0%, ${getThemeColor(merged.to, getPrimaryShade(), false)} 100%)`;\n };\n}\n\nexport { gradient, linearGradient, radialGradient };\n//# sourceMappingURL=gradient.js.map\n","function size(props) {\n if (typeof props.size === \"number\") {\n return props.size;\n }\n const computedSize = props.sizes[props.size];\n return computedSize !== void 0 ? computedSize : props.size || props.sizes.md;\n}\n\nexport { size };\n//# sourceMappingURL=size.js.map\n","import { size } from '../size/size.js';\n\nfunction largerThan(theme) {\n return (breakpoint) => `@media (min-width: ${size({ size: breakpoint, sizes: theme.breakpoints })}px)`;\n}\nfunction smallerThan(theme) {\n return (breakpoint) => `@media (max-width: ${size({ size: breakpoint, sizes: theme.breakpoints }) - 1}px)`;\n}\n\nexport { largerThan, smallerThan };\n//# sourceMappingURL=breakpoints.js.map\n","function isHexColor(hex) {\n const HEX_REGEXP = /^#?([0-9A-F]{3}){1,2}$/i;\n return HEX_REGEXP.test(hex);\n}\nfunction hexToRgba(color) {\n let hexString = color.replace(\"#\", \"\");\n if (hexString.length === 3) {\n const shorthandHex = hexString.split(\"\");\n hexString = [\n shorthandHex[0],\n shorthandHex[0],\n shorthandHex[1],\n shorthandHex[1],\n shorthandHex[2],\n shorthandHex[2]\n ].join(\"\");\n }\n const parsed = parseInt(hexString, 16);\n const r = parsed >> 16 & 255;\n const g = parsed >> 8 & 255;\n const b = parsed & 255;\n return {\n r,\n g,\n b,\n a: 1\n };\n}\nfunction rgbStringToRgba(color) {\n const [r, g, b, a] = color.replace(/[^0-9,.]/g, \"\").split(\",\").map(Number);\n return { r, g, b, a: a || 1 };\n}\nfunction toRgba(color) {\n if (isHexColor(color)) {\n return hexToRgba(color);\n }\n if (color.startsWith(\"rgb\")) {\n return rgbStringToRgba(color);\n }\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n };\n}\n\nexport { toRgba };\n//# sourceMappingURL=to-rgba.js.map\n","import { toRgba } from '../../../utils/to-rgba/to-rgba.js';\n\nfunction rgba(color, alpha) {\n if (typeof color !== \"string\" || alpha > 1 || alpha < 0) {\n return \"rgba(0, 0, 0, 1)\";\n }\n const { r, g, b } = toRgba(color);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\nexport { rgba };\n//# sourceMappingURL=rgba.js.map\n","function cover(offset = 0) {\n return {\n position: \"absolute\",\n top: offset,\n right: offset,\n left: offset,\n bottom: offset\n };\n}\n\nexport { cover };\n//# sourceMappingURL=cover.js.map\n","import { toRgba } from '../../../utils/to-rgba/to-rgba.js';\n\nfunction darken(color, alpha) {\n const { r, g, b, a } = toRgba(color);\n const f = 1 - alpha;\n const dark = (input) => Math.round(input * f);\n return `rgba(${dark(r)}, ${dark(g)}, ${dark(b)}, ${a})`;\n}\n\nexport { darken };\n//# sourceMappingURL=darken.js.map\n","import { toRgba } from '../../../utils/to-rgba/to-rgba.js';\n\nfunction lighten(color, alpha) {\n const { r, g, b, a } = toRgba(color);\n const light = (input) => Math.round(input + (255 - input) * alpha);\n return `rgba(${light(r)}, ${light(g)}, ${light(b)}, ${a})`;\n}\n\nexport { lighten };\n//# sourceMappingURL=lighten.js.map\n","function radius(theme) {\n return (size) => {\n if (typeof size === \"number\") {\n return size;\n }\n const defaultRadius = typeof theme.defaultRadius === \"number\" ? theme.defaultRadius : theme.radius[theme.defaultRadius] || theme.defaultRadius;\n return theme.radius[size] || size || defaultRadius;\n };\n}\n\nexport { radius };\n//# sourceMappingURL=radius.js.map\n","import { rgba } from '../rgba/rgba.js';\nimport { themeColor } from '../theme-color/theme-color.js';\nimport { primaryShade } from '../primary-shade/primary-shade.js';\nimport { gradient } from '../gradient/gradient.js';\n\nfunction getColorIndexInfo(color, theme) {\n if (typeof color === \"string\" && color.includes(\".\")) {\n const [splittedColor, _splittedShade] = color.split(\".\");\n const splittedShade = parseInt(_splittedShade, 10);\n if (splittedColor in theme.colors && splittedShade >= 0 && splittedShade < 10) {\n return { isSplittedColor: true, key: splittedColor, shade: splittedShade };\n }\n }\n return { isSplittedColor: false };\n}\nfunction variant(theme) {\n const getThemeColor = themeColor(theme);\n const getPrimaryShade = primaryShade(theme);\n const getGradient = gradient(theme);\n return ({ variant: variant2, color, gradient: gradient2, primaryFallback }) => {\n const colorInfo = getColorIndexInfo(color, theme);\n switch (variant2) {\n case \"light\": {\n return {\n border: \"transparent\",\n background: rgba(getThemeColor(color, theme.colorScheme === \"dark\" ? 8 : 0, primaryFallback, false), theme.colorScheme === \"dark\" ? 0.2 : 1),\n color: color === \"dark\" ? theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.dark[9] : getThemeColor(color, theme.colorScheme === \"dark\" ? 2 : getPrimaryShade(\"light\")),\n hover: rgba(getThemeColor(color, theme.colorScheme === \"dark\" ? 7 : 1, primaryFallback, false), theme.colorScheme === \"dark\" ? 0.25 : 0.65)\n };\n }\n case \"subtle\": {\n return {\n border: \"transparent\",\n background: \"transparent\",\n color: color === \"dark\" ? theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.dark[9] : getThemeColor(color, theme.colorScheme === \"dark\" ? 2 : getPrimaryShade(\"light\")),\n hover: rgba(getThemeColor(color, theme.colorScheme === \"dark\" ? 8 : 0, primaryFallback, false), theme.colorScheme === \"dark\" ? 0.2 : 1)\n };\n }\n case \"outline\": {\n return {\n border: getThemeColor(color, theme.colorScheme === \"dark\" ? 5 : getPrimaryShade(\"light\")),\n background: \"transparent\",\n color: getThemeColor(color, theme.colorScheme === \"dark\" ? 5 : getPrimaryShade(\"light\")),\n hover: theme.colorScheme === \"dark\" ? rgba(getThemeColor(color, 5, primaryFallback, false), 0.05) : rgba(getThemeColor(color, 0, primaryFallback, false), 0.35)\n };\n }\n case \"default\": {\n return {\n border: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[4],\n background: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.white,\n color: theme.colorScheme === \"dark\" ? theme.white : theme.black,\n hover: theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.colors.gray[0]\n };\n }\n case \"white\": {\n return {\n border: \"transparent\",\n background: theme.white,\n color: getThemeColor(color, getPrimaryShade()),\n hover: null\n };\n }\n case \"transparent\": {\n return {\n border: \"transparent\",\n color: color === \"dark\" ? theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.dark[9] : getThemeColor(color, theme.colorScheme === \"dark\" ? 2 : getPrimaryShade(\"light\")),\n background: \"transparent\",\n hover: null\n };\n }\n case \"gradient\": {\n return {\n background: getGradient(gradient2),\n color: theme.white,\n border: \"transparent\",\n hover: null\n };\n }\n default: {\n const _primaryShade = getPrimaryShade();\n const _shade = colorInfo.isSplittedColor ? colorInfo.shade : _primaryShade;\n const _color = colorInfo.isSplittedColor ? colorInfo.key : color;\n return {\n border: \"transparent\",\n background: getThemeColor(_color, _shade, primaryFallback),\n color: theme.white,\n hover: getThemeColor(_color, _shade === 9 ? 8 : _shade + 1)\n };\n }\n }\n };\n}\n\nexport { variant };\n//# sourceMappingURL=variant.js.map\n","import { primaryShade } from '../primary-shade/primary-shade.js';\n\nfunction primaryColor(theme) {\n return (colorScheme) => {\n const shade = primaryShade(theme)(colorScheme);\n return theme.colors[theme.primaryColor][shade];\n };\n}\n\nexport { primaryColor };\n//# sourceMappingURL=primary-color.js.map\n","function hover(hoverStyle) {\n return {\n \"@media (hover: hover)\": {\n \"&:hover\": hoverStyle\n },\n \"@media (hover: none)\": {\n \"&:active\": hoverStyle\n }\n };\n}\n\nexport { hover };\n//# sourceMappingURL=hover.js.map\n","function placeholderStyles(theme) {\n return () => ({\n userSelect: \"none\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[3] : theme.colors.gray[5]\n });\n}\n\nexport { placeholderStyles };\n//# sourceMappingURL=placeholder-styles.js.map\n","import { fontStyles } from './font-styles/font-styles.js';\nimport { focusStyles } from './focus-styles/focus-styles.js';\nimport { themeColor } from './theme-color/theme-color.js';\nimport { linearGradient, radialGradient, gradient } from './gradient/gradient.js';\nimport { smallerThan, largerThan } from './breakpoints/breakpoints.js';\nimport { rgba } from './rgba/rgba.js';\nimport { size } from './size/size.js';\nimport { cover } from './cover/cover.js';\nimport { darken } from './darken/darken.js';\nimport { lighten } from './lighten/lighten.js';\nimport { radius } from './radius/radius.js';\nimport { variant } from './variant/variant.js';\nimport { primaryShade } from './primary-shade/primary-shade.js';\nimport { primaryColor } from './primary-color/primary-color.js';\nimport { hover } from './hover/hover.js';\nimport { placeholderStyles } from './placeholder-styles/placeholder-styles.js';\n\nconst fns = {\n fontStyles,\n themeColor,\n focusStyles,\n linearGradient,\n radialGradient,\n smallerThan,\n largerThan,\n rgba,\n size,\n cover,\n darken,\n lighten,\n radius,\n variant,\n primaryShade,\n hover,\n gradient,\n primaryColor,\n placeholderStyles\n};\n\nexport { fns };\n//# sourceMappingURL=index.js.map\n","import { fns } from './fns/index.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction attachFunctions(themeBase) {\n return __spreadProps(__spreadValues({}, themeBase), {\n fn: {\n fontStyles: fns.fontStyles(themeBase),\n themeColor: fns.themeColor(themeBase),\n focusStyles: fns.focusStyles(themeBase),\n largerThan: fns.largerThan(themeBase),\n smallerThan: fns.smallerThan(themeBase),\n radialGradient: fns.radialGradient,\n linearGradient: fns.linearGradient,\n gradient: fns.gradient(themeBase),\n rgba: fns.rgba,\n size: fns.size,\n cover: fns.cover,\n lighten: fns.lighten,\n darken: fns.darken,\n primaryShade: fns.primaryShade(themeBase),\n radius: fns.radius(themeBase),\n variant: fns.variant(themeBase),\n hover: fns.hover,\n primaryColor: fns.primaryColor(themeBase),\n placeholderStyles: fns.placeholderStyles(themeBase)\n }\n });\n}\n\nexport { attachFunctions };\n//# sourceMappingURL=attach-functions.js.map\n","import { DEFAULT_COLORS } from './default-colors.js';\nimport { attachFunctions } from './functions/attach-functions.js';\n\nconst MANTINE_COLORS = Object.keys(DEFAULT_COLORS);\nconst MANTINE_SIZES = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"];\nconst _DEFAULT_THEME = {\n dir: \"ltr\",\n primaryShade: {\n light: 6,\n dark: 8\n },\n focusRing: \"auto\",\n loader: \"oval\",\n dateFormat: \"MMMM D, YYYY\",\n colorScheme: \"light\",\n white: \"#fff\",\n black: \"#000\",\n defaultRadius: \"sm\",\n transitionTimingFunction: \"ease\",\n colors: DEFAULT_COLORS,\n lineHeight: 1.55,\n fontFamily: \"-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji\",\n fontFamilyMonospace: \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace\",\n primaryColor: \"blue\",\n respectReducedMotion: true,\n cursorType: \"default\",\n defaultGradient: {\n from: \"indigo\",\n to: \"cyan\",\n deg: 45\n },\n shadows: {\n xs: \"0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1)\",\n sm: \"0 1px 3px rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0px 10px 15px -5px, rgba(0, 0, 0, 0.04) 0px 7px 7px -5px\",\n md: \"0 1px 3px rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0px 20px 25px -5px, rgba(0, 0, 0, 0.04) 0px 10px 10px -5px\",\n lg: \"0 1px 3px rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0px 28px 23px -7px, rgba(0, 0, 0, 0.04) 0px 12px 12px -7px\",\n xl: \"0 1px 3px rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0px 36px 28px -7px, rgba(0, 0, 0, 0.04) 0px 17px 17px -7px\"\n },\n fontSizes: {\n xs: 12,\n sm: 14,\n md: 16,\n lg: 18,\n xl: 20\n },\n radius: {\n xs: 2,\n sm: 4,\n md: 8,\n lg: 16,\n xl: 32\n },\n spacing: {\n xs: 10,\n sm: 12,\n md: 16,\n lg: 20,\n xl: 24\n },\n breakpoints: {\n xs: 576,\n sm: 768,\n md: 992,\n lg: 1200,\n xl: 1400\n },\n headings: {\n fontFamily: \"-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji\",\n fontWeight: 700,\n sizes: {\n h1: { fontSize: 34, lineHeight: 1.3, fontWeight: void 0 },\n h2: { fontSize: 26, lineHeight: 1.35, fontWeight: void 0 },\n h3: { fontSize: 22, lineHeight: 1.4, fontWeight: void 0 },\n h4: { fontSize: 18, lineHeight: 1.45, fontWeight: void 0 },\n h5: { fontSize: 16, lineHeight: 1.5, fontWeight: void 0 },\n h6: { fontSize: 14, lineHeight: 1.5, fontWeight: void 0 }\n }\n },\n other: {},\n components: {},\n activeStyles: { transform: \"translateY(1px)\" },\n datesLocale: \"en\",\n globalStyles: void 0,\n focusRingStyles: {\n styles: (theme) => ({\n outlineOffset: 2,\n outline: `2px solid ${theme.colors[theme.primaryColor][theme.colorScheme === \"dark\" ? 7 : 5]}`\n }),\n resetStyles: () => ({ outline: \"none\" }),\n inputStyles: (theme) => ({\n outline: \"none\",\n borderColor: theme.colors[theme.primaryColor][typeof theme.primaryShade === \"object\" ? theme.primaryShade[theme.colorScheme] : theme.primaryShade]\n })\n }\n};\nconst DEFAULT_THEME = attachFunctions(_DEFAULT_THEME);\n\nexport { DEFAULT_THEME, MANTINE_COLORS, MANTINE_SIZES, _DEFAULT_THEME };\n//# sourceMappingURL=default-theme.js.map\n","import React from 'react';\nimport { Global } from '@emotion/react';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction GlobalStyles({ theme }) {\n return /* @__PURE__ */ React.createElement(Global, {\n styles: {\n \"*, *::before, *::after\": {\n boxSizing: \"border-box\"\n },\n html: {\n colorScheme: theme.colorScheme === \"dark\" ? \"dark\" : \"light\"\n },\n body: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n lineHeight: theme.lineHeight,\n fontSize: theme.fontSizes.md,\n WebkitFontSmoothing: \"antialiased\",\n MozOsxFontSmoothing: \"grayscale\"\n })\n }\n });\n}\n\nexport { GlobalStyles };\n//# sourceMappingURL=GlobalStyles.js.map\n","import React from 'react';\nimport { Global } from '@emotion/react';\n\nfunction assignSizeVariables(variables, sizes, name) {\n Object.keys(sizes).forEach((size) => {\n variables[`--mantine-${name}-${size}`] = typeof sizes[size] === \"number\" ? `${sizes[size]}px` : sizes[size];\n });\n}\nfunction MantineCssVariables({ theme }) {\n const variables = {\n \"--mantine-color-white\": theme.white,\n \"--mantine-color-black\": theme.black,\n \"--mantine-transition-timing-function\": theme.transitionTimingFunction,\n \"--mantine-line-height\": `${theme.lineHeight}`,\n \"--mantine-font-family\": theme.fontFamily,\n \"--mantine-font-family-monospace\": theme.fontFamilyMonospace,\n \"--mantine-font-family-headings\": theme.headings.fontFamily,\n \"--mantine-heading-font-weight\": `${theme.headings.fontWeight}`\n };\n assignSizeVariables(variables, theme.shadows, \"shadow\");\n assignSizeVariables(variables, theme.fontSizes, \"font-size\");\n assignSizeVariables(variables, theme.radius, \"radius\");\n assignSizeVariables(variables, theme.spacing, \"spacing\");\n Object.keys(theme.colors).forEach((color) => {\n theme.colors[color].forEach((shade, index) => {\n variables[`--mantine-color-${color}-${index}`] = shade;\n });\n });\n const headings = theme.headings.sizes;\n Object.keys(headings).forEach((heading) => {\n variables[`--mantine-${heading}-font-size`] = `${headings[heading].fontSize}px`;\n variables[`--mantine-${heading}-line-height`] = `${headings[heading].lineHeight}`;\n });\n return /* @__PURE__ */ React.createElement(Global, {\n styles: {\n \":root\": variables\n }\n });\n}\n\nexport { MantineCssVariables };\n//# sourceMappingURL=MantineCssVariables.js.map\n","import { attachFunctions } from '../../functions/attach-functions.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction mergeTheme(currentTheme, themeOverride) {\n if (!themeOverride) {\n return currentTheme;\n }\n const result = Object.keys(currentTheme).reduce((acc, key) => {\n if (key === \"headings\" && themeOverride.headings) {\n const sizes = themeOverride.headings.sizes ? Object.keys(currentTheme.headings.sizes).reduce((headingsAcc, h) => {\n headingsAcc[h] = __spreadValues(__spreadValues({}, currentTheme.headings.sizes[h]), themeOverride.headings.sizes[h]);\n return headingsAcc;\n }, {}) : currentTheme.headings.sizes;\n return __spreadProps(__spreadValues({}, acc), {\n headings: __spreadProps(__spreadValues(__spreadValues({}, currentTheme.headings), themeOverride.headings), {\n sizes\n })\n });\n }\n acc[key] = typeof themeOverride[key] === \"object\" ? __spreadValues(__spreadValues({}, currentTheme[key]), themeOverride[key]) : typeof themeOverride[key] === \"number\" || typeof themeOverride[key] === \"boolean\" || typeof themeOverride[key] === \"function\" ? themeOverride[key] : themeOverride[key] || currentTheme[key];\n return acc;\n }, {});\n if (!(result.primaryColor in result.colors)) {\n throw new Error(\"MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more \\u2013 https://mantine.dev/theming/colors/#primary-color\");\n }\n return result;\n}\nfunction mergeThemeWithFunctions(currentTheme, themeOverride) {\n return attachFunctions(mergeTheme(currentTheme, themeOverride));\n}\n\nexport { mergeTheme, mergeThemeWithFunctions };\n//# sourceMappingURL=merge-theme.js.map\n","function filterProps(props) {\n return Object.keys(props).reduce((acc, key) => {\n if (props[key] !== void 0) {\n acc[key] = props[key];\n }\n return acc;\n }, {});\n}\n\nexport { filterProps };\n//# sourceMappingURL=filter-props.js.map\n","import React from 'react';\nimport { Global } from '@emotion/react';\n\nconst styles = {\n html: {\n fontFamily: \"sans-serif\",\n lineHeight: \"1.15\",\n textSizeAdjust: \"100%\"\n },\n body: {\n margin: 0\n },\n \"article, aside, footer, header, nav, section, figcaption, figure, main\": {\n display: \"block\"\n },\n h1: {\n fontSize: \"2em\"\n },\n hr: {\n boxSizing: \"content-box\",\n height: 0,\n overflow: \"visible\"\n },\n pre: {\n fontFamily: \"monospace, monospace\",\n fontSize: \"1em\"\n },\n a: {\n background: \"transparent\",\n textDecorationSkip: \"objects\"\n },\n \"a:active, a:hover\": {\n outlineWidth: 0\n },\n \"abbr[title]\": {\n borderBottom: \"none\",\n textDecoration: \"underline\"\n },\n \"b, strong\": {\n fontWeight: \"bolder\"\n },\n \"code, kbp, samp\": {\n fontFamily: \"monospace, monospace\",\n fontSize: \"1em\"\n },\n dfn: {\n fontStyle: \"italic\"\n },\n mark: {\n backgroundColor: \"#ff0\",\n color: \"#000\"\n },\n small: {\n fontSize: \"80%\"\n },\n \"sub, sup\": {\n fontSize: \"75%\",\n lineHeight: 0,\n position: \"relative\",\n verticalAlign: \"baseline\"\n },\n sup: {\n top: \"-0.5em\"\n },\n sub: {\n bottom: \"-0.25em\"\n },\n \"audio, video\": {\n display: \"inline-block\"\n },\n \"audio:not([controls])\": {\n display: \"none\",\n height: 0\n },\n img: {\n borderStyle: \"none\",\n verticalAlign: \"middle\"\n },\n \"svg:not(:root)\": {\n overflow: \"hidden\"\n },\n \"button, input, optgroup, select, textarea\": {\n fontFamily: \"sans-serif\",\n fontSize: \"100%\",\n lineHeight: \"1.15\",\n margin: 0\n },\n \"button, input\": {\n overflow: \"visible\"\n },\n \"button, select\": {\n textTransform: \"none\"\n },\n \"button, [type=reset], [type=submit]\": {\n WebkitAppearance: \"button\"\n },\n \"button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner\": {\n borderStyle: \"none\",\n padding: 0\n },\n \"button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring\": {\n outline: \"1px dotted ButtonText\"\n },\n legend: {\n boxSizing: \"border-box\",\n color: \"inherit\",\n display: \"table\",\n maxWidth: \"100%\",\n padding: 0,\n whiteSpace: \"normal\"\n },\n progress: {\n display: \"inline-block\",\n verticalAlign: \"baseline\"\n },\n textarea: {\n overflow: \"auto\"\n },\n \"[type=checkbox], [type=radio]\": {\n boxSizing: \"border-box\",\n padding: 0\n },\n \"[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button\": {\n height: \"auto\"\n },\n \"[type=search]\": {\n appearance: \"none\"\n },\n \"[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration\": {\n appearance: \"none\"\n },\n \"::-webkit-file-upload-button\": {\n appearance: \"button\",\n font: \"inherit\"\n },\n \"details, menu\": {\n display: \"block\"\n },\n summary: {\n display: \"list-item\"\n },\n canvas: {\n display: \"inline-block\"\n },\n template: {\n display: \"none\"\n },\n \"[hidden]\": {\n display: \"none\"\n }\n};\nfunction NormalizeCSS() {\n return /* @__PURE__ */ React.createElement(Global, {\n styles\n });\n}\n\nexport { NormalizeCSS };\n//# sourceMappingURL=NormalizeCSS.js.map\n","import React, { createContext, useContext } from 'react';\nimport { ThemeProvider, Global } from '@emotion/react';\nimport { DEFAULT_THEME } from './default-theme.js';\nimport { GlobalStyles } from './GlobalStyles.js';\nimport { MantineCssVariables } from './MantineCssVariables.js';\nimport { mergeThemeWithFunctions } from './utils/merge-theme/merge-theme.js';\nimport { filterProps } from './utils/filter-props/filter-props.js';\nimport { NormalizeCSS } from './NormalizeCSS.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst MantineProviderContext = createContext({\n theme: DEFAULT_THEME\n});\nfunction useMantineTheme() {\n var _a;\n return ((_a = useContext(MantineProviderContext)) == null ? void 0 : _a.theme) || DEFAULT_THEME;\n}\nfunction useMantineProviderStyles(component) {\n const theme = useMantineTheme();\n const getStyles = (name) => {\n var _a, _b;\n return {\n styles: ((_a = theme.components[name]) == null ? void 0 : _a.styles) || {},\n classNames: ((_b = theme.components[name]) == null ? void 0 : _b.classNames) || {}\n };\n };\n if (Array.isArray(component)) {\n return component.map(getStyles);\n }\n return [getStyles(component)];\n}\nfunction useMantineEmotionCache() {\n var _a;\n return (_a = useContext(MantineProviderContext)) == null ? void 0 : _a.emotionCache;\n}\nfunction useComponentDefaultProps(component, defaultProps, props) {\n var _a;\n const theme = useMantineTheme();\n const contextPropsPayload = (_a = theme.components[component]) == null ? void 0 : _a.defaultProps;\n const contextProps = typeof contextPropsPayload === \"function\" ? contextPropsPayload(theme) : contextPropsPayload;\n return __spreadValues(__spreadValues(__spreadValues({}, defaultProps), contextProps), filterProps(props));\n}\nfunction MantineProvider({\n theme,\n emotionCache,\n withNormalizeCSS = false,\n withGlobalStyles = false,\n withCSSVariables = false,\n inherit = false,\n children\n}) {\n const ctx = useContext(MantineProviderContext);\n const mergedTheme = mergeThemeWithFunctions(DEFAULT_THEME, inherit ? __spreadValues(__spreadValues({}, ctx.theme), theme) : theme);\n return /* @__PURE__ */ React.createElement(ThemeProvider, {\n theme: mergedTheme\n }, /* @__PURE__ */ React.createElement(MantineProviderContext.Provider, {\n value: { theme: mergedTheme, emotionCache }\n }, withNormalizeCSS && /* @__PURE__ */ React.createElement(NormalizeCSS, null), withGlobalStyles && /* @__PURE__ */ React.createElement(GlobalStyles, {\n theme: mergedTheme\n }), withCSSVariables && /* @__PURE__ */ React.createElement(MantineCssVariables, {\n theme: mergedTheme\n }), typeof mergedTheme.globalStyles === \"function\" && /* @__PURE__ */ React.createElement(Global, {\n styles: mergedTheme.globalStyles(mergedTheme)\n }), children));\n}\nMantineProvider.displayName = \"@mantine/core/MantineProvider\";\n\nexport { MantineProvider, useComponentDefaultProps, useMantineEmotionCache, useMantineProviderStyles, useMantineTheme };\n//# sourceMappingURL=MantineProvider.js.map\n","const elevations = {\n app: 100,\n modal: 200,\n popover: 300,\n overlay: 400,\n max: 9999\n};\nfunction getDefaultZIndex(level) {\n return elevations[level];\n}\n\nexport { getDefaultZIndex };\n//# sourceMappingURL=get-default-z-index.js.map\n","import { useRef } from 'react';\n\nfunction useGuaranteedMemo(fn, deps) {\n const ref = useRef();\n if (!ref.current || deps.length !== ref.current.prevDeps.length || ref.current.prevDeps.map((v, i) => v === deps[i]).indexOf(false) >= 0) {\n ref.current = {\n v: fn(),\n prevDeps: [...deps]\n };\n }\n return ref.current.v;\n}\n\nexport { useGuaranteedMemo };\n//# sourceMappingURL=use-guaranteed-memo.js.map\n","import createCache from '@emotion/cache';\n\nconst defaultMantineEmotionCache = createCache({ key: \"mantine\", prepend: true });\n\nexport { defaultMantineEmotionCache };\n//# sourceMappingURL=default-emotion-cache.js.map\n","import { defaultMantineEmotionCache } from './default-emotion-cache.js';\nimport { useMantineEmotionCache } from '../theme/MantineProvider.js';\n\nfunction useEmotionCache() {\n const cache = useMantineEmotionCache();\n return cache || defaultMantineEmotionCache;\n}\n\nexport { useEmotionCache };\n//# sourceMappingURL=use-emotion-cache.js.map\n","import clsx from 'clsx';\nimport { serializeStyles } from '@emotion/serialize';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useGuaranteedMemo } from './utils/use-guaranteed-memo/use-guaranteed-memo.js';\nimport { useEmotionCache } from './use-emotion-cache.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst refPropertyName = \"ref\";\nfunction getRef(args) {\n let ref;\n if (args.length !== 1) {\n return { args, ref };\n }\n const [arg] = args;\n if (!(arg instanceof Object)) {\n return { args, ref };\n }\n if (!(refPropertyName in arg)) {\n return { args, ref };\n }\n ref = arg[refPropertyName];\n const argCopy = __spreadValues({}, arg);\n delete argCopy[refPropertyName];\n return { args: [argCopy], ref };\n}\nconst { cssFactory } = (() => {\n function merge(registered, css, className) {\n const registeredStyles = [];\n const rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n if (registeredStyles.length < 2) {\n return className;\n }\n return rawClassName + css(registeredStyles);\n }\n function _cssFactory(params) {\n const { cache } = params;\n const css = (...styles) => {\n const { ref, args } = getRef(styles);\n const serialized = serializeStyles(args, cache.registered);\n insertStyles(cache, serialized, false);\n return `${cache.key}-${serialized.name}${ref === void 0 ? \"\" : ` ${ref}`}`;\n };\n const cx = (...args) => merge(cache.registered, css, clsx(args));\n return { css, cx };\n }\n return { cssFactory: _cssFactory };\n})();\nfunction useCss() {\n const cache = useEmotionCache();\n return useGuaranteedMemo(() => cssFactory({ cache }), [cache]);\n}\n\nexport { cssFactory, useCss };\n//# sourceMappingURL=use-css.js.map\n","function mergeClassNames({\n cx,\n classes,\n context,\n classNames,\n name,\n cache\n}) {\n const contextClassNames = context.reduce((acc, item) => {\n Object.keys(item.classNames).forEach((key) => {\n if (typeof acc[key] !== \"string\") {\n acc[key] = `${item.classNames[key]}`;\n } else {\n acc[key] = `${acc[key]} ${item.classNames[key]}`;\n }\n });\n return acc;\n }, {});\n return Object.keys(classes).reduce((acc, className) => {\n acc[className] = cx(classes[className], contextClassNames[className], classNames != null && classNames[className], Array.isArray(name) ? name.filter(Boolean).map((part) => `${(cache == null ? void 0 : cache.key) || \"mantine\"}-${part}-${className}`).join(\" \") : name ? `${(cache == null ? void 0 : cache.key) || \"mantine\"}-${name}-${className}` : null);\n return acc;\n }, {});\n}\n\nexport { mergeClassNames };\n//# sourceMappingURL=merge-class-names.js.map\n","import { useCss } from './use-css.js';\nimport { useMantineTheme, useMantineProviderStyles, useMantineEmotionCache } from '../theme/MantineProvider.js';\nimport { mergeClassNames } from './utils/merge-class-names/merge-class-names.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction createRef(refName) {\n return `__mantine-ref-${refName || \"\"}`;\n}\nfunction getStyles(styles, theme, params) {\n const extractStyles = (stylesPartial) => typeof stylesPartial === \"function\" ? stylesPartial(theme, params || {}) : stylesPartial || {};\n if (Array.isArray(styles)) {\n return styles.map((item) => extractStyles(item.styles)).reduce((acc, item) => {\n Object.keys(item).forEach((key) => {\n if (!acc[key]) {\n acc[key] = __spreadValues({}, item[key]);\n } else {\n acc[key] = __spreadValues(__spreadValues({}, acc[key]), item[key]);\n }\n });\n return acc;\n }, {});\n }\n return extractStyles(styles);\n}\nfunction createStyles(input) {\n const getCssObject = typeof input === \"function\" ? input : () => input;\n function useStyles(params, options) {\n const theme = useMantineTheme();\n const context = useMantineProviderStyles(options == null ? void 0 : options.name);\n const cache = useMantineEmotionCache();\n const { css, cx } = useCss();\n const cssObject = getCssObject(theme, params, createRef);\n const componentStyles = getStyles(options == null ? void 0 : options.styles, theme, params);\n const providerStyles = getStyles(context, theme, params);\n const classes = Object.fromEntries(Object.keys(cssObject).map((key) => {\n const mergedStyles = cx({ [css(cssObject[key])]: !(options == null ? void 0 : options.unstyled) }, css(providerStyles[key]), css(componentStyles[key]));\n return [key, mergedStyles];\n }));\n return {\n classes: mergeClassNames({\n cx,\n classes,\n context,\n classNames: options == null ? void 0 : options.classNames,\n name: options == null ? void 0 : options.name,\n cache\n }),\n cx,\n theme\n };\n }\n return useStyles;\n}\n\nexport { createStyles };\n//# sourceMappingURL=create-styles.js.map\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst popIn = {\n in: { opacity: 1, transform: \"scale(1)\" },\n out: { opacity: 0, transform: \"scale(.9) translateY(10px)\" },\n transitionProperty: \"transform, opacity\"\n};\nconst transitions = {\n fade: {\n in: { opacity: 1 },\n out: { opacity: 0 },\n transitionProperty: \"opacity\"\n },\n scale: {\n in: { opacity: 1, transform: \"scale(1)\" },\n out: { opacity: 0, transform: \"scale(0)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"scale-y\": {\n in: { opacity: 1, transform: \"scaleY(1)\" },\n out: { opacity: 0, transform: \"scaleY(0)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"scale-x\": {\n in: { opacity: 1, transform: \"scaleX(1)\" },\n out: { opacity: 0, transform: \"scaleX(0)\" },\n common: { transformOrigin: \"left\" },\n transitionProperty: \"transform, opacity\"\n },\n \"skew-up\": {\n in: { opacity: 1, transform: \"translateY(0) skew(0deg, 0deg)\" },\n out: { opacity: 0, transform: \"translateY(-20px) skew(-10deg, -5deg)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"skew-down\": {\n in: { opacity: 1, transform: \"translateY(0) skew(0deg, 0deg)\" },\n out: { opacity: 0, transform: \"translateY(20px) skew(-10deg, -5deg)\" },\n common: { transformOrigin: \"bottom\" },\n transitionProperty: \"transform, opacity\"\n },\n \"rotate-left\": {\n in: { opacity: 1, transform: \"translateY(0) rotate(0deg)\" },\n out: { opacity: 0, transform: \"translateY(20px) rotate(-5deg)\" },\n common: { transformOrigin: \"bottom\" },\n transitionProperty: \"transform, opacity\"\n },\n \"rotate-right\": {\n in: { opacity: 1, transform: \"translateY(0) rotate(0deg)\" },\n out: { opacity: 0, transform: \"translateY(20px) rotate(5deg)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-down\": {\n in: { opacity: 1, transform: \"translateY(0)\" },\n out: { opacity: 0, transform: \"translateY(-100%)\" },\n common: { transformOrigin: \"top\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-up\": {\n in: { opacity: 1, transform: \"translateY(0)\" },\n out: { opacity: 0, transform: \"translateY(100%)\" },\n common: { transformOrigin: \"bottom\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-left\": {\n in: { opacity: 1, transform: \"translateX(0)\" },\n out: { opacity: 0, transform: \"translateX(100%)\" },\n common: { transformOrigin: \"left\" },\n transitionProperty: \"transform, opacity\"\n },\n \"slide-right\": {\n in: { opacity: 1, transform: \"translateX(0)\" },\n out: { opacity: 0, transform: \"translateX(-100%)\" },\n common: { transformOrigin: \"right\" },\n transitionProperty: \"transform, opacity\"\n },\n pop: __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"center center\" }\n }),\n \"pop-bottom-left\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"bottom left\" }\n }),\n \"pop-bottom-right\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"bottom right\" }\n }),\n \"pop-top-left\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"top left\" }\n }),\n \"pop-top-right\": __spreadProps(__spreadValues({}, popIn), {\n common: { transformOrigin: \"top right\" }\n })\n};\n\nexport { transitions };\n//# sourceMappingURL=transitions.js.map\n","import { useRef, useEffect } from 'react';\n\nconst DEFAULT_EVENTS = [\"mousedown\", \"touchstart\"];\nfunction useClickOutside(handler, events, nodes) {\n const ref = useRef();\n useEffect(() => {\n const listener = (event) => {\n const { target } = event != null ? event : {};\n if (Array.isArray(nodes)) {\n const shouldIgnore = (target == null ? void 0 : target.hasAttribute(\"data-ignore-outside-clicks\")) || !document.body.contains(target) && target.tagName !== \"HTML\";\n const shouldTrigger = nodes.every((node) => !!node && !event.composedPath().includes(node));\n shouldTrigger && !shouldIgnore && handler();\n } else if (ref.current && !ref.current.contains(target)) {\n handler();\n }\n };\n (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener));\n return () => {\n (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));\n };\n }, [ref, handler, nodes]);\n return ref;\n}\n\nexport { useClickOutside };\n//# sourceMappingURL=use-click-outside.js.map\n","import { useState, useRef, useEffect } from 'react';\n\nfunction attachMediaListener(query, callback) {\n try {\n query.addEventListener(\"change\", callback);\n return () => query.removeEventListener(\"change\", callback);\n } catch (e) {\n query.addListener(callback);\n return () => query.removeListener(callback);\n }\n}\nfunction getInitialValue(query, initialValue) {\n if (typeof initialValue === \"boolean\") {\n return initialValue;\n }\n if (typeof window !== \"undefined\" && \"matchMedia\" in window) {\n return window.matchMedia(query).matches;\n }\n return false;\n}\nfunction useMediaQuery(query, initialValue, { getInitialValueInEffect } = {\n getInitialValueInEffect: true\n}) {\n const [matches, setMatches] = useState(getInitialValueInEffect ? initialValue : getInitialValue(query, initialValue));\n const queryRef = useRef();\n useEffect(() => {\n if (\"matchMedia\" in window) {\n queryRef.current = window.matchMedia(query);\n setMatches(queryRef.current.matches);\n return attachMediaListener(queryRef.current, (event) => setMatches(event.matches));\n }\n return void 0;\n }, [query]);\n return matches;\n}\n\nexport { useMediaQuery };\n//# sourceMappingURL=use-media-query.js.map\n","import { useLayoutEffect, useEffect } from 'react';\n\nconst useIsomorphicEffect = typeof document !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicEffect };\n//# sourceMappingURL=use-isomorphic-effect.js.map\n","import { useRef, useEffect } from 'react';\n\nfunction useDidUpdate(fn, dependencies) {\n const mounted = useRef(false);\n useEffect(() => () => {\n mounted.current = false;\n }, []);\n useEffect(() => {\n if (mounted.current) {\n return fn();\n }\n mounted.current = true;\n return void 0;\n }, dependencies);\n}\n\nexport { useDidUpdate };\n//# sourceMappingURL=use-did-update.js.map\n","import { useRef } from 'react';\nimport { useDidUpdate } from '../use-did-update/use-did-update.js';\n\nfunction useFocusReturn({ opened, shouldReturnFocus = true }) {\n const lastActiveElement = useRef();\n const returnFocus = () => {\n var _a;\n if (lastActiveElement.current && \"focus\" in lastActiveElement.current && typeof lastActiveElement.current.focus === \"function\") {\n (_a = lastActiveElement.current) == null ? void 0 : _a.focus({ preventScroll: true });\n }\n };\n useDidUpdate(() => {\n let timeout = -1;\n const clearFocusTimeout = (event) => {\n if (event.key === \"Tab\") {\n window.clearTimeout(timeout);\n }\n };\n document.addEventListener(\"keydown\", clearFocusTimeout);\n if (opened) {\n lastActiveElement.current = document.activeElement;\n } else if (shouldReturnFocus) {\n timeout = window.setTimeout(returnFocus, 10);\n }\n return () => {\n window.clearTimeout(timeout);\n document.removeEventListener(\"keydown\", clearFocusTimeout);\n };\n }, [opened, shouldReturnFocus]);\n return returnFocus;\n}\n\nexport { useFocusReturn };\n//# sourceMappingURL=use-focus-return.js.map\n","const TABBABLE_NODES = /input|select|textarea|button|object/;\nconst FOCUS_SELECTOR = \"a, input, select, textarea, button, object, [tabindex]\";\nfunction hidden(element) {\n if (process.env.NODE_ENV === \"test\") {\n return false;\n }\n return element.style.display === \"none\";\n}\nfunction visible(element) {\n const isHidden = element.getAttribute(\"aria-hidden\") || element.getAttribute(\"hidden\") || element.getAttribute(\"type\") === \"hidden\";\n if (isHidden) {\n return false;\n }\n let parentElement = element;\n while (parentElement) {\n if (parentElement === document.body || parentElement.nodeType === 11) {\n break;\n }\n if (hidden(parentElement)) {\n return false;\n }\n parentElement = parentElement.parentNode;\n }\n return true;\n}\nfunction getElementTabIndex(element) {\n let tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) {\n tabIndex = void 0;\n }\n return parseInt(tabIndex, 10);\n}\nfunction focusable(element) {\n const nodeName = element.nodeName.toLowerCase();\n const isTabIndexNotNaN = !Number.isNaN(getElementTabIndex(element));\n const res = TABBABLE_NODES.test(nodeName) && !element.disabled || (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\nfunction tabbable(element) {\n const tabIndex = getElementTabIndex(element);\n const isTabIndexNaN = Number.isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\nfunction findTabbableDescendants(element) {\n return Array.from(element.querySelectorAll(FOCUS_SELECTOR)).filter(tabbable);\n}\n\nexport { FOCUS_SELECTOR, findTabbableDescendants, focusable, tabbable };\n//# sourceMappingURL=tabbable.js.map\n","import { findTabbableDescendants } from './tabbable.js';\n\nfunction scopeTab(node, event) {\n const tabbable = findTabbableDescendants(node);\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n const finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n const root = node.getRootNode();\n const leavingFinalTabbable = finalTabbable === root.activeElement || node === root.activeElement;\n if (!leavingFinalTabbable) {\n return;\n }\n event.preventDefault();\n const target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n if (target) {\n target.focus();\n }\n}\n\nexport { scopeTab };\n//# sourceMappingURL=scope-tab.js.map\n","function createAriaHider(containerNode, selector = \"body > :not(script)\") {\n const rootNodes = Array.from(document.querySelectorAll(selector)).map((node) => {\n var _a;\n if (((_a = node == null ? void 0 : node.shadowRoot) == null ? void 0 : _a.contains(containerNode)) || node.contains(containerNode)) {\n return void 0;\n }\n const ariaHidden = node.getAttribute(\"aria-hidden\");\n if (ariaHidden === null || ariaHidden === \"false\") {\n node.setAttribute(\"aria-hidden\", \"true\");\n }\n return { node, ariaHidden };\n });\n return () => {\n rootNodes.forEach((item) => {\n if (!item) {\n return;\n }\n if (item.ariaHidden === null) {\n item.node.removeAttribute(\"aria-hidden\");\n } else {\n item.node.setAttribute(\"aria-hidden\", item.ariaHidden);\n }\n });\n };\n}\n\nexport { createAriaHider };\n//# sourceMappingURL=create-aria-hider.js.map\n","import { useRef, useCallback, useEffect } from 'react';\nimport { FOCUS_SELECTOR, tabbable, focusable } from './tabbable.js';\nimport { scopeTab } from './scope-tab.js';\nimport { createAriaHider } from './create-aria-hider.js';\n\nfunction useFocusTrap(active = true) {\n const ref = useRef();\n const restoreAria = useRef(null);\n const setRef = useCallback((node) => {\n if (!active) {\n return;\n }\n if (node === null) {\n if (restoreAria.current) {\n restoreAria.current();\n restoreAria.current = null;\n }\n return;\n }\n restoreAria.current = createAriaHider(node);\n if (ref.current === node) {\n return;\n }\n if (node) {\n const processNode = () => {\n let focusElement = node.querySelector(\"[data-autofocus]\");\n if (!focusElement) {\n const children = Array.from(node.querySelectorAll(FOCUS_SELECTOR));\n focusElement = children.find(tabbable) || children.find(focusable) || null;\n if (!focusElement && focusable(node))\n focusElement = node;\n }\n if (focusElement) {\n focusElement.focus({ preventScroll: true });\n } else if (process.env.NODE_ENV === \"development\") {\n console.warn(\"[@mantine/hooks/use-focus-trap] Failed to find focusable element within provided node\", node);\n }\n };\n setTimeout(() => {\n if (node.getRootNode()) {\n processNode();\n } else if (process.env.NODE_ENV === \"development\") {\n console.warn(\"[@mantine/hooks/use-focus-trap] Ref node is not part of the dom\", node);\n }\n });\n ref.current = node;\n } else {\n ref.current = null;\n }\n }, [active]);\n useEffect(() => {\n if (!active) {\n return void 0;\n }\n const handleKeyDown = (event) => {\n if (event.key === \"Tab\" && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n if (restoreAria.current) {\n restoreAria.current();\n }\n };\n }, [active]);\n return setRef;\n}\n\nexport { useFocusTrap };\n//# sourceMappingURL=use-focus-trap.js.map\n","import React, { useState } from 'react';\nimport { useIsomorphicEffect } from '../use-isomorphic-effect/use-isomorphic-effect.js';\n\nconst randomId = () => `mantine-${Math.random().toString(36).slice(2, 11)}`;\nconst useReactId = React[\"useId\".toString()] || (() => void 0);\nfunction useClientId() {\n const [uuid, setUuid] = useState(\"\");\n useIsomorphicEffect(() => {\n setUuid(randomId());\n }, []);\n return uuid;\n}\nfunction getReactId() {\n const id = useReactId();\n return id ? `mantine-${id.replace(/:/g, \"\")}` : \"\";\n}\nfunction useId(staticId) {\n return typeof staticId === \"string\" ? staticId : getReactId() || useClientId();\n}\n\nexport { useId };\n//# sourceMappingURL=use-id.js.map\n","function assignRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n ref.current = value;\n }\n}\n\nexport { assignRef };\n//# sourceMappingURL=assign-ref.js.map\n","import { useCallback } from 'react';\nimport { assignRef } from '../utils/assign-ref/assign-ref.js';\n\nfunction mergeRefs(...refs) {\n return (node) => {\n refs.forEach((ref) => assignRef(ref, node));\n };\n}\nfunction useMergedRef(...refs) {\n return useCallback(mergeRefs(...refs), refs);\n}\n\nexport { mergeRefs, useMergedRef };\n//# sourceMappingURL=use-merged-ref.js.map\n","import { useState } from 'react';\n\nfunction useUncontrolled({\n value,\n defaultValue,\n finalValue,\n onChange = () => {\n }\n}) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue !== void 0 ? defaultValue : finalValue);\n const handleUncontrolledChange = (val) => {\n setUncontrolledValue(val);\n onChange == null ? void 0 : onChange(val);\n };\n if (value !== void 0) {\n return [value, onChange, true];\n }\n return [uncontrolledValue, handleUncontrolledChange, false];\n}\n\nexport { useUncontrolled };\n//# sourceMappingURL=use-uncontrolled.js.map\n","import { useMediaQuery } from '../use-media-query/use-media-query.js';\n\nfunction useReducedMotion(initialValue, options) {\n return useMediaQuery(\"(prefers-reduced-motion: reduce)\", initialValue, options);\n}\n\nexport { useReducedMotion };\n//# sourceMappingURL=use-reduced-motion.js.map\n","import { useState, useRef, useCallback, useEffect } from 'react';\n\nfunction useHover() {\n const [hovered, setHovered] = useState(false);\n const ref = useRef(null);\n const onMouseEnter = useCallback(() => setHovered(true), []);\n const onMouseLeave = useCallback(() => setHovered(false), []);\n useEffect(() => {\n if (ref.current) {\n ref.current.addEventListener(\"mouseenter\", onMouseEnter);\n ref.current.addEventListener(\"mouseleave\", onMouseLeave);\n return () => {\n var _a, _b;\n (_a = ref.current) == null ? void 0 : _a.removeEventListener(\"mouseenter\", onMouseEnter);\n (_b = ref.current) == null ? void 0 : _b.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }\n return void 0;\n }, []);\n return { ref, hovered };\n}\n\nexport { useHover };\n//# sourceMappingURL=use-hover.js.map\n","const ACCORDION_ERRORS = {\n context: \"Accordion component was not found in the tree\",\n itemContext: \"Accordion.Item component was not found in the tree\",\n value: \"Accordion.Item component was rendered with invalid value or without value\"\n};\n\nexport { ACCORDION_ERRORS };\n//# sourceMappingURL=Accordion.errors.js.map\n","import { createSafeContext } from '@mantine/utils';\nimport { ACCORDION_ERRORS } from './Accordion.errors.js';\n\nconst [AccordionContextProvider, useAccordionContext] = createSafeContext(ACCORDION_ERRORS.context);\n\nexport { AccordionContextProvider, useAccordionContext };\n//# sourceMappingURL=Accordion.context.js.map\n","import React from 'react';\nimport { getSafeId } from '@mantine/utils';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport { AccordionContextProvider } from './Accordion.context.js';\nimport { ACCORDION_ERRORS } from './Accordion.errors.js';\n\nfunction AccordionProvider({\n children,\n multiple,\n value,\n defaultValue,\n onChange,\n id,\n loop,\n transitionDuration,\n disableChevronRotation,\n chevronPosition,\n chevronSize,\n order,\n chevron,\n variant,\n radius,\n classNames,\n styles,\n unstyled\n}) {\n const uid = useId(id);\n const [_value, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: multiple ? [] : null,\n onChange\n });\n const isItemActive = (itemValue) => Array.isArray(_value) ? _value.includes(itemValue) : itemValue === _value;\n const handleItemChange = (itemValue) => {\n const nextValue = Array.isArray(_value) ? _value.includes(itemValue) ? _value.filter((selectedValue) => selectedValue !== itemValue) : [..._value, itemValue] : itemValue === _value ? null : itemValue;\n handleChange(nextValue);\n };\n return /* @__PURE__ */ React.createElement(AccordionContextProvider, {\n value: {\n isItemActive,\n onChange: handleItemChange,\n getControlId: getSafeId(`${uid}-control`, ACCORDION_ERRORS.value),\n getRegionId: getSafeId(`${uid}-panel`, ACCORDION_ERRORS.value),\n transitionDuration,\n disableChevronRotation,\n chevronPosition,\n chevronSize,\n order,\n chevron,\n loop,\n variant,\n radius,\n classNames,\n styles,\n unstyled\n }\n }, children);\n}\n\nexport { AccordionProvider };\n//# sourceMappingURL=AccordionProvider.js.map\n","import { createSafeContext } from '@mantine/utils';\nimport { ACCORDION_ERRORS } from './Accordion.errors.js';\n\nconst [AccordionItemContextProvider, useAccordionItemContext] = createSafeContext(ACCORDION_ERRORS.itemContext);\n\nexport { AccordionItemContextProvider, useAccordionItemContext };\n//# sourceMappingURL=AccordionItem.context.js.map\n","import { createStyles } from '@mantine/styles';\n\nfunction getVariantStyles(theme, { variant, radius }) {\n const borderColor = theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[3];\n const filledColor = theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[0];\n const borderRadius = theme.fn.radius(radius);\n if (variant === \"default\") {\n return {\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n borderBottom: `1px solid ${borderColor}`\n };\n }\n if (variant === \"contained\") {\n return {\n border: `1px solid ${borderColor}`,\n transition: \"background-color 150ms ease\",\n \"&[data-active]\": {\n backgroundColor: filledColor\n },\n \"&:first-of-type\": {\n borderTopRightRadius: borderRadius,\n borderTopLeftRadius: borderRadius,\n \"& > [data-accordion-control]\": {\n borderTopRightRadius: borderRadius,\n borderTopLeftRadius: borderRadius\n }\n },\n \"&:last-of-type\": {\n borderBottomRightRadius: borderRadius,\n borderBottomLeftRadius: borderRadius,\n \"& > [data-accordion-control]\": {\n borderBottomRightRadius: borderRadius,\n borderBottomLeftRadius: borderRadius\n }\n },\n \"& + &\": {\n borderTop: 0\n }\n };\n }\n if (variant === \"filled\") {\n return {\n borderRadius,\n \"&[data-active]\": {\n backgroundColor: filledColor\n }\n };\n }\n if (variant === \"separated\") {\n return {\n borderRadius,\n backgroundColor: filledColor,\n border: \"1px solid transparent\",\n transition: \"background-color 150ms ease\",\n \"& + &\": {\n marginTop: theme.spacing.md\n },\n \"&[data-active]\": {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n borderColor\n }\n };\n }\n return {};\n}\nvar useStyles = createStyles((theme, params) => ({\n item: getVariantStyles(theme, params)\n}));\n\nexport default useStyles;\n//# sourceMappingURL=AccordionItem.styles.js.map\n","import { filterProps } from '@mantine/styles';\n\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction extractSystemStyles(others) {\n const _a = others, {\n m,\n mx,\n my,\n mt,\n mb,\n ml,\n mr,\n p,\n px,\n py,\n pt,\n pb,\n pl,\n pr,\n bg,\n c,\n opacity,\n ff,\n fz,\n fw,\n lts,\n ta,\n lh,\n fs,\n tt,\n td,\n w,\n miw,\n maw,\n h,\n mih,\n mah,\n bgsz,\n bgp,\n bgr,\n bga,\n pos,\n top,\n left,\n bottom,\n right,\n inset,\n display\n } = _a, rest = __objRest(_a, [\n \"m\",\n \"mx\",\n \"my\",\n \"mt\",\n \"mb\",\n \"ml\",\n \"mr\",\n \"p\",\n \"px\",\n \"py\",\n \"pt\",\n \"pb\",\n \"pl\",\n \"pr\",\n \"bg\",\n \"c\",\n \"opacity\",\n \"ff\",\n \"fz\",\n \"fw\",\n \"lts\",\n \"ta\",\n \"lh\",\n \"fs\",\n \"tt\",\n \"td\",\n \"w\",\n \"miw\",\n \"maw\",\n \"h\",\n \"mih\",\n \"mah\",\n \"bgsz\",\n \"bgp\",\n \"bgr\",\n \"bga\",\n \"pos\",\n \"top\",\n \"left\",\n \"bottom\",\n \"right\",\n \"inset\",\n \"display\"\n ]);\n const systemStyles = filterProps({\n m,\n mx,\n my,\n mt,\n mb,\n ml,\n mr,\n p,\n px,\n py,\n pt,\n pb,\n pl,\n pr,\n bg,\n c,\n opacity,\n ff,\n fz,\n fw,\n lts,\n ta,\n lh,\n fs,\n tt,\n td,\n w,\n miw,\n maw,\n h,\n mih,\n mah,\n bgsz,\n bgp,\n bgr,\n bga,\n pos,\n top,\n left,\n bottom,\n right,\n inset,\n display\n });\n return { systemStyles, rest };\n}\n\nexport { extractSystemStyles };\n//# sourceMappingURL=extract-system-styles.js.map\n","function getSortedKeys(value, theme) {\n const sorted = Object.keys(value).filter((breakpoint) => breakpoint !== \"base\").sort((a, b) => theme.fn.size({ size: a, sizes: theme.breakpoints }) - theme.fn.size({ size: b, sizes: theme.breakpoints }));\n return \"base\" in value ? [\"base\", ...sorted] : sorted;\n}\nfunction getResponsiveValue({ value, theme, getValue, property }) {\n if (value == null) {\n return void 0;\n }\n if (typeof value === \"object\") {\n const result = getSortedKeys(value, theme).reduce((acc, breakpointKey) => {\n if (breakpointKey === \"base\" && value.base !== void 0) {\n const baseValue = getValue(value.base, theme);\n if (Array.isArray(property)) {\n property.forEach((prop) => {\n acc[prop] = baseValue;\n });\n return acc;\n }\n acc[property] = baseValue;\n return acc;\n }\n const breakpointValue = getValue(value[breakpointKey], theme);\n if (Array.isArray(property)) {\n acc[theme.fn.largerThan(breakpointKey)] = {};\n property.forEach((prop) => {\n acc[theme.fn.largerThan(breakpointKey)][prop] = breakpointValue;\n });\n return acc;\n }\n acc[theme.fn.largerThan(breakpointKey)] = {\n [property]: breakpointValue\n };\n return acc;\n }, {});\n return result;\n }\n const cssValue = getValue(value, theme);\n if (Array.isArray(property)) {\n return property.reduce((acc, prop) => {\n acc[prop] = cssValue;\n return acc;\n }, {});\n }\n return { [property]: cssValue };\n}\n\nexport { getResponsiveValue };\n//# sourceMappingURL=get-responsive-value.js.map\n","function getColorValue(color, theme) {\n if (color === \"dimmed\") {\n return theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6];\n }\n return theme.fn.variant({ variant: \"filled\", color, primaryFallback: false }).background;\n}\n\nexport { getColorValue };\n//# sourceMappingURL=get-color-value.js.map\n","function getDefaultValue(value) {\n return value;\n}\n\nexport { getDefaultValue };\n//# sourceMappingURL=get-default-value.js.map\n","function getFontSizeValue(size, theme) {\n return theme.fn.size({ size, sizes: theme.fontSizes });\n}\n\nexport { getFontSizeValue };\n//# sourceMappingURL=get-font-size-value.js.map\n","const NEGATIVE_VALUES = [\"-xs\", \"-sm\", \"-md\", \"-lg\", \"-xl\"];\nfunction getSpacingValue(size, theme) {\n if (NEGATIVE_VALUES.includes(size)) {\n return theme.fn.size({ size: size.replace(\"-\", \"\"), sizes: theme.spacing }) * -1;\n }\n return theme.fn.size({ size, sizes: theme.spacing });\n}\n\nexport { getSpacingValue };\n//# sourceMappingURL=get-spacing-value.js.map\n","import { getColorValue } from './get-color-value.js';\nimport { getDefaultValue } from './get-default-value.js';\nimport { getFontSizeValue } from './get-font-size-value.js';\nimport { getSpacingValue } from './get-spacing-value.js';\n\nconst valueGetters = {\n color: getColorValue,\n default: getDefaultValue,\n fontSize: getFontSizeValue,\n spacing: getSpacingValue\n};\n\nexport { valueGetters };\n//# sourceMappingURL=value-getters.js.map\n","const SYSTEM_PROPS = {\n m: { type: \"spacing\", property: \"margin\" },\n mt: { type: \"spacing\", property: \"marginTop\" },\n mb: { type: \"spacing\", property: \"marginBottom\" },\n ml: { type: \"spacing\", property: \"marginLeft\" },\n mr: { type: \"spacing\", property: \"marginRight\" },\n mx: { type: \"spacing\", property: [\"marginRight\", \"marginLeft\"] },\n my: { type: \"spacing\", property: [\"marginTop\", \"marginBottom\"] },\n p: { type: \"spacing\", property: \"padding\" },\n pt: { type: \"spacing\", property: \"paddingTop\" },\n pb: { type: \"spacing\", property: \"paddingBottom\" },\n pl: { type: \"spacing\", property: \"paddingLeft\" },\n pr: { type: \"spacing\", property: \"paddingRight\" },\n px: { type: \"spacing\", property: [\"paddingRight\", \"paddingLeft\"] },\n py: { type: \"spacing\", property: [\"paddingTop\", \"paddingBottom\"] },\n bg: { type: \"color\", property: \"background\" },\n c: { type: \"color\", property: \"color\" },\n opacity: { type: \"default\", property: \"opacity\" },\n ff: { type: \"default\", property: \"fontFamily\" },\n fz: { type: \"fontSize\", property: \"fontSize\" },\n fw: { type: \"default\", property: \"fontWeight\" },\n lts: { type: \"default\", property: \"letterSpacing\" },\n ta: { type: \"default\", property: \"textAlign\" },\n lh: { type: \"default\", property: \"lineHeight\" },\n fs: { type: \"default\", property: \"fontStyle\" },\n tt: { type: \"default\", property: \"textTransform\" },\n td: { type: \"default\", property: \"textDecoration\" },\n w: { type: \"spacing\", property: \"width\" },\n miw: { type: \"spacing\", property: \"minWidth\" },\n maw: { type: \"spacing\", property: \"maxWidth\" },\n h: { type: \"spacing\", property: \"height\" },\n mih: { type: \"spacing\", property: \"minHeight\" },\n mah: { type: \"spacing\", property: \"maxHeight\" },\n bgsz: { type: \"default\", property: \"background-size\" },\n bgp: { type: \"default\", property: \"background-position\" },\n bgr: { type: \"default\", property: \"background-repeat\" },\n bga: { type: \"default\", property: \"background-attachment\" },\n pos: { type: \"default\", property: \"position\" },\n top: { type: \"default\", property: \"top\" },\n left: { type: \"default\", property: \"left\" },\n bottom: { type: \"default\", property: \"bottom\" },\n right: { type: \"default\", property: \"right\" },\n inset: { type: \"default\", property: \"inset\" },\n display: { type: \"default\", property: \"display\" }\n};\n\nexport { SYSTEM_PROPS };\n//# sourceMappingURL=system-props.js.map\n","import { getResponsiveValue } from '../get-responsive-value/get-responsive-value.js';\nimport { valueGetters } from '../value-getters/value-getters.js';\nimport { SYSTEM_PROPS } from '../system-props/system-props.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction getSystemStyles(systemStyles, theme, systemProps = SYSTEM_PROPS) {\n const styles = Object.keys(systemProps).reduce((acc, systemProp) => {\n if (systemProp in systemStyles && systemStyles[systemProp] !== void 0) {\n acc.push(getResponsiveValue({\n value: systemStyles[systemProp],\n getValue: valueGetters[systemProps[systemProp].type],\n property: systemProps[systemProp].property,\n theme\n }));\n }\n return acc;\n }, []);\n return styles.reduce((acc, stylesPartial) => {\n Object.keys(stylesPartial).forEach((property) => {\n if (typeof stylesPartial[property] === \"object\" && stylesPartial[property] !== null) {\n if (!(property in acc)) {\n acc[property] = stylesPartial[property];\n } else {\n acc[property] = __spreadValues(__spreadValues({}, acc[property]), stylesPartial[property]);\n }\n } else {\n acc[property] = stylesPartial[property];\n }\n });\n return acc;\n }, {});\n}\n\nexport { getSystemStyles };\n//# sourceMappingURL=get-system-styles.js.map\n","import { useMantineTheme, useCss } from '@mantine/styles';\nimport { getSystemStyles } from '../style-system-props/get-system-styles/get-system-styles.js';\n\nfunction extractSx(sx, theme) {\n return typeof sx === \"function\" ? sx(theme) : sx;\n}\nfunction useSx(sx, systemProps, className) {\n const theme = useMantineTheme();\n const { css, cx } = useCss();\n if (Array.isArray(sx)) {\n return cx(className, css(getSystemStyles(systemProps, theme)), sx.map((partial) => css(extractSx(partial, theme))));\n }\n return cx(className, css(extractSx(sx, theme)), css(getSystemStyles(systemProps, theme)));\n}\n\nexport { useSx };\n//# sourceMappingURL=use-sx.js.map\n","import React, { forwardRef } from 'react';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { extractSystemStyles } from './style-system-props/extract-system-styles/extract-system-styles.js';\nimport { useSx } from './use-sx/use-sx.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst _Box = forwardRef((_a, ref) => {\n var _b = _a, { className, component, style, sx } = _b, others = __objRest(_b, [\"className\", \"component\", \"style\", \"sx\"]);\n const { systemStyles, rest } = extractSystemStyles(others);\n const Element = component || \"div\";\n return /* @__PURE__ */ React.createElement(Element, __spreadValues({\n ref,\n className: useSx(sx, systemStyles, className),\n style\n }, rest));\n});\n_Box.displayName = \"@mantine/core/Box\";\nconst Box = createPolymorphicComponent(_Box);\n\nexport { Box, _Box };\n//# sourceMappingURL=Box.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { AccordionItemContextProvider } from '../AccordionItem.context.js';\nimport useStyles from './AccordionItem.styles.js';\nimport { useAccordionContext } from '../Accordion.context.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst AccordionItem = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"AccordionItem\", defaultProps, props), { children, className, value } = _a, others = __objRest(_a, [\"children\", \"className\", \"value\"]);\n const ctx = useAccordionContext();\n const { classes, cx } = useStyles({ variant: ctx.variant, radius: ctx.radius }, { name: \"Accordion\", classNames: ctx.classNames, styles: ctx.styles, unstyled: ctx.unstyled });\n return /* @__PURE__ */ React.createElement(AccordionItemContextProvider, {\n value: { value }\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.item, className),\n \"data-active\": ctx.isItemActive(value) || void 0\n }, others), children));\n});\nAccordionItem.displayName = \"@mantine/core/AccordionItem\";\n\nexport { AccordionItem };\n//# sourceMappingURL=AccordionItem.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction getVariantStyles(theme, { variant }) {\n if (variant === \"default\" || variant === \"contained\") {\n return theme.fn.hover({\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[0]\n });\n }\n return {};\n}\nvar useStyles = createStyles((theme, _a) => {\n var _b = _a, { transitionDuration, chevronPosition, chevronSize } = _b, params = __objRest(_b, [\"transitionDuration\", \"chevronPosition\", \"chevronSize\"]);\n return {\n icon: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginRight: chevronPosition === \"left\" ? 0 : theme.spacing.sm,\n marginLeft: chevronPosition === \"left\" ? theme.spacing.lg : 0\n },\n chevron: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transition: `transform ${transitionDuration}ms ease`,\n marginRight: chevronPosition === \"right\" ? 0 : theme.spacing.sm,\n marginLeft: chevronPosition === \"right\" ? theme.spacing.lg : 0,\n width: chevronSize,\n minWidth: chevronSize,\n \"&[data-rotate]\": {\n transform: \"rotate(180deg)\"\n }\n },\n label: {\n color: \"inherit\",\n fontWeight: 400,\n flex: 1,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n },\n itemTitle: {\n margin: 0,\n padding: 0\n },\n control: __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, theme.fn.focusStyles()), theme.fn.fontStyles()), getVariantStyles(theme, params)), {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: chevronPosition === \"right\" ? \"row-reverse\" : \"row\",\n padding: `${theme.spacing.md}px ${theme.spacing.md / 2}px`,\n paddingLeft: chevronPosition === \"right\" ? `calc(${theme.spacing.sm}px + 4px)` : null,\n textAlign: \"left\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n \"&:disabled\": __spreadValues({\n opacity: 0.4,\n cursor: \"not-allowed\"\n }, theme.fn.hover({ backgroundColor: \"transparent\" }))\n })\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=AccordionControl.styles.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme) => ({\n root: __spreadProps(__spreadValues(__spreadValues({}, theme.fn.focusStyles()), theme.fn.fontStyles()), {\n cursor: \"pointer\",\n border: 0,\n padding: 0,\n appearance: \"none\",\n fontSize: theme.fontSizes.md,\n backgroundColor: \"transparent\",\n textAlign: \"left\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n textDecoration: \"none\",\n boxSizing: \"border-box\"\n })\n}));\n\nexport default useStyles;\n//# sourceMappingURL=UnstyledButton.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './UnstyledButton.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst _UnstyledButton = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"UnstyledButton\", {}, props), {\n className,\n component = \"button\",\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"component\",\n \"unstyled\"\n ]);\n const { classes, cx } = useStyles(null, { name: \"UnstyledButton\", unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component,\n ref,\n className: cx(classes.root, className),\n type: component === \"button\" ? \"button\" : void 0\n }, others));\n});\n_UnstyledButton.displayName = \"@mantine/core/UnstyledButton\";\nconst UnstyledButton = createPolymorphicComponent(_UnstyledButton);\n\nexport { UnstyledButton, _UnstyledButton };\n//# sourceMappingURL=UnstyledButton.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createScopedKeydownHandler } from '@mantine/utils';\nimport { useAccordionContext } from '../Accordion.context.js';\nimport { useAccordionItemContext } from '../AccordionItem.context.js';\nimport useStyles from './AccordionControl.styles.js';\nimport { UnstyledButton } from '../../UnstyledButton/UnstyledButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst AccordionControl = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"AccordionControl\", defaultProps, props), { disabled, onKeyDown, onClick, chevron, children, className, icon } = _a, others = __objRest(_a, [\"disabled\", \"onKeyDown\", \"onClick\", \"chevron\", \"children\", \"className\", \"icon\"]);\n const ctx = useAccordionContext();\n const { value } = useAccordionItemContext();\n const { classes, cx } = useStyles({\n transitionDuration: ctx.transitionDuration,\n chevronPosition: ctx.chevronPosition,\n chevronSize: ctx.chevronSize,\n variant: ctx.variant,\n radius: ctx.radius\n }, { name: \"Accordion\", classNames: ctx.classNames, styles: ctx.styles, unstyled: ctx.unstyled });\n const isActive = ctx.isItemActive(value);\n const shouldWrapWithHeading = typeof ctx.order === \"number\";\n const Heading = `h${ctx.order}`;\n const content = /* @__PURE__ */ React.createElement(UnstyledButton, __spreadProps(__spreadValues({}, others), {\n ref,\n \"data-accordion-control\": true,\n disabled,\n className: cx(classes.control, className),\n onClick: (event) => {\n onClick == null ? void 0 : onClick(event);\n ctx.onChange(value);\n },\n type: \"button\",\n \"data-active\": isActive || void 0,\n \"aria-expanded\": isActive,\n \"aria-controls\": ctx.getRegionId(value),\n id: ctx.getControlId(value),\n unstyled: ctx.unstyled,\n onKeyDown: createScopedKeydownHandler({\n siblingSelector: \"[data-accordion-control]\",\n parentSelector: \"[data-accordion]\",\n activateOnFocus: false,\n loop: ctx.loop,\n orientation: \"vertical\",\n onKeyDown\n })\n }), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.chevron,\n \"data-rotate\": !ctx.disableChevronRotation && isActive || void 0\n }, chevron || ctx.chevron), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.label\n }, children), icon && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.icon\n }, icon));\n return shouldWrapWithHeading ? /* @__PURE__ */ React.createElement(Heading, {\n className: classes.itemTitle\n }, content) : content;\n});\nAccordionControl.displayName = \"@mantine/core/AccordionControl\";\n\nexport { AccordionControl };\n//# sourceMappingURL=AccordionControl.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme, _params) => ({\n panel: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n wordBreak: \"break-word\",\n lineHeight: theme.lineHeight\n }),\n content: {\n padding: theme.spacing.md,\n paddingTop: `calc(${theme.spacing.xs}px / 2)`\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=AccordionPanel.styles.js.map\n","import { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport { mergeRefs, useDidUpdate } from '@mantine/hooks';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction getAutoHeightDuration(height) {\n if (!height || typeof height === \"string\") {\n return 0;\n }\n const constant = height / 36;\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nfunction getElementHeight(el) {\n return (el == null ? void 0 : el.current) ? el.current.scrollHeight : \"auto\";\n}\nconst raf = typeof window !== \"undefined\" && window.requestAnimationFrame;\nfunction useCollapse({\n transitionDuration,\n transitionTimingFunction = \"ease\",\n onTransitionEnd = () => {\n },\n opened\n}) {\n const el = useRef(null);\n const collapsedHeight = \"0px\";\n const collapsedStyles = {\n display: \"none\",\n height: \"0px\",\n overflow: \"hidden\"\n };\n const [styles, setStylesRaw] = useState(opened ? {} : collapsedStyles);\n const setStyles = (newStyles) => {\n flushSync(() => setStylesRaw(newStyles));\n };\n const mergeStyles = (newStyles) => {\n setStyles((oldStyles) => __spreadValues(__spreadValues({}, oldStyles), newStyles));\n };\n function getTransitionStyles(height) {\n const _duration = transitionDuration || getAutoHeightDuration(height);\n return {\n transition: `height ${_duration}ms ${transitionTimingFunction}`\n };\n }\n useDidUpdate(() => {\n if (opened) {\n raf(() => {\n mergeStyles({ willChange: \"height\", display: \"block\", overflow: \"hidden\" });\n raf(() => {\n const height = getElementHeight(el);\n mergeStyles(__spreadProps(__spreadValues({}, getTransitionStyles(height)), { height }));\n });\n });\n } else {\n raf(() => {\n const height = getElementHeight(el);\n mergeStyles(__spreadProps(__spreadValues({}, getTransitionStyles(height)), { willChange: \"height\", height }));\n raf(() => mergeStyles({ height: collapsedHeight, overflow: \"hidden\" }));\n });\n }\n }, [opened]);\n const handleTransitionEnd = (e) => {\n if (e.target !== el.current || e.propertyName !== \"height\") {\n return;\n }\n if (opened) {\n const height = getElementHeight(el);\n if (height === styles.height) {\n setStyles({});\n } else {\n mergeStyles({ height });\n }\n onTransitionEnd();\n } else if (styles.height === collapsedHeight) {\n setStyles(collapsedStyles);\n onTransitionEnd();\n }\n };\n function getCollapseProps(_a = {}) {\n var _b = _a, { style = {}, refKey = \"ref\" } = _b, rest = __objRest(_b, [\"style\", \"refKey\"]);\n const theirRef = rest[refKey];\n return __spreadProps(__spreadValues({\n \"aria-hidden\": !opened\n }, rest), {\n [refKey]: mergeRefs(el, theirRef),\n onTransitionEnd: handleTransitionEnd,\n style: __spreadValues(__spreadValues({ boxSizing: \"border-box\" }, style), styles)\n });\n }\n return getCollapseProps;\n}\n\nexport { getElementHeight, useCollapse };\n//# sourceMappingURL=use-collapse.js.map\n","import React, { forwardRef } from 'react';\nimport { useReducedMotion } from '@mantine/hooks';\nimport { useComponentDefaultProps, useMantineTheme } from '@mantine/styles';\nimport { useCollapse } from './use-collapse.js';\nimport { extractSystemStyles } from '../Box/style-system-props/extract-system-styles/extract-system-styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n transitionDuration: 200,\n transitionTimingFunction: \"ease\",\n animateOpacity: true\n};\nconst Collapse = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Collapse\", defaultProps, props), {\n children,\n in: opened,\n transitionDuration,\n transitionTimingFunction,\n style,\n onTransitionEnd,\n animateOpacity\n } = _a, others = __objRest(_a, [\n \"children\",\n \"in\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"style\",\n \"onTransitionEnd\",\n \"animateOpacity\"\n ]);\n const theme = useMantineTheme();\n const shouldReduceMotion = useReducedMotion();\n const reduceMotion = theme.respectReducedMotion ? shouldReduceMotion : false;\n const duration = reduceMotion ? 0 : transitionDuration;\n const { systemStyles, rest } = extractSystemStyles(others);\n const getCollapseProps = useCollapse({\n opened,\n transitionDuration: duration,\n transitionTimingFunction,\n onTransitionEnd\n });\n if (duration === 0) {\n return opened ? /* @__PURE__ */ React.createElement(Box, __spreadValues({}, rest), children) : null;\n }\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({}, getCollapseProps(__spreadValues(__spreadValues({ style, ref }, rest), systemStyles))), /* @__PURE__ */ React.createElement(\"div\", {\n style: {\n opacity: opened || !animateOpacity ? 1 : 0,\n transition: animateOpacity ? `opacity ${duration}ms ${transitionTimingFunction}` : \"none\"\n }\n }, children));\n});\nCollapse.displayName = \"@mantine/core/Collapse\";\n\nexport { Collapse };\n//# sourceMappingURL=Collapse.js.map\n","import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useAccordionContext } from '../Accordion.context.js';\nimport { useAccordionItemContext } from '../AccordionItem.context.js';\nimport useStyles from './AccordionPanel.styles.js';\nimport { Collapse } from '../../Collapse/Collapse.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nfunction AccordionPanel(props) {\n const _a = useComponentDefaultProps(\"AccordionPanel\", defaultProps, props), { children, className } = _a, others = __objRest(_a, [\"children\", \"className\"]);\n const ctx = useAccordionContext();\n const { value } = useAccordionItemContext();\n const { classNames, styles, unstyled } = useAccordionContext();\n const { classes, cx } = useStyles({ variant: ctx.variant, radius: ctx.radius }, { name: \"Accordion\", classNames, styles, unstyled });\n return /* @__PURE__ */ React.createElement(Collapse, __spreadProps(__spreadValues({}, others), {\n className: cx(classes.panel, className),\n in: ctx.isItemActive(value),\n transitionDuration: ctx.transitionDuration,\n role: \"region\",\n id: ctx.getRegionId(value),\n \"aria-labelledby\": ctx.getControlId(value)\n }), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.content\n }, children));\n}\nAccordionPanel.displayName = \"@mantine/core/AccordionPanel\";\n\nexport { AccordionPanel };\n//# sourceMappingURL=AccordionPanel.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction ChevronIcon(props) {\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16\n }, props), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }));\n}\n\nexport { ChevronIcon };\n//# sourceMappingURL=ChevronIcon.js.map\n","import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { AccordionProvider } from './AccordionProvider.js';\nimport { AccordionItem } from './AccordionItem/AccordionItem.js';\nimport { AccordionControl } from './AccordionControl/AccordionControl.js';\nimport { AccordionPanel } from './AccordionPanel/AccordionPanel.js';\nimport { ChevronIcon } from './ChevronIcon.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n multiple: false,\n disableChevronRotation: false,\n transitionDuration: 200,\n chevronPosition: \"right\",\n variant: \"default\",\n chevronSize: 24,\n chevron: /* @__PURE__ */ React.createElement(ChevronIcon, null)\n};\nfunction Accordion(props) {\n const _a = useComponentDefaultProps(\"Accordion\", defaultProps, props), {\n id,\n loop,\n children,\n multiple,\n value,\n defaultValue,\n onChange,\n transitionDuration,\n disableChevronRotation,\n chevronPosition,\n chevronSize,\n order,\n chevron,\n classNames,\n styles,\n unstyled,\n variant,\n radius\n } = _a, others = __objRest(_a, [\n \"id\",\n \"loop\",\n \"children\",\n \"multiple\",\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"transitionDuration\",\n \"disableChevronRotation\",\n \"chevronPosition\",\n \"chevronSize\",\n \"order\",\n \"chevron\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"variant\",\n \"radius\"\n ]);\n return /* @__PURE__ */ React.createElement(AccordionProvider, {\n id,\n multiple,\n value,\n defaultValue,\n onChange,\n loop,\n transitionDuration,\n disableChevronRotation,\n chevronPosition,\n chevronSize,\n order,\n chevron,\n variant,\n radius,\n classNames,\n styles,\n unstyled\n }, /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, others), {\n \"data-accordion\": true\n }), children));\n}\nAccordion.Item = AccordionItem;\nAccordion.Control = AccordionControl;\nAccordion.Panel = AccordionPanel;\nAccordion.displayName = \"@mantine/core/Accordion\";\n\nexport { Accordion };\n//# sourceMappingURL=Accordion.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst sizes = {\n xs: 18,\n sm: 22,\n md: 28,\n lg: 34,\n xl: 44\n};\nfunction getVariantStyles({ variant, theme, color, gradient }) {\n const colors = theme.fn.variant({ color, variant, gradient });\n if (variant === \"gradient\") {\n return {\n border: 0,\n backgroundImage: colors.background,\n color: colors.color,\n \"&:hover\": theme.fn.hover({\n backgroundSize: \"200%\"\n })\n };\n }\n return __spreadValues({\n border: `1px solid ${colors.border}`,\n backgroundColor: colors.background,\n color: colors.color\n }, theme.fn.hover({\n backgroundColor: colors.hover\n }));\n}\nvar useStyles = createStyles((theme, { color, size, radius, variant, gradient }) => ({\n root: __spreadProps(__spreadValues({}, getVariantStyles({ variant, theme, color, gradient })), {\n position: \"relative\",\n height: theme.fn.size({ size, sizes }),\n minHeight: theme.fn.size({ size, sizes }),\n width: theme.fn.size({ size, sizes }),\n minWidth: theme.fn.size({ size, sizes }),\n borderRadius: theme.fn.radius(radius),\n padding: 0,\n lineHeight: 1,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"&:active\": theme.activeStyles,\n \"&:disabled, &[data-disabled]\": {\n color: theme.colors.gray[theme.colorScheme === \"dark\" ? 6 : 4],\n cursor: \"not-allowed\",\n backgroundColor: variant === \"transparent\" ? void 0 : theme.fn.themeColor(\"gray\", theme.colorScheme === \"dark\" ? 8 : 1),\n borderColor: variant === \"transparent\" ? void 0 : theme.fn.themeColor(\"gray\", theme.colorScheme === \"dark\" ? 8 : 1),\n backgroundImage: \"none\",\n pointerEvents: \"none\",\n \"&:active\": {\n transform: \"none\"\n }\n },\n \"&[data-loading]\": {\n pointerEvents: \"none\",\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n top: -1,\n left: -1,\n right: -1,\n bottom: -1,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.colors.dark[7], 0.5) : \"rgba(255, 255, 255, .5)\",\n borderRadius: theme.fn.radius(radius),\n cursor: \"not-allowed\"\n }\n }\n })\n}));\n\nexport default useStyles;\nexport { sizes };\n//# sourceMappingURL=ActionIcon.styles.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction Bars(_a) {\n var _b = _a, { size, color } = _b, others = __objRest(_b, [\"size\", \"color\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n viewBox: \"0 0 135 140\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: color,\n width: `${size}px`\n }, others), /* @__PURE__ */ React.createElement(\"rect\", {\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"30\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"60\",\n width: \"15\",\n height: \"140\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"90\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"rect\", {\n x: \"120\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n}\n\nexport { Bars };\n//# sourceMappingURL=Bars.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction Oval(_a) {\n var _b = _a, { size, color } = _b, others = __objRest(_b, [\"size\", \"color\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n width: `${size}px`,\n height: `${size}px`,\n viewBox: \"0 0 38 38\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: color\n }, others), /* @__PURE__ */ React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /* @__PURE__ */ React.createElement(\"g\", {\n transform: \"translate(2.5 2.5)\",\n strokeWidth: \"5\"\n }, /* @__PURE__ */ React.createElement(\"circle\", {\n strokeOpacity: \".5\",\n cx: \"16\",\n cy: \"16\",\n r: \"16\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M32 16c0-9.94-8.06-16-16-16\"\n }, /* @__PURE__ */ React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 16 16\",\n to: \"360 16 16\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n })))));\n}\n\nexport { Oval };\n//# sourceMappingURL=Oval.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction Dots(_a) {\n var _b = _a, { size, color } = _b, others = __objRest(_b, [\"size\", \"color\"]);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n width: `${size}px`,\n height: `${size / 4}px`,\n viewBox: \"0 0 120 30\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: color\n }, others), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: \"15\",\n cy: \"15\",\n r: \"15\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: \"60\",\n cy: \"15\",\n r: \"9\",\n fillOpacity: \"0.3\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"9\",\n to: \"9\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"9;15;9\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n from: \"0.5\",\n to: \"0.5\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \".5;1;.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: \"105\",\n cy: \"15\",\n r: \"15\"\n }, /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /* @__PURE__ */ React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n}\n\nexport { Dots };\n//# sourceMappingURL=Dots.js.map\n","import React from 'react';\nimport { useComponentDefaultProps, useMantineTheme } from '@mantine/styles';\nimport { Bars } from './loaders/Bars.js';\nimport { Oval } from './loaders/Oval.js';\nimport { Dots } from './loaders/Dots.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst LOADERS = {\n bars: Bars,\n oval: Oval,\n dots: Dots\n};\nconst sizes = {\n xs: 18,\n sm: 22,\n md: 36,\n lg: 44,\n xl: 58\n};\nconst defaultProps = {\n size: \"md\"\n};\nfunction Loader(props) {\n const _a = useComponentDefaultProps(\"Loader\", defaultProps, props), { size, color, variant } = _a, others = __objRest(_a, [\"size\", \"color\", \"variant\"]);\n const theme = useMantineTheme();\n const defaultLoader = variant in LOADERS ? variant : theme.loader;\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n role: \"presentation\",\n component: LOADERS[defaultLoader] || LOADERS.bars,\n size: theme.fn.size({ size, sizes }),\n color: theme.fn.variant({\n variant: \"filled\",\n primaryFallback: false,\n color: color || theme.primaryColor\n }).background\n }, others));\n}\nLoader.displayName = \"@mantine/core/Loader\";\n\nexport { Loader };\n//# sourceMappingURL=Loader.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles, { sizes } from './ActionIcon.styles.js';\nimport { Loader } from '../Loader/Loader.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n color: \"gray\",\n size: \"md\",\n variant: \"subtle\",\n loading: false\n};\nconst _ActionIcon = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ActionIcon\", defaultProps, props), {\n className,\n color,\n children,\n radius,\n size,\n variant,\n gradient,\n disabled,\n loaderProps,\n loading,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"color\",\n \"children\",\n \"radius\",\n \"size\",\n \"variant\",\n \"gradient\",\n \"disabled\",\n \"loaderProps\",\n \"loading\",\n \"unstyled\"\n ]);\n const { classes, cx, theme } = useStyles({ size, radius, color, variant, gradient }, { name: \"ActionIcon\", unstyled });\n const colors = theme.fn.variant({ color, variant });\n const loader = /* @__PURE__ */ React.createElement(Loader, __spreadValues({\n color: colors.color,\n size: theme.fn.size({ size, sizes }) - 12\n }, loaderProps));\n return /* @__PURE__ */ React.createElement(UnstyledButton, __spreadValues({\n className: cx(classes.root, className),\n ref,\n disabled,\n \"data-disabled\": disabled || void 0,\n \"data-loading\": loading || void 0,\n unstyled\n }, others), loading ? loader : children);\n});\n_ActionIcon.displayName = \"@mantine/core/ActionIcon\";\nconst ActionIcon = createPolymorphicComponent(_ActionIcon);\n\nexport { ActionIcon, _ActionIcon };\n//# sourceMappingURL=ActionIcon.js.map\n","import React, { useState, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useIsomorphicEffect } from '@mantine/hooks';\nimport { useComponentDefaultProps, useMantineTheme } from '@mantine/styles';\n\nfunction Portal(props) {\n const { children, target, className } = useComponentDefaultProps(\"Portal\", {}, props);\n const theme = useMantineTheme();\n const [mounted, setMounted] = useState(false);\n const ref = useRef();\n useIsomorphicEffect(() => {\n setMounted(true);\n ref.current = !target ? document.createElement(\"div\") : typeof target === \"string\" ? document.querySelector(target) : target;\n if (!target) {\n document.body.appendChild(ref.current);\n }\n return () => {\n !target && document.body.removeChild(ref.current);\n };\n }, [target]);\n if (!mounted) {\n return null;\n }\n return createPortal(/* @__PURE__ */ React.createElement(\"div\", {\n className,\n dir: theme.dir\n }, children), ref.current);\n}\nPortal.displayName = \"@mantine/core/Portal\";\n\nexport { Portal };\n//# sourceMappingURL=Portal.js.map\n","import React from 'react';\nimport { Portal } from './Portal.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction OptionalPortal(_a) {\n var _b = _a, { withinPortal = true, children } = _b, others = __objRest(_b, [\"withinPortal\", \"children\"]);\n if (withinPortal) {\n return /* @__PURE__ */ React.createElement(Portal, __spreadValues({}, others), children);\n }\n return /* @__PURE__ */ React.createElement(React.Fragment, null, children);\n}\nOptionalPortal.displayName = \"@mantine/core/OptionalPortal\";\n\nexport { OptionalPortal };\n//# sourceMappingURL=OptionalPortal.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getTextDecoration({\n underline,\n strikethrough\n}) {\n const styles = [];\n if (underline) {\n styles.push(\"underline\");\n }\n if (strikethrough) {\n styles.push(\"line-through\");\n }\n return styles.length > 0 ? styles.join(\" \") : \"none\";\n}\nfunction getTextColor({ theme, color, variant }) {\n if (color === \"dimmed\") {\n return theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6];\n }\n return typeof color === \"string\" && (color in theme.colors || color.split(\".\")[0] in theme.colors) ? theme.fn.variant({ variant: \"filled\", color }).background : variant === \"link\" ? theme.colors[theme.primaryColor][theme.colorScheme === \"dark\" ? 4 : 7] : color || \"inherit\";\n}\nfunction getLineClamp(lineClamp) {\n if (typeof lineClamp === \"number\") {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: lineClamp,\n WebkitBoxOrient: \"vertical\"\n };\n }\n return null;\n}\nfunction getTruncate({ theme, truncate }) {\n if (truncate === \"start\") {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n direction: theme.dir === \"ltr\" ? \"rtl\" : \"ltr\",\n textAlign: theme.dir === \"ltr\" ? \"right\" : \"left\"\n };\n }\n if (truncate) {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n }\n return null;\n}\nvar useStyles = createStyles((theme, {\n color,\n variant,\n size,\n lineClamp,\n truncate,\n inline,\n inherit,\n underline,\n gradient,\n weight,\n transform,\n align,\n strikethrough,\n italic\n}) => {\n const colors = theme.fn.variant({ variant: \"gradient\", gradient });\n return {\n root: __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, theme.fn.fontStyles()), theme.fn.focusStyles()), getLineClamp(lineClamp)), getTruncate({ theme, truncate })), {\n color: getTextColor({ color, theme, variant }),\n fontFamily: inherit ? \"inherit\" : theme.fontFamily,\n fontSize: inherit || size === void 0 ? \"inherit\" : theme.fn.size({ size, sizes: theme.fontSizes }),\n lineHeight: inherit ? \"inherit\" : inline ? 1 : theme.lineHeight,\n textDecoration: getTextDecoration({ underline, strikethrough }),\n WebkitTapHighlightColor: \"transparent\",\n fontWeight: inherit ? \"inherit\" : weight,\n textTransform: transform,\n textAlign: align,\n fontStyle: italic ? \"italic\" : void 0\n }), theme.fn.hover(variant === \"link\" && underline === void 0 ? {\n textDecoration: \"underline\"\n } : void 0)),\n gradient: {\n backgroundImage: colors.background,\n WebkitBackgroundClip: \"text\",\n WebkitTextFillColor: \"transparent\"\n }\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=Text.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './Text.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n variant: \"text\"\n};\nconst _Text = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Text\", defaultProps, props), {\n className,\n size,\n weight,\n transform,\n color,\n align,\n variant,\n lineClamp,\n truncate,\n gradient,\n inline,\n inherit,\n underline,\n strikethrough,\n italic,\n classNames,\n styles,\n unstyled,\n span\n } = _a, others = __objRest(_a, [\n \"className\",\n \"size\",\n \"weight\",\n \"transform\",\n \"color\",\n \"align\",\n \"variant\",\n \"lineClamp\",\n \"truncate\",\n \"gradient\",\n \"inline\",\n \"inherit\",\n \"underline\",\n \"strikethrough\",\n \"italic\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"span\"\n ]);\n const { classes, cx } = useStyles({\n variant,\n color,\n size,\n lineClamp,\n truncate,\n inline,\n inherit,\n underline,\n strikethrough,\n italic,\n weight,\n transform,\n align,\n gradient\n }, { unstyled, name: \"Text\" });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, { [classes.gradient]: variant === \"gradient\" }, className),\n component: span ? \"span\" : \"div\"\n }, others));\n});\n_Text.displayName = \"@mantine/core/Text\";\nconst Text = createPolymorphicComponent(_Text);\n\nexport { Text, _Text };\n//# sourceMappingURL=Text.js.map\n","import { createStyles } from '@mantine/styles';\n\nconst sizes = {\n xs: 1,\n sm: 2,\n md: 3,\n lg: 4,\n xl: 5\n};\nfunction getColor(theme, color) {\n const themeColor = theme.fn.variant({ variant: \"outline\", color }).border;\n return typeof color === \"string\" && (color in theme.colors || color.split(\".\")[0] in theme.colors) ? themeColor : color === void 0 ? theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[4] : color;\n}\nvar useStyles = createStyles((theme, { size, variant, color }) => ({\n root: {},\n withLabel: {\n borderTop: \"0 !important\"\n },\n left: {\n \"&::before\": {\n display: \"none\"\n }\n },\n right: {\n \"&::after\": {\n display: \"none\"\n }\n },\n label: {\n display: \"flex\",\n alignItems: \"center\",\n \"&::before\": {\n content: '\"\"',\n flex: 1,\n height: 1,\n borderTop: `${theme.fn.size({ size, sizes })}px ${variant} ${getColor(theme, color)}`,\n marginRight: theme.spacing.xs\n },\n \"&::after\": {\n content: '\"\"',\n flex: 1,\n borderTop: `${theme.fn.size({ size, sizes })}px ${variant} ${getColor(theme, color)}`,\n marginLeft: theme.spacing.xs\n }\n },\n labelDefaultStyles: {\n color: color === \"dark\" ? theme.colors.dark[1] : theme.fn.themeColor(color, theme.colorScheme === \"dark\" ? 5 : theme.fn.primaryShade(), false)\n },\n horizontal: {\n border: 0,\n borderTopWidth: theme.fn.size({ size, sizes }),\n borderTopColor: getColor(theme, color),\n borderTopStyle: variant,\n margin: 0\n },\n vertical: {\n border: 0,\n alignSelf: \"stretch\",\n height: \"auto\",\n borderLeftWidth: theme.fn.size({ size, sizes }),\n borderLeftColor: getColor(theme, color),\n borderLeftStyle: variant\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Divider.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './Divider.styles.js';\nimport { Box } from '../Box/Box.js';\nimport { Text } from '../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n orientation: \"horizontal\",\n size: \"xs\",\n labelPosition: \"left\",\n variant: \"solid\"\n};\nconst Divider = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Divider\", defaultProps, props), {\n className,\n color,\n orientation,\n size,\n label,\n labelPosition,\n labelProps,\n variant,\n styles,\n classNames,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"color\",\n \"orientation\",\n \"size\",\n \"label\",\n \"labelPosition\",\n \"labelProps\",\n \"variant\",\n \"styles\",\n \"classNames\",\n \"unstyled\"\n ]);\n const { classes, cx } = useStyles({ color, size, variant }, { classNames, styles, unstyled, name: \"Divider\" });\n const vertical = orientation === \"vertical\";\n const horizontal = orientation === \"horizontal\";\n const withLabel = !!label && horizontal;\n const useLabelDefaultStyles = !(labelProps == null ? void 0 : labelProps.color);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, {\n [classes.vertical]: vertical,\n [classes.horizontal]: horizontal,\n [classes.withLabel]: withLabel\n }, className),\n role: \"separator\"\n }, others), withLabel && /* @__PURE__ */ React.createElement(Text, __spreadProps(__spreadValues({}, labelProps), {\n size: (labelProps == null ? void 0 : labelProps.size) || \"xs\",\n sx: { marginTop: 2 },\n className: cx(classes.label, classes[labelPosition], {\n [classes.labelDefaultStyles]: useLabelDefaultStyles\n })\n }), label));\n});\nDivider.displayName = \"@mantine/core/Divider\";\n\nexport { Divider };\n//# sourceMappingURL=Divider.js.map\n","import {useCallback as $3vqmr$useCallback} from \"react\";\n\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === 'function') ref(value);\n else if (ref !== null && ref !== undefined) ref.current = value;\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node)=>refs.forEach((ref)=>$6ed0406888f73fc4$var$setRef(ref, node)\n )\n ;\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return $3vqmr$useCallback($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n\n\n\n\nexport {$6ed0406888f73fc4$export$43e446d32b3d21af as composeRefs, $6ed0406888f73fc4$export$c7b2cbe3552a0d05 as useComposedRefs};\n//# sourceMappingURL=index.module.js.map\n","import $9IrjX$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $9IrjX$forwardRef, Children as $9IrjX$Children, isValidElement as $9IrjX$isValidElement, createElement as $9IrjX$createElement, cloneElement as $9IrjX$cloneElement, Fragment as $9IrjX$Fragment} from \"react\";\nimport {composeRefs as $9IrjX$composeRefs} from \"@radix-ui/react-compose-refs\";\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$8c6ed5c666ac1360 = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n const childrenArray = $9IrjX$Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child)=>{\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if ($9IrjX$Children.count(newElement) > 1) return $9IrjX$Children.only(null);\n return /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? newElement.props.children : null;\n } else return child;\n });\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? /*#__PURE__*/ $9IrjX$cloneElement(newElement, undefined, newChildren) : null);\n }\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = 'Slot';\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$var$SlotClone = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n if (/*#__PURE__*/ $9IrjX$isValidElement(children)) return /*#__PURE__*/ $9IrjX$cloneElement(children, {\n ...$5e63c961fc1ce211$var$mergeProps(slotProps, children.props),\n ref: $9IrjX$composeRefs(forwardedRef, children.ref)\n });\n return $9IrjX$Children.count(children) > 1 ? $9IrjX$Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = 'SlotClone';\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children: children })=>{\n return /*#__PURE__*/ $9IrjX$createElement($9IrjX$Fragment, null, children);\n};\n/* ---------------------------------------------------------------------------------------------- */ function $5e63c961fc1ce211$var$isSlottable(child) {\n return /*#__PURE__*/ $9IrjX$isValidElement(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n // all child props should override\n const overrideProps = {\n ...childProps\n };\n for(const propName in childProps){\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) overrideProps[propName] = (...args)=>{\n childPropValue(...args);\n slotPropValue(...args);\n };\n else if (slotPropValue) overrideProps[propName] = slotPropValue;\n } else if (propName === 'style') overrideProps[propName] = {\n ...slotPropValue,\n ...childPropValue\n };\n else if (propName === 'className') overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(' ');\n }\n return {\n ...slotProps,\n ...overrideProps\n };\n}\nconst $5e63c961fc1ce211$export$be92b6f5f03c0fe9 = $5e63c961fc1ce211$export$8c6ed5c666ac1360;\n\n\n\n\nexport {$5e63c961fc1ce211$export$8c6ed5c666ac1360 as Slot, $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 as Slottable, $5e63c961fc1ce211$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import $4q5Fq$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $4q5Fq$forwardRef, useEffect as $4q5Fq$useEffect, createElement as $4q5Fq$createElement} from \"react\";\nimport {flushSync as $4q5Fq$flushSync} from \"react-dom\";\nimport {Slot as $4q5Fq$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n 'a',\n 'button',\n 'div',\n 'h2',\n 'h3',\n 'img',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul'\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ $4q5Fq$forwardRef((props, forwardedRef)=>{\n const { asChild: asChild , ...primitiveProps } = props;\n const Comp = asChild ? $4q5Fq$Slot : node;\n $4q5Fq$useEffect(()=>{\n window[Symbol.for('radix-ui')] = true;\n }, []);\n return /*#__PURE__*/ $4q5Fq$createElement(Comp, $4q5Fq$babelruntimehelpersesmextends({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) $4q5Fq$flushSync(()=>target.dispatchEvent(event)\n );\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n\n\n\n\nexport {$8927f6f2acc4f386$export$250ffa63cdc0d034 as Primitive, $8927f6f2acc4f386$export$be92b6f5f03c0fe9 as Root, $8927f6f2acc4f386$export$6d1a0317bde7de7f as dispatchDiscreteCustomEvent};\n//# sourceMappingURL=index.module.js.map\n","import {useLayoutEffect as $dxlwH$useLayoutEffect} from \"react\";\n\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */ const $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? $dxlwH$useLayoutEffect : ()=>{};\n\n\n\n\nexport {$9f79659886946c16$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=index.module.js.map\n","import {Children as $iqq3r$Children, cloneElement as $iqq3r$cloneElement, useState as $iqq3r$useState, useRef as $iqq3r$useRef, useEffect as $iqq3r$useEffect, useCallback as $iqq3r$useCallback, useReducer as $iqq3r$useReducer} from \"react\";\nimport {flushSync as $iqq3r$flushSync} from \"react-dom\";\nimport {useComposedRefs as $iqq3r$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useLayoutEffect as $iqq3r$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\n\n\n\nfunction $fe963b355347cc68$export$3e6543de14f8614f(initialState, machine) {\n return $iqq3r$useReducer((state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\n\n\nconst $921a889cee6df7e8$export$99c2b779aa4e8b8b = (props)=>{\n const { present: present , children: children } = props;\n const presence = $921a889cee6df7e8$var$usePresence(present);\n const child = typeof children === 'function' ? children({\n present: presence.isPresent\n }) : $iqq3r$Children.only(children);\n const ref = $iqq3r$useComposedRefs(presence.ref, child.ref);\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? /*#__PURE__*/ $iqq3r$cloneElement(child, {\n ref: ref\n }) : null;\n};\n$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName = 'Presence';\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$usePresence(present) {\n const [node1, setNode] = $iqq3r$useState();\n const stylesRef = $iqq3r$useRef({});\n const prevPresentRef = $iqq3r$useRef(present);\n const prevAnimationNameRef = $iqq3r$useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = $fe963b355347cc68$export$3e6543de14f8614f(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended'\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted'\n },\n unmounted: {\n MOUNT: 'mounted'\n }\n });\n $iqq3r$useEffect(()=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [\n state\n ]);\n $iqq3r$useLayoutEffect(()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(styles);\n if (present) send('MOUNT');\n else if (currentAnimationName === 'none' || (styles === null || styles === void 0 ? void 0 : styles.display) === 'none') // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */ const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) send('ANIMATION_OUT');\n else send('UNMOUNT');\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n $iqq3r$useLayoutEffect(()=>{\n if (node1) {\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */ const handleAnimationEnd = (event)=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node1 && isCurrentAnimation) // With React 18 concurrency this update is applied\n // a frame after the animation ends, creating a flash of visible content.\n // By manually flushing we ensure they sync within a frame, removing the flash.\n $iqq3r$flushSync(()=>send('ANIMATION_END')\n );\n };\n const handleAnimationStart = (event)=>{\n if (event.target === node1) // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n };\n node1.addEventListener('animationstart', handleAnimationStart);\n node1.addEventListener('animationcancel', handleAnimationEnd);\n node1.addEventListener('animationend', handleAnimationEnd);\n return ()=>{\n node1.removeEventListener('animationstart', handleAnimationStart);\n node1.removeEventListener('animationcancel', handleAnimationEnd);\n node1.removeEventListener('animationend', handleAnimationEnd);\n };\n } else // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }, [\n node1,\n send\n ]);\n return {\n isPresent: [\n 'mounted',\n 'unmountSuspended'\n ].includes(state),\n ref: $iqq3r$useCallback((node)=>{\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, [])\n };\n}\n/* -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$getAnimationName(styles) {\n return (styles === null || styles === void 0 ? void 0 : styles.animationName) || 'none';\n}\n\n\n\n\nexport {$921a889cee6df7e8$export$99c2b779aa4e8b8b as Presence};\n//# sourceMappingURL=index.module.js.map\n","import {createContext as $3bkAK$createContext, useMemo as $3bkAK$useMemo, createElement as $3bkAK$createElement, useContext as $3bkAK$useContext} from \"react\";\n\n\nfunction $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const Context = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n function Provider(props) {\n const { children: children , ...context } = props; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName) {\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$50c7b4e9d9f19c1(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const BaseContext = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [\n ...defaultContexts,\n defaultContext\n ];\n function Provider(props) {\n const { scope: scope , children: children , ...context } = props;\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName, scope) {\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext;\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n }\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/ const createScope = ()=>{\n const scopeContexts = defaultContexts.map((defaultContext)=>{\n return /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = (scope === null || scope === void 0 ? void 0 : scope[scopeName]) || scopeContexts;\n return $3bkAK$useMemo(()=>({\n [`__scope${scopeName}`]: {\n ...scope,\n [scopeName]: contexts\n }\n })\n , [\n scope,\n contexts\n ]);\n };\n };\n createScope.scopeName = scopeName;\n return [\n $c512c27ab02ef895$export$fd42f52fd3ae1109,\n $c512c27ab02ef895$var$composeContextScopes(createScope, ...createContextScopeDeps)\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$var$composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope1 = ()=>{\n const scopeHooks = scopes.map((createScope)=>({\n useScope: createScope(),\n scopeName: createScope.scopeName\n })\n );\n return function useComposedScopes(overrideScopes) {\n const nextScopes1 = scopeHooks.reduce((nextScopes, { useScope: useScope , scopeName: scopeName })=>{\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return {\n ...nextScopes,\n ...currentScope\n };\n }, {});\n return $3bkAK$useMemo(()=>({\n [`__scope${baseScope.scopeName}`]: nextScopes1\n })\n , [\n nextScopes1\n ]);\n };\n };\n createScope1.scopeName = baseScope.scopeName;\n return createScope1;\n}\n\n\n\n\nexport {$c512c27ab02ef895$export$fd42f52fd3ae1109 as createContext, $c512c27ab02ef895$export$50c7b4e9d9f19c1 as createContextScope};\n//# sourceMappingURL=index.module.js.map\n","import {useRef as $lwiWj$useRef, useEffect as $lwiWj$useEffect, useMemo as $lwiWj$useMemo} from \"react\";\n\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */ function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = $lwiWj$useRef(callback);\n $lwiWj$useEffect(()=>{\n callbackRef.current = callback;\n }); // https://github.com/facebook/react/issues/19240\n return $lwiWj$useMemo(()=>(...args)=>{\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n }\n , []);\n}\n\n\n\n\nexport {$b1b2314f5f9a1d84$export$25bec8c6f54ee79a as useCallbackRef};\n//# sourceMappingURL=index.module.js.map\n","import {createContext as $7Gjcd$createContext, createElement as $7Gjcd$createElement, useContext as $7Gjcd$useContext} from \"react\";\n\n\nconst $f631663db3294ace$var$DirectionContext = /*#__PURE__*/ $7Gjcd$createContext(undefined);\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/ const $f631663db3294ace$export$c760c09fdd558351 = (props)=>{\n const { dir: dir , children: children } = props;\n return /*#__PURE__*/ $7Gjcd$createElement($f631663db3294ace$var$DirectionContext.Provider, {\n value: dir\n }, children);\n};\n/* -----------------------------------------------------------------------------------------------*/ function $f631663db3294ace$export$b39126d51d94e6f3(localDir) {\n const globalDir = $7Gjcd$useContext($f631663db3294ace$var$DirectionContext);\n return localDir || globalDir || 'ltr';\n}\nconst $f631663db3294ace$export$2881499e37b75b9a = $f631663db3294ace$export$c760c09fdd558351;\n\n\n\n\nexport {$f631663db3294ace$export$b39126d51d94e6f3 as useDirection, $f631663db3294ace$export$2881499e37b75b9a as Provider, $f631663db3294ace$export$c760c09fdd558351 as DirectionProvider};\n//# sourceMappingURL=index.module.js.map\n","function $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n\n\n\nexport {$ae6933e535247d3d$export$7d15b64cf5a3a4c4 as clamp};\n//# sourceMappingURL=index.module.js.map\n","function $e42e1063c40fb3ef$export$b9ecd428b558ff10(originalEventHandler, ourEventHandler, { checkForDefaultPrevented: checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler === null || originalEventHandler === void 0 || originalEventHandler(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) return ourEventHandler === null || ourEventHandler === void 0 ? void 0 : ourEventHandler(event);\n };\n}\n\n\n\n\nexport {$e42e1063c40fb3ef$export$b9ecd428b558ff10 as composeEventHandlers};\n//# sourceMappingURL=index.module.js.map\n","import $fnFM9$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $fnFM9$forwardRef, useState as $fnFM9$useState, createElement as $fnFM9$createElement, useRef as $fnFM9$useRef, Fragment as $fnFM9$Fragment, useEffect as $fnFM9$useEffect, useCallback as $fnFM9$useCallback, useReducer as $fnFM9$useReducer} from \"react\";\nimport {Primitive as $fnFM9$Primitive} from \"@radix-ui/react-primitive\";\nimport {Presence as $fnFM9$Presence} from \"@radix-ui/react-presence\";\nimport {createContextScope as $fnFM9$createContextScope} from \"@radix-ui/react-context\";\nimport {useComposedRefs as $fnFM9$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useCallbackRef as $fnFM9$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\nimport {useDirection as $fnFM9$useDirection} from \"@radix-ui/react-direction\";\nimport {useLayoutEffect as $fnFM9$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\nimport {clamp as $fnFM9$clamp} from \"@radix-ui/number\";\nimport {composeEventHandlers as $fnFM9$composeEventHandlers} from \"@radix-ui/primitive\";\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction $6c2e24571c90391f$export$3e6543de14f8614f(initialState, machine) {\n return $fnFM9$useReducer((state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\n\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollArea\n * -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$SCROLL_AREA_NAME = 'ScrollArea';\nconst [$57acba87d6e25586$var$createScrollAreaContext, $57acba87d6e25586$export$488468afe3a6f2b1] = $fnFM9$createContextScope($57acba87d6e25586$var$SCROLL_AREA_NAME);\nconst [$57acba87d6e25586$var$ScrollAreaProvider, $57acba87d6e25586$var$useScrollAreaContext] = $57acba87d6e25586$var$createScrollAreaContext($57acba87d6e25586$var$SCROLL_AREA_NAME);\nconst $57acba87d6e25586$export$ccf8d8d7bbf3c2cc = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { __scopeScrollArea: __scopeScrollArea , type: type = 'hover' , dir: dir , scrollHideDelay: scrollHideDelay = 600 , ...scrollAreaProps } = props;\n const [scrollArea, setScrollArea] = $fnFM9$useState(null);\n const [viewport, setViewport] = $fnFM9$useState(null);\n const [content, setContent] = $fnFM9$useState(null);\n const [scrollbarX, setScrollbarX] = $fnFM9$useState(null);\n const [scrollbarY, setScrollbarY] = $fnFM9$useState(null);\n const [cornerWidth, setCornerWidth] = $fnFM9$useState(0);\n const [cornerHeight, setCornerHeight] = $fnFM9$useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = $fnFM9$useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = $fnFM9$useState(false);\n const composedRefs = $fnFM9$useComposedRefs(forwardedRef, (node)=>setScrollArea(node)\n );\n const direction = $fnFM9$useDirection(dir);\n return /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaProvider, {\n scope: __scopeScrollArea,\n type: type,\n dir: direction,\n scrollHideDelay: scrollHideDelay,\n scrollArea: scrollArea,\n viewport: viewport,\n onViewportChange: setViewport,\n content: content,\n onContentChange: setContent,\n scrollbarX: scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled: scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY: scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled: scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight\n }, /*#__PURE__*/ $fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({\n dir: direction\n }, scrollAreaProps, {\n ref: composedRefs,\n style: {\n position: 'relative',\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n ['--radix-scroll-area-corner-width']: cornerWidth + 'px',\n ['--radix-scroll-area-corner-height']: cornerHeight + 'px',\n ...props.style\n }\n })));\n});\n/*#__PURE__*/ Object.assign($57acba87d6e25586$export$ccf8d8d7bbf3c2cc, {\n displayName: $57acba87d6e25586$var$SCROLL_AREA_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaViewport\n * -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$VIEWPORT_NAME = 'ScrollAreaViewport';\nconst $57acba87d6e25586$export$a21cbf9f11fca853 = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { __scopeScrollArea: __scopeScrollArea , children: children , ...viewportProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$VIEWPORT_NAME, __scopeScrollArea);\n const ref = $fnFM9$useRef(null);\n const composedRefs = $fnFM9$useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /*#__PURE__*/ $fnFM9$createElement($fnFM9$Fragment, null, /*#__PURE__*/ $fnFM9$createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n }\n }), /*#__PURE__*/ $fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({\n \"data-radix-scroll-area-viewport\": \"\"\n }, viewportProps, {\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflowed#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */ overflowX: context.scrollbarXEnabled ? 'scroll' : 'hidden',\n overflowY: context.scrollbarYEnabled ? 'scroll' : 'hidden',\n ...props.style\n }\n }), /*#__PURE__*/ $fnFM9$createElement(\"div\", {\n ref: context.onContentChange,\n style: {\n minWidth: '100%',\n display: 'table'\n }\n }, children)));\n});\n/*#__PURE__*/ Object.assign($57acba87d6e25586$export$a21cbf9f11fca853, {\n displayName: $57acba87d6e25586$var$VIEWPORT_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaScrollbar\n * -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$SCROLLBAR_NAME = 'ScrollAreaScrollbar';\nconst $57acba87d6e25586$export$2fabd85d0eba3c57 = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { forceMount: forceMount , ...scrollbarProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange: onScrollbarXEnabledChange , onScrollbarYEnabledChange: onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n $fnFM9$useEffect(()=>{\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return ()=>{\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [\n isHorizontal,\n onScrollbarXEnabledChange,\n onScrollbarYEnabledChange\n ]);\n return context.type === 'hover' ? /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarHover, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n ref: forwardedRef,\n forceMount: forceMount\n })) : context.type === 'scroll' ? /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarScroll, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n ref: forwardedRef,\n forceMount: forceMount\n })) : context.type === 'auto' ? /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarAuto, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n ref: forwardedRef,\n forceMount: forceMount\n })) : context.type === 'always' ? /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarVisible, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n ref: forwardedRef\n })) : null;\n});\n/*#__PURE__*/ Object.assign($57acba87d6e25586$export$2fabd85d0eba3c57, {\n displayName: $57acba87d6e25586$var$SCROLLBAR_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$ScrollAreaScrollbarHover = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { forceMount: forceMount , ...scrollbarProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = $fnFM9$useState(false);\n $fnFM9$useEffect(()=>{\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = ()=>{\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = ()=>{\n hideTimer = window.setTimeout(()=>setVisible(false)\n , context.scrollHideDelay);\n };\n scrollArea.addEventListener('pointerenter', handlePointerEnter);\n scrollArea.addEventListener('pointerleave', handlePointerLeave);\n return ()=>{\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n };\n }\n }, [\n context.scrollArea,\n context.scrollHideDelay\n ]);\n return /*#__PURE__*/ $fnFM9$createElement($fnFM9$Presence, {\n present: forceMount || visible\n }, /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarAuto, $fnFM9$babelruntimehelpersesmextends({\n \"data-state\": visible ? 'visible' : 'hidden'\n }, scrollbarProps, {\n ref: forwardedRef\n })));\n});\nconst $57acba87d6e25586$var$ScrollAreaScrollbarScroll = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { forceMount: forceMount , ...scrollbarProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === 'horizontal';\n const debounceScrollEnd = $57acba87d6e25586$var$useDebounceCallback(()=>send('SCROLL_END')\n , 100);\n const [state, send] = $6c2e24571c90391f$export$3e6543de14f8614f('hidden', {\n hidden: {\n SCROLL: 'scrolling'\n },\n scrolling: {\n SCROLL_END: 'idle',\n POINTER_ENTER: 'interacting'\n },\n interacting: {\n SCROLL: 'interacting',\n POINTER_LEAVE: 'idle'\n },\n idle: {\n HIDE: 'hidden',\n SCROLL: 'scrolling',\n POINTER_ENTER: 'interacting'\n }\n });\n $fnFM9$useEffect(()=>{\n if (state === 'idle') {\n const hideTimer = window.setTimeout(()=>send('HIDE')\n , context.scrollHideDelay);\n return ()=>window.clearTimeout(hideTimer)\n ;\n }\n }, [\n state,\n context.scrollHideDelay,\n send\n ]);\n $fnFM9$useEffect(()=>{\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = ()=>{\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send('SCROLL');\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener('scroll', handleScroll);\n return ()=>viewport.removeEventListener('scroll', handleScroll)\n ;\n }\n }, [\n context.viewport,\n isHorizontal,\n send,\n debounceScrollEnd\n ]);\n return /*#__PURE__*/ $fnFM9$createElement($fnFM9$Presence, {\n present: forceMount || state !== 'hidden'\n }, /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarVisible, $fnFM9$babelruntimehelpersesmextends({\n \"data-state\": state === 'hidden' ? 'hidden' : 'visible'\n }, scrollbarProps, {\n ref: forwardedRef,\n onPointerEnter: $fnFM9$composeEventHandlers(props.onPointerEnter, ()=>send('POINTER_ENTER')\n ),\n onPointerLeave: $fnFM9$composeEventHandlers(props.onPointerLeave, ()=>send('POINTER_LEAVE')\n )\n })));\n});\nconst $57acba87d6e25586$var$ScrollAreaScrollbarAuto = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount: forceMount , ...scrollbarProps } = props;\n const [visible, setVisible] = $fnFM9$useState(false);\n const isHorizontal = props.orientation === 'horizontal';\n const handleResize = $57acba87d6e25586$var$useDebounceCallback(()=>{\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n $57acba87d6e25586$var$useResizeObserver(context.viewport, handleResize);\n $57acba87d6e25586$var$useResizeObserver(context.content, handleResize);\n return /*#__PURE__*/ $fnFM9$createElement($fnFM9$Presence, {\n present: forceMount || visible\n }, /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarVisible, $fnFM9$babelruntimehelpersesmextends({\n \"data-state\": visible ? 'visible' : 'hidden'\n }, scrollbarProps, {\n ref: forwardedRef\n })));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$ScrollAreaScrollbarVisible = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { orientation: orientation = 'vertical' , ...scrollbarProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = $fnFM9$useRef(null);\n const pointerOffsetRef = $fnFM9$useRef(0);\n const [sizes, setSizes] = $fnFM9$useState({\n content: 0,\n viewport: 0,\n scrollbar: {\n size: 0,\n paddingStart: 0,\n paddingEnd: 0\n }\n });\n const thumbRatio = $57acba87d6e25586$var$getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes: sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb)=>thumbRef.current = thumb\n ,\n onThumbPointerUp: ()=>pointerOffsetRef.current = 0\n ,\n onThumbPointerDown: (pointerPos)=>pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return $57acba87d6e25586$var$getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === 'horizontal') return /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarX, $fnFM9$babelruntimehelpersesmextends({}, commonProps, {\n ref: forwardedRef,\n onThumbPositionChange: ()=>{\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = $57acba87d6e25586$var$getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos)=>{\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos)=>{\n if (context.viewport) context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }));\n if (orientation === 'vertical') return /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarY, $fnFM9$babelruntimehelpersesmextends({}, commonProps, {\n ref: forwardedRef,\n onThumbPositionChange: ()=>{\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = $57acba87d6e25586$var$getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos)=>{\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos)=>{\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }));\n return null;\n});\n/* -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$ScrollAreaScrollbarX = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { sizes: sizes , onSizesChange: onSizesChange , ...scrollbarProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = $fnFM9$useState();\n const ref = $fnFM9$useRef(null);\n const composeRefs = $fnFM9$useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n $fnFM9$useEffect(()=>{\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [\n ref\n ]);\n return /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarImpl, $fnFM9$babelruntimehelpersesmextends({\n \"data-orientation\": \"horizontal\"\n }, scrollbarProps, {\n ref: composeRefs,\n sizes: sizes,\n style: {\n bottom: 0,\n left: context.dir === 'rtl' ? 'var(--radix-scroll-area-corner-width)' : 0,\n right: context.dir === 'ltr' ? 'var(--radix-scroll-area-corner-width)' : 0,\n ['--radix-scroll-area-thumb-width']: $57acba87d6e25586$var$getThumbSize(sizes) + 'px',\n ...props.style\n },\n onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.x)\n ,\n onDragScroll: (pointerPos)=>props.onDragScroll(pointerPos.x)\n ,\n onWheelScroll: (event, maxScrollPos)=>{\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos); // prevent window scroll when wheeling on scrollbar\n if ($57acba87d6e25586$var$isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) event.preventDefault();\n }\n },\n onResize: ()=>{\n if (ref.current && context.viewport && computedStyle) onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: $57acba87d6e25586$var$toInt(computedStyle.paddingLeft),\n paddingEnd: $57acba87d6e25586$var$toInt(computedStyle.paddingRight)\n }\n });\n }\n }));\n});\nconst $57acba87d6e25586$var$ScrollAreaScrollbarY = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { sizes: sizes , onSizesChange: onSizesChange , ...scrollbarProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = $fnFM9$useState();\n const ref = $fnFM9$useRef(null);\n const composeRefs = $fnFM9$useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n $fnFM9$useEffect(()=>{\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [\n ref\n ]);\n return /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaScrollbarImpl, $fnFM9$babelruntimehelpersesmextends({\n \"data-orientation\": \"vertical\"\n }, scrollbarProps, {\n ref: composeRefs,\n sizes: sizes,\n style: {\n top: 0,\n right: context.dir === 'ltr' ? 0 : undefined,\n left: context.dir === 'rtl' ? 0 : undefined,\n bottom: 'var(--radix-scroll-area-corner-height)',\n ['--radix-scroll-area-thumb-height']: $57acba87d6e25586$var$getThumbSize(sizes) + 'px',\n ...props.style\n },\n onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.y)\n ,\n onDragScroll: (pointerPos)=>props.onDragScroll(pointerPos.y)\n ,\n onWheelScroll: (event, maxScrollPos)=>{\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos); // prevent window scroll when wheeling on scrollbar\n if ($57acba87d6e25586$var$isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) event.preventDefault();\n }\n },\n onResize: ()=>{\n if (ref.current && context.viewport && computedStyle) onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: $57acba87d6e25586$var$toInt(computedStyle.paddingTop),\n paddingEnd: $57acba87d6e25586$var$toInt(computedStyle.paddingBottom)\n }\n });\n }\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const [$57acba87d6e25586$var$ScrollbarProvider, $57acba87d6e25586$var$useScrollbarContext] = $57acba87d6e25586$var$createScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME);\nconst $57acba87d6e25586$var$ScrollAreaScrollbarImpl = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { __scopeScrollArea: __scopeScrollArea , sizes: sizes , hasThumb: hasThumb , onThumbChange: onThumbChange , onThumbPointerUp: onThumbPointerUp , onThumbPointerDown: onThumbPointerDown , onThumbPositionChange: onThumbPositionChange , onDragScroll: onDragScroll , onWheelScroll: onWheelScroll , onResize: onResize , ...scrollbarProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = $fnFM9$useState(null);\n const composeRefs = $fnFM9$useComposedRefs(forwardedRef, (node)=>setScrollbar(node)\n );\n const rectRef = $fnFM9$useRef(null);\n const prevWebkitUserSelectRef = $fnFM9$useRef('');\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = $fnFM9$useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = $fnFM9$useCallbackRef(onThumbPositionChange);\n const handleResize = $57acba87d6e25586$var$useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({\n x: x,\n y: y\n });\n }\n }\n /**\n * We bind wheel event imperatively so we can switch off passive\n * mode for document wheel event to allow it to be prevented\n */ $fnFM9$useEffect(()=>{\n const handleWheel = (event)=>{\n const element = event.target;\n const isScrollbarWheel = scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener('wheel', handleWheel, {\n passive: false\n });\n return ()=>document.removeEventListener('wheel', handleWheel, {\n passive: false\n })\n ;\n }, [\n viewport,\n scrollbar,\n maxScrollPos,\n handleWheelScroll\n ]);\n /**\n * Update thumb position on sizes change\n */ $fnFM9$useEffect(handleThumbPositionChange, [\n sizes,\n handleThumbPositionChange\n ]);\n $57acba87d6e25586$var$useResizeObserver(scrollbar, handleResize);\n $57acba87d6e25586$var$useResizeObserver(context.content, handleResize);\n return /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollbarProvider, {\n scope: __scopeScrollArea,\n scrollbar: scrollbar,\n hasThumb: hasThumb,\n onThumbChange: $fnFM9$useCallbackRef(onThumbChange),\n onThumbPointerUp: $fnFM9$useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: $fnFM9$useCallbackRef(onThumbPointerDown)\n }, /*#__PURE__*/ $fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({}, scrollbarProps, {\n ref: composeRefs,\n style: {\n position: 'absolute',\n ...scrollbarProps.style\n },\n onPointerDown: $fnFM9$composeEventHandlers(props.onPointerDown, (event)=>{\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect(); // pointer capture doesn't prevent text selection in Safari\n // so we remove text selection manually when scrolling\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = 'none';\n handleDragScroll(event);\n }\n }),\n onPointerMove: $fnFM9$composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: $fnFM9$composeEventHandlers(props.onPointerUp, (event)=>{\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) element.releasePointerCapture(event.pointerId);\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n rectRef.current = null;\n })\n })));\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaThumb\n * -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$THUMB_NAME = 'ScrollAreaThumb';\nconst $57acba87d6e25586$export$9fba1154677d7cd2 = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { forceMount: forceMount , ...thumbProps } = props;\n const scrollbarContext = $57acba87d6e25586$var$useScrollbarContext($57acba87d6e25586$var$THUMB_NAME, props.__scopeScrollArea);\n return /*#__PURE__*/ $fnFM9$createElement($fnFM9$Presence, {\n present: forceMount || scrollbarContext.hasThumb\n }, /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaThumbImpl, $fnFM9$babelruntimehelpersesmextends({\n ref: forwardedRef\n }, thumbProps)));\n});\nconst $57acba87d6e25586$var$ScrollAreaThumbImpl = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { __scopeScrollArea: __scopeScrollArea , style: style , ...thumbProps } = props;\n const scrollAreaContext = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = $57acba87d6e25586$var$useScrollbarContext($57acba87d6e25586$var$THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange: onThumbPositionChange } = scrollbarContext;\n const composedRef = $fnFM9$useComposedRefs(forwardedRef, (node)=>scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = $fnFM9$useRef();\n const debounceScrollEnd = $57acba87d6e25586$var$useDebounceCallback(()=>{\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n $fnFM9$useEffect(()=>{\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n /**\n * We only bind to native scroll event so we know when scroll starts and ends.\n * When scroll starts we start a requestAnimationFrame loop that checks for\n * changes to scroll position. That rAF loop triggers our thumb position change\n * when relevant to avoid scroll-linked effects. We cancel the loop when scroll ends.\n * https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\n */ const handleScroll = ()=>{\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = $57acba87d6e25586$var$addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener('scroll', handleScroll);\n return ()=>viewport.removeEventListener('scroll', handleScroll)\n ;\n }\n }, [\n scrollAreaContext.viewport,\n debounceScrollEnd,\n onThumbPositionChange\n ]);\n return /*#__PURE__*/ $fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({\n \"data-state\": scrollbarContext.hasThumb ? 'visible' : 'hidden'\n }, thumbProps, {\n ref: composedRef,\n style: {\n width: 'var(--radix-scroll-area-thumb-width)',\n height: 'var(--radix-scroll-area-thumb-height)',\n ...style\n },\n onPointerDownCapture: $fnFM9$composeEventHandlers(props.onPointerDownCapture, (event)=>{\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({\n x: x,\n y: y\n });\n }),\n onPointerUp: $fnFM9$composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }));\n});\n/*#__PURE__*/ Object.assign($57acba87d6e25586$export$9fba1154677d7cd2, {\n displayName: $57acba87d6e25586$var$THUMB_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaCorner\n * -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$CORNER_NAME = 'ScrollAreaCorner';\nconst $57acba87d6e25586$export$56969d565df7cc4b = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== 'scroll' && hasBothScrollbarsVisible;\n return hasCorner ? /*#__PURE__*/ $fnFM9$createElement($57acba87d6e25586$var$ScrollAreaCornerImpl, $fnFM9$babelruntimehelpersesmextends({}, props, {\n ref: forwardedRef\n })) : null;\n});\n/*#__PURE__*/ Object.assign($57acba87d6e25586$export$56969d565df7cc4b, {\n displayName: $57acba87d6e25586$var$CORNER_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$var$ScrollAreaCornerImpl = /*#__PURE__*/ $fnFM9$forwardRef((props, forwardedRef)=>{\n const { __scopeScrollArea: __scopeScrollArea , ...cornerProps } = props;\n const context = $57acba87d6e25586$var$useScrollAreaContext($57acba87d6e25586$var$CORNER_NAME, __scopeScrollArea);\n const [width1, setWidth] = $fnFM9$useState(0);\n const [height1, setHeight] = $fnFM9$useState(0);\n const hasSize = Boolean(width1 && height1);\n $57acba87d6e25586$var$useResizeObserver(context.scrollbarX, ()=>{\n var _context$scrollbarX;\n const height = ((_context$scrollbarX = context.scrollbarX) === null || _context$scrollbarX === void 0 ? void 0 : _context$scrollbarX.offsetHeight) || 0;\n context.onCornerHeightChange(height);\n setHeight(height);\n });\n $57acba87d6e25586$var$useResizeObserver(context.scrollbarY, ()=>{\n var _context$scrollbarY;\n const width = ((_context$scrollbarY = context.scrollbarY) === null || _context$scrollbarY === void 0 ? void 0 : _context$scrollbarY.offsetWidth) || 0;\n context.onCornerWidthChange(width);\n setWidth(width);\n });\n return hasSize ? /*#__PURE__*/ $fnFM9$createElement($fnFM9$Primitive.div, $fnFM9$babelruntimehelpersesmextends({}, cornerProps, {\n ref: forwardedRef,\n style: {\n width: width1,\n height: height1,\n position: 'absolute',\n right: context.dir === 'ltr' ? 0 : undefined,\n left: context.dir === 'rtl' ? 0 : undefined,\n bottom: 0,\n ...props.style\n }\n })) : null;\n});\n/* -----------------------------------------------------------------------------------------------*/ function $57acba87d6e25586$var$toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction $57acba87d6e25586$var$getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction $57acba87d6e25586$var$getThumbSize(sizes) {\n const ratio = $57acba87d6e25586$var$getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio; // minimum of 18 matches macOS minimum\n return Math.max(thumbSize, 18);\n}\nfunction $57acba87d6e25586$var$getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = 'ltr') {\n const thumbSizePx = $57acba87d6e25586$var$getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === 'ltr' ? [\n 0,\n maxScrollPos\n ] : [\n maxScrollPos * -1,\n 0\n ];\n const interpolate = $57acba87d6e25586$var$linearScale([\n minPointerPos,\n maxPointerPos\n ], scrollRange);\n return interpolate(pointerPos);\n}\nfunction $57acba87d6e25586$var$getThumbOffsetFromScroll(scrollPos, sizes, dir = 'ltr') {\n const thumbSizePx = $57acba87d6e25586$var$getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === 'ltr' ? [\n 0,\n maxScrollPos\n ] : [\n maxScrollPos * -1,\n 0\n ];\n const scrollWithoutMomentum = $fnFM9$clamp(scrollPos, scrollClampRange);\n const interpolate = $57acba87d6e25586$var$linearScale([\n 0,\n maxScrollPos\n ], [\n 0,\n maxThumbPos\n ]);\n return interpolate(scrollWithoutMomentum);\n} // https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction $57acba87d6e25586$var$linearScale(input, output) {\n return (value)=>{\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction $57acba87d6e25586$var$isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n} // Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nconst $57acba87d6e25586$var$addUnlinkedScrollListener = (node, handler = ()=>{})=>{\n let prevPosition = {\n left: node.scrollLeft,\n top: node.scrollTop\n };\n let rAF = 0;\n (function loop() {\n const position = {\n left: node.scrollLeft,\n top: node.scrollTop\n };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return ()=>window.cancelAnimationFrame(rAF)\n ;\n};\nfunction $57acba87d6e25586$var$useDebounceCallback(callback, delay) {\n const handleCallback = $fnFM9$useCallbackRef(callback);\n const debounceTimerRef = $fnFM9$useRef(0);\n $fnFM9$useEffect(()=>()=>window.clearTimeout(debounceTimerRef.current)\n , []);\n return $fnFM9$useCallback(()=>{\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [\n handleCallback,\n delay\n ]);\n}\nfunction $57acba87d6e25586$var$useResizeObserver(element, onResize) {\n const handleResize = $fnFM9$useCallbackRef(onResize);\n $fnFM9$useLayoutEffect(()=>{\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */ const resizeObserver = new ResizeObserver(()=>{\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return ()=>{\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [\n element,\n handleResize\n ]);\n}\n/* -----------------------------------------------------------------------------------------------*/ const $57acba87d6e25586$export$be92b6f5f03c0fe9 = $57acba87d6e25586$export$ccf8d8d7bbf3c2cc;\nconst $57acba87d6e25586$export$d5c6c08dc2d3ca7 = $57acba87d6e25586$export$a21cbf9f11fca853;\nconst $57acba87d6e25586$export$9a4e88b92edfce6b = $57acba87d6e25586$export$2fabd85d0eba3c57;\nconst $57acba87d6e25586$export$6521433ed15a34db = $57acba87d6e25586$export$9fba1154677d7cd2;\nconst $57acba87d6e25586$export$ac61190d9fc311a9 = $57acba87d6e25586$export$56969d565df7cc4b;\n\n\n\n\nexport {$57acba87d6e25586$export$488468afe3a6f2b1 as createScrollAreaScope, $57acba87d6e25586$export$ccf8d8d7bbf3c2cc as ScrollArea, $57acba87d6e25586$export$a21cbf9f11fca853 as ScrollAreaViewport, $57acba87d6e25586$export$2fabd85d0eba3c57 as ScrollAreaScrollbar, $57acba87d6e25586$export$9fba1154677d7cd2 as ScrollAreaThumb, $57acba87d6e25586$export$56969d565df7cc4b as ScrollAreaCorner, $57acba87d6e25586$export$be92b6f5f03c0fe9 as Root, $57acba87d6e25586$export$d5c6c08dc2d3ca7 as Viewport, $57acba87d6e25586$export$9a4e88b92edfce6b as Scrollbar, $57acba87d6e25586$export$6521433ed15a34db as Thumb, $57acba87d6e25586$export$ac61190d9fc311a9 as Corner};\n//# sourceMappingURL=index.module.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { scrollbarSize, offsetScrollbars, scrollbarHovered, hidden }, getRef) => ({\n root: {\n overflow: \"hidden\"\n },\n viewport: {\n width: \"100%\",\n height: \"100%\",\n paddingRight: offsetScrollbars ? scrollbarSize : void 0,\n paddingBottom: offsetScrollbars ? scrollbarSize : void 0\n },\n scrollbar: {\n display: hidden ? \"none\" : \"flex\",\n userSelect: \"none\",\n touchAction: \"none\",\n boxSizing: \"border-box\",\n padding: scrollbarSize / 5,\n transition: \"background-color 150ms ease, opacity 150ms ease\",\n \"&:hover\": {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[8] : theme.colors.gray[0],\n [`& .${getRef(\"thumb\")}`]: {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.white, 0.5) : theme.fn.rgba(theme.black, 0.5)\n }\n },\n '&[data-orientation=\"vertical\"]': {\n width: scrollbarSize\n },\n '&[data-orientation=\"horizontal\"]': {\n flexDirection: \"column\",\n height: scrollbarSize\n },\n '&[data-state=\"hidden\"]': {\n display: \"none\",\n opacity: 0\n }\n },\n thumb: {\n ref: getRef(\"thumb\"),\n flex: 1,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.white, 0.4) : theme.fn.rgba(theme.black, 0.4),\n borderRadius: scrollbarSize,\n position: \"relative\",\n transition: \"background-color 150ms ease\",\n display: hidden ? \"none\" : void 0,\n overflow: \"hidden\",\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"100%\",\n height: \"100%\",\n minWidth: 44,\n minHeight: 44\n }\n },\n corner: {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[0],\n transition: \"opacity 150ms ease\",\n opacity: scrollbarHovered ? 1 : 0,\n display: hidden ? \"none\" : void 0\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ScrollArea.styles.js.map\n","import React, { forwardRef, useState } from 'react';\nimport * as RadixScrollArea from '@radix-ui/react-scroll-area';\nimport { useComponentDefaultProps, useMantineTheme } from '@mantine/styles';\nimport { packSx } from '@mantine/utils';\nimport useStyles from './ScrollArea.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n scrollbarSize: 12,\n scrollHideDelay: 1e3,\n type: \"hover\",\n offsetScrollbars: false\n};\nconst _ScrollArea = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ScrollArea\", defaultProps, props), {\n children,\n className,\n classNames,\n styles,\n scrollbarSize,\n scrollHideDelay,\n type,\n dir,\n offsetScrollbars,\n viewportRef,\n onScrollPositionChange,\n unstyled,\n viewportProps\n } = _a, others = __objRest(_a, [\n \"children\",\n \"className\",\n \"classNames\",\n \"styles\",\n \"scrollbarSize\",\n \"scrollHideDelay\",\n \"type\",\n \"dir\",\n \"offsetScrollbars\",\n \"viewportRef\",\n \"onScrollPositionChange\",\n \"unstyled\",\n \"viewportProps\"\n ]);\n const [scrollbarHovered, setScrollbarHovered] = useState(false);\n const theme = useMantineTheme();\n const { classes, cx } = useStyles({ scrollbarSize, offsetScrollbars, scrollbarHovered, hidden: type === \"never\" }, { name: \"ScrollArea\", classNames, styles, unstyled });\n return /* @__PURE__ */ React.createElement(RadixScrollArea.Root, {\n type: type === \"never\" ? \"always\" : type,\n scrollHideDelay,\n dir: dir || theme.dir,\n ref,\n asChild: true\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className)\n }, others), /* @__PURE__ */ React.createElement(RadixScrollArea.Viewport, __spreadProps(__spreadValues({}, viewportProps), {\n className: classes.viewport,\n ref: viewportRef,\n onScroll: typeof onScrollPositionChange === \"function\" ? ({ currentTarget }) => onScrollPositionChange({\n x: currentTarget.scrollLeft,\n y: currentTarget.scrollTop\n }) : void 0\n }), children), /* @__PURE__ */ React.createElement(RadixScrollArea.Scrollbar, {\n orientation: \"horizontal\",\n className: classes.scrollbar,\n forceMount: true,\n onMouseEnter: () => setScrollbarHovered(true),\n onMouseLeave: () => setScrollbarHovered(false)\n }, /* @__PURE__ */ React.createElement(RadixScrollArea.Thumb, {\n className: classes.thumb\n })), /* @__PURE__ */ React.createElement(RadixScrollArea.Scrollbar, {\n orientation: \"vertical\",\n className: classes.scrollbar,\n forceMount: true,\n onMouseEnter: () => setScrollbarHovered(true),\n onMouseLeave: () => setScrollbarHovered(false)\n }, /* @__PURE__ */ React.createElement(RadixScrollArea.Thumb, {\n className: classes.thumb\n })), /* @__PURE__ */ React.createElement(RadixScrollArea.Corner, {\n className: classes.corner\n })));\n});\nconst ScrollAreaAutosize = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ScrollAreaAutosize\", defaultProps, props), {\n maxHeight,\n children,\n classNames,\n styles,\n scrollbarSize,\n scrollHideDelay,\n type,\n dir,\n offsetScrollbars,\n viewportRef,\n onScrollPositionChange,\n unstyled,\n sx\n } = _a, others = __objRest(_a, [\n \"maxHeight\",\n \"children\",\n \"classNames\",\n \"styles\",\n \"scrollbarSize\",\n \"scrollHideDelay\",\n \"type\",\n \"dir\",\n \"offsetScrollbars\",\n \"viewportRef\",\n \"onScrollPositionChange\",\n \"unstyled\",\n \"sx\"\n ]);\n return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, others), {\n ref,\n sx: [{ display: \"flex\", maxHeight }, ...packSx(sx)]\n }), /* @__PURE__ */ React.createElement(Box, {\n sx: { display: \"flex\", flexDirection: \"column\", flex: 1 }\n }, /* @__PURE__ */ React.createElement(_ScrollArea, {\n classNames,\n styles,\n scrollHideDelay,\n scrollbarSize,\n type,\n dir,\n offsetScrollbars,\n viewportRef,\n onScrollPositionChange,\n unstyled\n }, children)));\n});\nScrollAreaAutosize.displayName = \"@mantine/core/ScrollAreaAutosize\";\n_ScrollArea.displayName = \"@mantine/core/ScrollArea\";\n_ScrollArea.Autosize = ScrollAreaAutosize;\nconst ScrollArea = _ScrollArea;\n\nexport { ScrollArea, _ScrollArea };\n//# sourceMappingURL=ScrollArea.js.map\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * A data provider that provides data to position an inner element of the\n * floating element (usually a triangle or caret) so that it is centered to the\n * reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n const {\n element,\n padding\n } = options;\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(args);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(args);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const [reference, _setReference] = React.useState(null);\n const [floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (referenceRef.current !== node) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (floatingRef.current !== node) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (reference && floating) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(reference, floating, update);\n } else {\n update();\n }\n }\n }, [reference, floating, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference,\n floating\n }), [reference, floating]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, elements, setReference, setFloating]);\n}\n\nexport { arrow, useFloating };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { hideOthers } from 'aria-hidden';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\nimport { getOverflowAncestors, offset, detectOverflow, useFloating as useFloating$1 } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n map.set(event, (map.get(event) || []).filter(l => l !== listener));\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nconst useFloatingNodeId = customParentId => {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n};\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingNode = _ref => {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n};\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingTree = _ref2 => {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n};\n\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\nfunction getWindow(value) {\n return getDocument(value).defaultView || window;\n}\nfunction isElement(value) {\n return value ? value instanceof getWindow(value).Element : false;\n}\nfunction isHTMLElement(value) {\n return value ? value instanceof getWindow(value).HTMLElement : false;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = 'data-floating-ui-safe-polygon';\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nconst useHover = function (context, _temp) {\n let {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = _temp === void 0 ? {} : _temp;\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave() {\n if (isHoverOpen()) {\n onOpenChange(false);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n dataRef.current.openEvent = event;\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true);\n }, openDelay);\n } else {\n onOpenChange(true);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n closeWithDelay();\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove() {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave() {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n};\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n React.useEffect(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n React.useEffect(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n React.useEffect(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/**\n * Find the real active element. Traverses into shadowRoots.\n */\nfunction activeElement$1(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n }) || [];\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n }) || [];\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\n\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\n\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement$1(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet activeElement;\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n activeElement = event.target;\n clearTimeout(timeoutId);\n }\n}\nfunction isTabFocus(event) {\n const result = activeElement === event.relatedTarget;\n activeElement = event.relatedTarget;\n clearTimeout(timeoutId);\n return result;\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const onFocus = useEvent(props.onFocus);\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n ref: ref,\n tabIndex: 0\n // Role is only for VoiceOver\n ,\n role: role,\n \"aria-hidden\": role ? undefined : true,\n \"data-floating-ui-focus-guard\": \"\",\n style: HIDDEN_STYLES,\n onFocus: event => {\n if (isSafari() && isMac() && !isTabFocus(event)) {\n // On macOS we need to wait a little bit before moving\n // focus again.\n event.persist();\n timeoutId = window.setTimeout(() => {\n onFocus(event);\n }, 50);\n } else {\n onFocus(event);\n }\n }\n }));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingPortalNode = function (_temp) {\n let {\n id,\n enabled = true\n } = _temp === void 0 ? {} : _temp;\n const [portalEl, setPortalEl] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n index(() => {\n if (!enabled) {\n return;\n }\n const rootNode = id ? document.getElementById(id) : null;\n if (rootNode) {\n rootNode.setAttribute('data-floating-ui-portal', '');\n setPortalEl(rootNode);\n } else {\n const newPortalEl = document.createElement('div');\n if (id !== '') {\n newPortalEl.id = id || uniqueId;\n }\n newPortalEl.setAttribute('data-floating-ui-portal', '');\n setPortalEl(newPortalEl);\n const container = (portalContext == null ? void 0 : portalContext.portalNode) || document.body;\n container.appendChild(newPortalEl);\n return () => {\n container.removeChild(newPortalEl);\n };\n }\n }, [id, portalContext, uniqueId, enabled]);\n return portalEl;\n};\n\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nconst FloatingPortal = _ref => {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n enabled: !root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal && !!(root || portalNode) && preserveTabOrder;\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), root ? /*#__PURE__*/createPortal(children, root) : portalNode ? /*#__PURE__*/createPortal(children, portalNode) : null, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false));\n }\n }\n }));\n};\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(_ref) {\n let {\n context,\n children,\n order = ['content'],\n guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = _ref;\n const {\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const orderRef = useLatestRef(order);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const [tabbableContentLength, setTabbableContentLength] = React.useState(null);\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference);\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (!modal) {\n return;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (getTabbableContent().length === 0 && !isTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [domReference, floating, modal, orderRef, refs, isTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (!closeOnFocusOut) {\n return;\n }\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute('data-floating-ui-focus-guard') || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n // On iOS VoiceOver, dismissing the nested submenu will cause the\n // first item of the list to receive focus. Delaying it appears to fix\n // the issue.\n setTimeout(() => onOpenChange(false));\n }\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll('[data-floating-ui-portal]')) || []);\n function getDismissButtons() {\n return [startDismissButtonRef.current, endDismissButtonRef.current].filter(Boolean);\n }\n if (floating && modal) {\n const insideNodes = [floating, ...portalNodes, ...getDismissButtons()];\n const cleanup = hideOthers(orderRef.current.includes('reference') || isTypeableCombobox ? insideNodes.concat(domReference || []) : insideNodes);\n return () => {\n cleanup();\n };\n }\n }, [domReference, floating, modal, orderRef, portalContext, isTypeableCombobox]);\n React.useEffect(() => {\n if (modal && !guards && floating) {\n const tabIndexValues = [];\n const options = getTabbableOptions();\n const allTabbable = tabbable(getDocument(floating).body, options);\n const floatingTabbable = getTabbableElements();\n\n // Exclude all tabbable elements that are part of the order\n const elements = allTabbable.filter(el => !floatingTabbable.includes(el));\n elements.forEach((el, i) => {\n tabIndexValues[i] = el.getAttribute('tabindex');\n el.setAttribute('tabindex', '-1');\n });\n return () => {\n elements.forEach((el, i) => {\n const value = tabIndexValues[i];\n if (value == null) {\n el.removeAttribute('tabindex');\n } else {\n el.setAttribute('tabindex', value);\n }\n });\n };\n }\n }, [floating, modal, guards, getTabbableElements]);\n index(() => {\n if (!floating) return;\n const doc = getDocument(floating);\n let returnFocusValue = returnFocus;\n let preventReturnFocusScroll = false;\n const previouslyFocusedElement = activeElement$1(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n const focusableElements = getTabbableElements(floating);\n const elToFocus = (typeof initialFocus === 'number' ? focusableElements[initialFocus] : initialFocus.current) || floating;\n\n // If the `useListNavigation` hook is active, always ignore `initialFocus`\n // because it has its own handling of the initial focus.\n !ignoreInitialFocus && enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n returnFocusValue = true;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n returnFocusValue = returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n if (contains(floating, activeElement$1(doc)) && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (returnFocusValue && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n // `isPointerDownRef.current` to avoid the focus ring from appearing on\n // the reference element when click-toggling it.\n if (!refs.domReference.current || isPointerDownRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n } else {\n var _previouslyFocusedEle;\n // If the user has specified a `keydown` listener that calls\n // setOpen(false) (e.g. selecting an item and closing the floating\n // element), then sync return focus causes `useClick` to immediately\n // re-open it, unless they call `event.preventDefault()` in the\n // `keydown` listener. This helps keep backwards compatibility with\n // older examples.\n contextData.__syncReturnFocus = true;\n\n // In Safari, `useListNavigation` moves focus sync, so making this\n // sync ensures the initial item remains focused despite this being\n // invoked in Strict Mode due to double-invoked useEffects. This also\n // has the positive side effect of closing a modally focus-managed\n // on `Tab` keydown to move naturally to the next focusable\n // element.\n (_previouslyFocusedEle = previouslyFocusedElementRef.current) == null ? void 0 : _previouslyFocusedEle.focus({\n preventScroll: preventReturnFocusScroll\n });\n setTimeout(() => {\n // This isn't an actual property the user should access, make sure\n // it doesn't persist.\n delete contextData.__syncReturnFocus;\n });\n }\n }\n };\n }, [floating, getTabbableElements, initialFocus, returnFocus, dataRef, refs, events, ignoreInitialFocus]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n ...context,\n modal,\n closeOnFocusOut\n // Not concerned about the generic type.\n });\n\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [portalContext, modal, closeOnFocusOut, context]);\n index(() => {\n if (ignoreInitialFocus || !floating) return;\n function setState() {\n setTabbableContentLength(getTabbableContent().length);\n }\n setState();\n if (typeof MutationObserver === 'function') {\n const observer = new MutationObserver(setState);\n observer.observe(floating, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [floating, getTabbableContent, ignoreInitialFocus, refs]);\n const shouldRenderGuards = guards && (isInsidePortal || modal) && !isTypeableCombobox;\n function renderDismissButton(location) {\n return visuallyHiddenDismiss && modal ? /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: () => onOpenChange(false)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss') : null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), isTypeableCombobox ? null : renderDismissButton('start'), /*#__PURE__*/React.cloneElement(children, tabbableContentLength === 0 || order.includes('floating') ? {\n tabIndex: 0\n } : {}), renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = true;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nconst identifier = 'data-floating-ui-scroll-lock';\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `
`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n index(() => {\n var _window$visualViewpor, _window$visualViewpor2;\n if (!lockScroll) {\n return;\n }\n const alreadyLocked = document.body.hasAttribute(identifier);\n if (alreadyLocked) {\n return;\n }\n document.body.setAttribute(identifier, '');\n\n // RTL scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (!/iP(hone|ad|od)|iOS/.test(getPlatform())) {\n Object.assign(document.body.style, {\n overflow: 'hidden',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n document.body.removeAttribute(identifier);\n Object.assign(document.body.style, {\n overflow: '',\n [paddingProp]: ''\n });\n };\n }\n\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n const scrollX = window.pageXOffset;\n const scrollY = window.pageYOffset;\n Object.assign(document.body.style, {\n position: 'fixed',\n overflow: 'hidden',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n Object.assign(document.body.style, {\n position: '',\n overflow: '',\n top: '',\n left: '',\n right: '',\n [paddingProp]: ''\n });\n document.body.removeAttribute(identifier);\n window.scrollTo(scrollX, scrollY);\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nconst useClick = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef();\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false);\n }\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onClick(event) {\n if (dataRef.current.__syncReturnFocus) {\n return;\n }\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n }\n if (event.key === 'Enter') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n },\n onKeyUp(event) {\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n};\n\n/**\n * Check whether the event.target is within the provided node. Uses event.composedPath if available for custom element support.\n *\n * @param event The event whose target/composedPath to check\n * @param node The node to check against\n * @returns Whether the event.target/composedPath is within the node.\n */\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = function (bubbles) {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n if (bubbles === void 0) {\n bubbles = true;\n }\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles.escapeKey) != null ? _bubbles$escapeKey : true,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nconst useDismiss = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = _ref;\n let {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles = true\n } = _temp === void 0 ? {} : _temp;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onKeyDown(event) {\n if (event.key === 'Escape') {\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false);\n }\n }\n function onOutsidePress(event) {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n const win = floating.ownerDocument.defaultView || window;\n const canScrollX = target.scrollWidth > target.clientWidth;\n const canScrollY = target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = win.getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false);\n }\n function onScroll() {\n onOpenChange(false);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', onKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, onOutsidePress);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', onKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, onOutsidePress);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, events, tree, nodeId, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, nested]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n [bubbleHandlerKeys[referencePressEvent]]: () => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false);\n }\n }\n },\n floating: {\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange]);\n};\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nconst useFocus = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n keyboardOnly = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement$1(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref2) {\n let {\n pointerType\n } = _ref2;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && dataRef.current.openEvent && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n dataRef.current.openEvent = event.nativeEvent;\n onOpenChange(true);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute('data-floating-ui-focus-guard') && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n};\n\nlet isPreventScrollSupported = false;\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nconst useListNavigation = function (_ref, _temp2) {\n let {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference\n }\n } = _ref;\n let {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true\n } = _temp2 === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null,\n onNavigate: () => {}\n } : _temp2;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const focusItem = React.useCallback(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (virtual) {\n setActiveId(item == null ? void 0 : item.id);\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n }, [virtual, scrollItemIntoViewRef]);\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousOpenRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousOpenRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousOpenRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n onNavigate(indexRef.current);\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n if (!enabled) {\n return;\n }\n if (previousOpenRef.current && !open) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating && !contains(parentFloating, activeElement$1(getDocument(parentFloating)))) {\n parentFloating.focus({\n preventScroll: true\n });\n }\n }\n }, [enabled, open, tree, parentId]);\n index(() => {\n keyRef.current = null;\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n });\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref2) {\n let {\n currentTarget\n } = _ref2;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref3 => {\n let {\n currentTarget\n } = _ref3;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref4) {\n let {\n currentTarget\n } = _ref4;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave() {\n if (!isPointerModalityRef.current) {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n\n // Virtual cursor with VoiceOver on iOS needs this to be flushed\n // synchronously or there is a glitch that prevents nested\n // submenus from being accessible.\n flushSync(() => onNavigate(null));\n if (!virtual) {\n var _refs$floating$curren;\n // This also needs to be sync to prevent fast mouse movements\n // from leaving behind a stale active item when landing on a\n // disabled button item.\n (_refs$floating$curren = refs.floating.current) == null ? void 0 : _refs$floating$curren.focus({\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false);\n if (isHTMLElement(domReference)) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n const prevIndex = indexRef.current;\n if (event.key === ARROW_UP) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || indexRef.current < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n if (event.key === ARROW_DOWN) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = minIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = Math.floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stopEvent(event);\n if (prevIndex % cols !== 0) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n const lastRow = Math.floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n if (loop && lastRow) {\n indexRef.current = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n indexRef.current = prevIndex;\n }\n }\n onNavigate(indexRef.current);\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement$1(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': activeId\n };\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n if (virtual && open) {\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n const isNavigationKey = isArrowKey || event.key === 'Enter' || event.key === ' ' || event.key === '';\n if (isNavigationKey) {\n keyRef.current = event.key;\n }\n if (nested) {\n if (isCrossOrientationOpenKey(event.key, orientation, rtl)) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true);\n }\n }\n return;\n }\n if (isMainOrientationKey(event.key, orientation)) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item]);\n};\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nconst useRole = function (_ref, _temp) {\n let {\n open\n } = _ref;\n let {\n enabled = true,\n role = 'dialog'\n } = _temp === void 0 ? {} : _temp;\n const rootId = useId();\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: rootId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? rootId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? rootId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, rootId, referenceId]);\n};\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(_ref, _temp) {\n let {\n open,\n elements: {\n floating\n }\n } = _ref;\n let {\n duration = 250\n } = _temp === void 0 ? {} : _temp;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // . This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, _temp2) {\n let {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = _temp2 === void 0 ? {} : _temp2;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const [styles, setStyles] = React.useState({});\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n index(() => {\n const fnArgs = {\n side,\n placement\n };\n const initial = initialRef.current;\n const close = closeRef.current;\n const open = openRef.current;\n const common = commonRef.current;\n const initialStyles = typeof initial === 'function' ? initial(fnArgs) : initial;\n const closeStyles = typeof close === 'function' ? close(fnArgs) : close;\n const commonStyles = typeof common === 'function' ? common(fnArgs) : common;\n const openStyles = (typeof open === 'function' ? open(fnArgs) : open) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial' || status === 'unmounted') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [side, placement, closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nconst useTypeahead = function (_ref, _temp) {\n var _ref2;\n let {\n open,\n dataRef,\n refs\n } = _ref;\n let {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch = () => {},\n enabled = true,\n findMatch = null,\n resetMs = 1000,\n ignoreKeys = [],\n selectedIndex = null\n } = _temp === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null\n } : _temp;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEvent(unstable_onMatch);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref3;\n prevIndexRef.current = (_ref3 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref3 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function onKeyDown(event) {\n var _refs$floating$curren;\n // Correctly scope nested non-portalled floating elements. Since the nested\n // floating element is inside of the another, we find the closest role\n // that indicates the floating element scope.\n const target = getTarget(event.nativeEvent);\n if (isElement(target) && (activeElement$1(getDocument(target)) !== event.currentTarget ? (_refs$floating$curren = refs.floating.current) != null && _refs$floating$curren.contains(target) ? target.closest('[role=\"dialog\"],[role=\"menu\"],[role=\"listbox\"],[role=\"tree\"],[role=\"grid\"]') !== event.currentTarget : false : !event.currentTarget.contains(target))) {\n return;\n }\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n dataRef.current.typing = true;\n if (event.key === ' ') {\n stopEvent(event);\n }\n }\n const listContent = listRef.current;\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n dataRef.current.typing = false;\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const orderedList = [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)];\n const str = findMatchRef.current ? findMatchRef.current(orderedList, stringRef.current) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(stringRef.current.toLocaleLowerCase())) === 0);\n const index = str ? listContent.indexOf(str) : -1;\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown\n }\n };\n }, [enabled, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, refs]);\n};\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nconst useInnerOffset = (_ref, _ref2) => {\n let {\n open,\n elements\n } = _ref;\n let {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = _ref2;\n const onChange = useEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n};\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nfunction safePolygon(_temp) {\n let {\n restMs = 0,\n buffer = 0.5,\n blockPointerEvents = false\n } = _temp === void 0 ? {} : _temp;\n let timeoutId;\n let isInsideRect = false;\n let hasLanded = false;\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[rect.left, refRect.top + 1], [rect.left, rect.bottom - 1], [rect.right, rect.bottom - 1], [rect.right, refRect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= refRect.top + 1;\n break;\n case 'bottom':\n rectPoly = [[rect.left, rect.top + 1], [rect.left, refRect.bottom - 1], [rect.right, refRect.bottom - 1], [rect.right, rect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= refRect.bottom - 1 && clientY <= rect.bottom;\n break;\n case 'left':\n rectPoly = [[rect.right - 1, rect.bottom], [rect.right - 1, rect.top], [refRect.left + 1, rect.top], [refRect.left + 1, rect.bottom]];\n isInsideRect = clientX >= rect.left && clientX <= refRect.left + 1 && clientY >= rect.top && clientY <= rect.bottom;\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, rect.bottom], [refRect.right - 1, rect.top], [rect.left + 1, rect.top], [rect.left + 1, rect.bottom]];\n isInsideRect = clientX >= refRect.right - 1 && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n const poly = isInsideRect ? rectPoly : getPolygon([x, y]);\n if (isInsideRect) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isPointInPolygon([clientX, clientY], poly)) {\n close();\n } else if (restMs && !hasLanded) {\n timeoutId = setTimeout(close, restMs);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const [domReference, setDomReference] = React.useState(null);\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const onOpenChange = useEvent(unstable_onOpenChange);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n reference: setReference,\n positionReference: setPositionReference\n }), [position, refs, context, setReference, setPositionReference]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.forEach(fn => fn(...args));\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\nconst useInteractions = function (propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n};\n\nexport { FloatingDelayGroup, FloatingFocusManager, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import { useState, useEffect } from 'react';\nimport { autoUpdate } from '@floating-ui/react';\nimport { useDidUpdate } from '@mantine/hooks';\n\nfunction useFloatingAutoUpdate({ opened, floating, positionDependencies }) {\n const [delayedUpdate, setDelayedUpdate] = useState(0);\n useEffect(() => {\n if (floating.refs.reference.current && floating.refs.floating.current) {\n return autoUpdate(floating.refs.reference.current, floating.refs.floating.current, floating.update);\n }\n return void 0;\n }, [floating.refs.reference.current, floating.refs.floating.current, opened, delayedUpdate]);\n useDidUpdate(() => {\n floating.update();\n }, positionDependencies);\n useDidUpdate(() => {\n setDelayedUpdate((c) => c + 1);\n }, [opened]);\n}\n\nexport { useFloatingAutoUpdate };\n//# sourceMappingURL=use-floating-auto-update.js.map\n","import { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { useFloating, size, offset, shift, limitShift, flip, inline, arrow } from '@floating-ui/react';\nimport { useFloatingAutoUpdate } from '../Floating/use-floating-auto-update.js';\n\nfunction getPopoverMiddlewares(options) {\n const middlewares = [offset(options.offset)];\n if (options.middlewares.shift) {\n middlewares.push(shift({ limiter: limitShift() }));\n }\n if (options.middlewares.flip) {\n middlewares.push(flip());\n }\n if (options.middlewares.inline) {\n middlewares.push(inline());\n }\n middlewares.push(arrow({ element: options.arrowRef, padding: options.arrowOffset }));\n return middlewares;\n}\nfunction usePopover(options) {\n const [_opened, setOpened] = useUncontrolled({\n value: options.opened,\n defaultValue: options.defaultOpened,\n finalValue: false,\n onChange: options.onChange\n });\n const onClose = () => {\n var _a;\n (_a = options.onClose) == null ? void 0 : _a.call(options);\n setOpened(false);\n };\n const onToggle = () => {\n var _a, _b;\n if (_opened) {\n (_a = options.onClose) == null ? void 0 : _a.call(options);\n setOpened(false);\n } else {\n (_b = options.onOpen) == null ? void 0 : _b.call(options);\n setOpened(true);\n }\n };\n const floating = useFloating({\n placement: options.position,\n middleware: [\n ...getPopoverMiddlewares(options),\n ...options.width === \"target\" ? [\n size({\n apply({ rects }) {\n var _a, _b;\n Object.assign((_b = (_a = floating.refs.floating.current) == null ? void 0 : _a.style) != null ? _b : {}, {\n width: `${rects.reference.width}px`\n });\n }\n })\n ] : []\n ]\n });\n useFloatingAutoUpdate({\n opened: options.opened,\n positionDependencies: options.positionDependencies,\n floating\n });\n useDidUpdate(() => {\n var _a;\n (_a = options.onPositionChange) == null ? void 0 : _a.call(options, floating.placement);\n }, [floating.placement]);\n return {\n floating,\n controlled: typeof options.opened === \"boolean\",\n opened: _opened,\n onClose,\n onToggle\n };\n}\n\nexport { usePopover };\n//# sourceMappingURL=use-popover.js.map\n","const POPOVER_ERRORS = {\n context: \"Popover component was not found in the tree\",\n children: \"Popover.Target component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported\"\n};\n\nexport { POPOVER_ERRORS };\n//# sourceMappingURL=Popover.errors.js.map\n","import { createSafeContext } from '@mantine/utils';\nimport { POPOVER_ERRORS } from './Popover.errors.js';\n\nconst [PopoverContextProvider, usePopoverContext] = createSafeContext(POPOVER_ERRORS.context);\n\nexport { PopoverContextProvider, usePopoverContext };\n//# sourceMappingURL=Popover.context.js.map\n","import { forwardRef, cloneElement } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { isElement } from '@mantine/utils';\nimport { useComponentDefaultProps, clsx } from '@mantine/styles';\nimport { usePopoverContext } from '../Popover.context.js';\nimport { POPOVER_ERRORS } from '../Popover.errors.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n refProp: \"ref\",\n popupType: \"dialog\"\n};\nconst PopoverTarget = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"PopoverTarget\", defaultProps, props), { children, refProp, popupType } = _a, others = __objRest(_a, [\"children\", \"refProp\", \"popupType\"]);\n if (!isElement(children)) {\n throw new Error(POPOVER_ERRORS.children);\n }\n const forwardedProps = others;\n const ctx = usePopoverContext();\n const targetRef = useMergedRef(ctx.reference, children.ref, ref);\n const accessibleProps = ctx.withRoles ? {\n \"aria-haspopup\": popupType,\n \"aria-expanded\": ctx.opened,\n \"aria-controls\": ctx.getDropdownId(),\n id: ctx.getTargetId()\n } : {};\n return cloneElement(children, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, forwardedProps), accessibleProps), ctx.targetProps), {\n className: clsx(ctx.targetProps.className, forwardedProps.className, children.props.className),\n [refProp]: targetRef\n }), !ctx.controlled ? { onClick: ctx.onToggle } : null));\n});\nPopoverTarget.displayName = \"@mantine/core/PopoverTarget\";\n\nexport { PopoverTarget };\n//# sourceMappingURL=PopoverTarget.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { radius, shadow }) => ({\n dropdown: {\n position: \"absolute\",\n backgroundColor: theme.white,\n background: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.white,\n border: `1px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]}`,\n padding: `${theme.spacing.sm}px ${theme.spacing.md}px`,\n boxShadow: theme.shadows[shadow] || shadow || \"none\",\n borderRadius: theme.fn.radius(radius),\n \"&:focus\": {\n outline: 0\n }\n },\n arrow: {\n backgroundColor: \"inherit\",\n border: `1px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]}`,\n zIndex: 1\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=PopoverDropdown.styles.js.map\n","import { transitions } from '../transitions.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst transitionStatuses = {\n entering: \"in\",\n entered: \"in\",\n exiting: \"out\",\n exited: \"out\",\n \"pre-exiting\": \"out\",\n \"pre-entering\": \"out\"\n};\nfunction getTransitionStyles({\n transition,\n state,\n duration,\n timingFunction\n}) {\n const shared = {\n transitionDuration: `${duration}ms`,\n transitionTimingFunction: timingFunction\n };\n if (typeof transition === \"string\") {\n if (!(transition in transitions)) {\n return null;\n }\n return __spreadValues(__spreadValues(__spreadValues({\n transitionProperty: transitions[transition].transitionProperty\n }, shared), transitions[transition].common), transitions[transition][transitionStatuses[state]]);\n }\n return __spreadValues(__spreadValues(__spreadValues({\n transitionProperty: transition.transitionProperty\n }, shared), transition.common), transition[transitionStatuses[state]]);\n}\n\nexport { getTransitionStyles };\n//# sourceMappingURL=get-transition-styles.js.map\n","import { useState, useRef, useEffect } from 'react';\nimport { useReducedMotion, useDidUpdate } from '@mantine/hooks';\nimport { useMantineTheme } from '@mantine/styles';\n\nfunction useTransition({\n duration,\n exitDuration,\n timingFunction,\n mounted,\n onEnter,\n onExit,\n onEntered,\n onExited\n}) {\n const theme = useMantineTheme();\n const shouldReduceMotion = useReducedMotion();\n const reduceMotion = theme.respectReducedMotion ? shouldReduceMotion : false;\n const [transitionStatus, setStatus] = useState(mounted ? \"entered\" : \"exited\");\n let transitionDuration = reduceMotion ? 0 : duration;\n const timeoutRef = useRef(-1);\n const handleStateChange = (shouldMount) => {\n const preHandler = shouldMount ? onEnter : onExit;\n const handler = shouldMount ? onEntered : onExited;\n setStatus(shouldMount ? \"pre-entering\" : \"pre-exiting\");\n window.clearTimeout(timeoutRef.current);\n transitionDuration = reduceMotion ? 0 : shouldMount ? duration : exitDuration;\n if (transitionDuration === 0) {\n typeof preHandler === \"function\" && preHandler();\n typeof handler === \"function\" && handler();\n setStatus(shouldMount ? \"entered\" : \"exited\");\n } else {\n const preStateTimeout = window.setTimeout(() => {\n typeof preHandler === \"function\" && preHandler();\n setStatus(shouldMount ? \"entering\" : \"exiting\");\n }, 10);\n timeoutRef.current = window.setTimeout(() => {\n window.clearTimeout(preStateTimeout);\n typeof handler === \"function\" && handler();\n setStatus(shouldMount ? \"entered\" : \"exited\");\n }, transitionDuration);\n }\n };\n useDidUpdate(() => {\n handleStateChange(mounted);\n }, [mounted]);\n useEffect(() => () => window.clearTimeout(timeoutRef.current), []);\n return {\n transitionDuration,\n transitionStatus,\n transitionTimingFunction: timingFunction || theme.transitionTimingFunction\n };\n}\n\nexport { useTransition };\n//# sourceMappingURL=use-transition.js.map\n","import React from 'react';\nimport { getTransitionStyles } from './get-transition-styles/get-transition-styles.js';\nimport { useTransition } from './use-transition.js';\n\nfunction Transition({\n transition,\n duration = 250,\n exitDuration = duration,\n mounted,\n children,\n timingFunction,\n onExit,\n onEntered,\n onEnter,\n onExited\n}) {\n const { transitionDuration, transitionStatus, transitionTimingFunction } = useTransition({\n mounted,\n exitDuration,\n duration,\n timingFunction,\n onExit,\n onEntered,\n onEnter,\n onExited\n });\n if (transitionDuration === 0) {\n return mounted ? /* @__PURE__ */ React.createElement(React.Fragment, null, children({})) : null;\n }\n return transitionStatus === \"exited\" ? null : /* @__PURE__ */ React.createElement(React.Fragment, null, children(getTransitionStyles({\n transition,\n duration: transitionDuration,\n state: transitionStatus,\n timingFunction: transitionTimingFunction\n })));\n}\nTransition.displayName = \"@mantine/core/Transition\";\n\nexport { Transition };\n//# sourceMappingURL=Transition.js.map\n","import { cloneElement } from 'react';\nimport { isElement } from '@mantine/utils';\nimport { useFocusTrap, useMergedRef } from '@mantine/hooks';\n\nfunction FocusTrap({\n children,\n active = true,\n refProp = \"ref\"\n}) {\n const focusTrapRef = useFocusTrap(active);\n const ref = useMergedRef(focusTrapRef, children == null ? void 0 : children.ref);\n if (!isElement(children)) {\n return children;\n }\n return cloneElement(children, { [refProp]: ref });\n}\nFocusTrap.displayName = \"@mantine/core/FocusTrap\";\n\nexport { FocusTrap };\n//# sourceMappingURL=FocusTrap.js.map\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction horizontalSide(placement, arrowY, arrowOffset, arrowPosition) {\n if (placement === \"center\" || arrowPosition === \"center\") {\n return { top: arrowY };\n }\n if (placement === \"end\") {\n return { bottom: arrowOffset };\n }\n if (placement === \"start\") {\n return { top: arrowOffset };\n }\n return {};\n}\nfunction verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir) {\n if (placement === \"center\" || arrowPosition === \"center\") {\n return { left: arrowX };\n }\n if (placement === \"end\") {\n return { [dir === \"ltr\" ? \"right\" : \"left\"]: arrowOffset };\n }\n if (placement === \"start\") {\n return { [dir === \"ltr\" ? \"left\" : \"right\"]: arrowOffset };\n }\n return {};\n}\nconst radiusByFloatingSide = {\n bottom: \"borderTopLeftRadius\",\n left: \"borderTopRightRadius\",\n right: \"borderBottomLeftRadius\",\n top: \"borderBottomRightRadius\"\n};\nfunction getArrowPositionStyles({\n position,\n withBorder,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n arrowX,\n arrowY,\n dir\n}) {\n const [side, placement = \"center\"] = position.split(\"-\");\n const baseStyles = {\n width: arrowSize,\n height: arrowSize,\n transform: \"rotate(45deg)\",\n position: \"absolute\",\n [radiusByFloatingSide[side]]: arrowRadius\n };\n const arrowPlacement = withBorder ? -arrowSize / 2 - 1 : -arrowSize / 2;\n if (side === \"left\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {\n right: arrowPlacement,\n borderLeft: 0,\n borderBottom: 0\n });\n }\n if (side === \"right\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), horizontalSide(placement, arrowY, arrowOffset, arrowPosition)), {\n left: arrowPlacement,\n borderRight: 0,\n borderTop: 0\n });\n }\n if (side === \"top\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {\n bottom: arrowPlacement,\n borderTop: 0,\n borderLeft: 0\n });\n }\n if (side === \"bottom\") {\n return __spreadProps(__spreadValues(__spreadValues({}, baseStyles), verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir)), {\n top: arrowPlacement,\n borderBottom: 0,\n borderRight: 0\n });\n }\n return {};\n}\n\nexport { getArrowPositionStyles };\n//# sourceMappingURL=get-arrow-position-styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useMantineTheme } from '@mantine/styles';\nimport { getArrowPositionStyles } from './get-arrow-position-styles.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst FloatingArrow = forwardRef((_a, ref) => {\n var _b = _a, {\n withBorder,\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n visible,\n arrowX,\n arrowY\n } = _b, others = __objRest(_b, [\n \"withBorder\",\n \"position\",\n \"arrowSize\",\n \"arrowOffset\",\n \"arrowRadius\",\n \"arrowPosition\",\n \"visible\",\n \"arrowX\",\n \"arrowY\"\n ]);\n const theme = useMantineTheme();\n if (!visible) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(\"div\", __spreadProps(__spreadValues({}, others), {\n ref,\n style: getArrowPositionStyles({\n withBorder,\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n dir: theme.dir,\n arrowX,\n arrowY\n })\n }));\n});\nFloatingArrow.displayName = \"@mantine/core/FloatingArrow\";\n\nexport { FloatingArrow };\n//# sourceMappingURL=FloatingArrow.js.map\n","import React from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { closeOnEscape } from '@mantine/utils';\nimport { useFocusReturn } from '@mantine/hooks';\nimport { usePopoverContext } from '../Popover.context.js';\nimport useStyles from './PopoverDropdown.styles.js';\nimport { OptionalPortal } from '../../Portal/OptionalPortal.js';\nimport { Transition } from '../../Transition/Transition.js';\nimport { FocusTrap } from '../../FocusTrap/FocusTrap.js';\nimport { Box } from '../../Box/Box.js';\nimport { FloatingArrow } from '../../Floating/FloatingArrow/FloatingArrow.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nfunction PopoverDropdown(props) {\n const _a = useComponentDefaultProps(\"PopoverDropdown\", defaultProps, props), { style, className, children, onKeyDownCapture } = _a, others = __objRest(_a, [\"style\", \"className\", \"children\", \"onKeyDownCapture\"]);\n const ctx = usePopoverContext();\n const { classes, cx } = useStyles({ radius: ctx.radius, shadow: ctx.shadow }, {\n name: ctx.__staticSelector,\n classNames: ctx.classNames,\n styles: ctx.styles,\n unstyled: ctx.unstyled\n });\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus\n });\n const accessibleProps = ctx.withRoles ? {\n \"aria-labelledby\": ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: \"dialog\"\n } : {};\n if (ctx.disabled) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(OptionalPortal, {\n withinPortal: ctx.withinPortal\n }, /* @__PURE__ */ React.createElement(Transition, {\n mounted: ctx.opened,\n transition: ctx.transition,\n duration: ctx.transitionDuration,\n exitDuration: typeof ctx.exitTransitionDuration === \"number\" ? ctx.exitTransitionDuration : ctx.transitionDuration\n }, (transitionStyles) => {\n var _a2, _b;\n return /* @__PURE__ */ React.createElement(FocusTrap, {\n active: ctx.trapFocus\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues(__spreadProps(__spreadValues({}, accessibleProps), {\n tabIndex: -1,\n key: ctx.placement,\n ref: ctx.floating,\n style: __spreadProps(__spreadValues(__spreadValues({}, style), transitionStyles), {\n zIndex: ctx.zIndex,\n top: (_a2 = ctx.y) != null ? _a2 : 0,\n left: (_b = ctx.x) != null ? _b : 0,\n width: ctx.width === \"target\" ? void 0 : ctx.width\n }),\n className: cx(classes.dropdown, className),\n onKeyDownCapture: closeOnEscape(ctx.onClose, {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture\n }),\n \"data-position\": ctx.placement\n }), others), children, /* @__PURE__ */ React.createElement(FloatingArrow, {\n ref: ctx.arrowRef,\n arrowX: ctx.arrowX,\n arrowY: ctx.arrowY,\n visible: ctx.withArrow,\n withBorder: true,\n position: ctx.placement,\n arrowSize: ctx.arrowSize,\n arrowRadius: ctx.arrowRadius,\n arrowOffset: ctx.arrowOffset,\n arrowPosition: ctx.arrowPosition,\n className: classes.arrow\n })));\n }));\n}\nPopoverDropdown.displayName = \"@mantine/core/PopoverDropdown\";\n\nexport { PopoverDropdown };\n//# sourceMappingURL=PopoverDropdown.js.map\n","function getFloatingPosition(dir, position) {\n if (dir === \"rtl\" && (position.includes(\"right\") || position.includes(\"left\"))) {\n const [side, placement] = position.split(\"-\");\n const flippedPosition = side === \"right\" ? \"left\" : \"right\";\n return placement === void 0 ? flippedPosition : `${flippedPosition}-${placement}`;\n }\n return position;\n}\n\nexport { getFloatingPosition };\n//# sourceMappingURL=get-floating-position.js.map\n","import React, { useRef, useState, useCallback } from 'react';\nimport { useId, useClickOutside } from '@mantine/hooks';\nimport { getDefaultZIndex, useComponentDefaultProps, useMantineTheme } from '@mantine/styles';\nimport { usePopover } from './use-popover.js';\nimport { PopoverContextProvider } from './Popover.context.js';\nimport { PopoverTarget } from './PopoverTarget/PopoverTarget.js';\nimport { PopoverDropdown } from './PopoverDropdown/PopoverDropdown.js';\nimport { getFloatingPosition } from '../Floating/get-floating-position/get-floating-position.js';\n\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n position: \"bottom\",\n offset: 8,\n positionDependencies: [],\n transition: \"fade\",\n transitionDuration: 150,\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: \"side\",\n closeOnClickOutside: true,\n withinPortal: false,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n clickOutsideEvents: [\"mousedown\", \"touchstart\"],\n zIndex: getDefaultZIndex(\"popover\"),\n __staticSelector: \"Popover\",\n width: \"max-content\"\n};\nfunction Popover(props) {\n var _b, _c, _d, _e, _f, _g;\n const arrowRef = useRef(null);\n const _a = useComponentDefaultProps(\"Popover\", defaultProps, props), {\n children,\n position,\n offset,\n onPositionChange,\n positionDependencies,\n opened,\n transition,\n transitionDuration,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n exitTransitionDuration,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus\n } = _a, others = __objRest(_a, [\n \"children\",\n \"position\",\n \"offset\",\n \"onPositionChange\",\n \"positionDependencies\",\n \"opened\",\n \"transition\",\n \"transitionDuration\",\n \"width\",\n \"middlewares\",\n \"withArrow\",\n \"arrowSize\",\n \"arrowOffset\",\n \"arrowRadius\",\n \"arrowPosition\",\n \"unstyled\",\n \"classNames\",\n \"styles\",\n \"closeOnClickOutside\",\n \"withinPortal\",\n \"closeOnEscape\",\n \"clickOutsideEvents\",\n \"trapFocus\",\n \"onClose\",\n \"onOpen\",\n \"onChange\",\n \"zIndex\",\n \"radius\",\n \"shadow\",\n \"id\",\n \"defaultOpened\",\n \"exitTransitionDuration\",\n \"__staticSelector\",\n \"withRoles\",\n \"disabled\",\n \"returnFocus\"\n ]);\n const [targetNode, setTargetNode] = useState(null);\n const [dropdownNode, setDropdownNode] = useState(null);\n const uid = useId(id);\n const theme = useMantineTheme();\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(theme.dir, position),\n offset: offset + (withArrow ? arrowSize / 2 : 0),\n arrowRef,\n arrowOffset,\n onPositionChange,\n positionDependencies,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose\n });\n useClickOutside(() => closeOnClickOutside && popover.onClose(), clickOutsideEvents, [\n targetNode,\n dropdownNode\n ]);\n const reference = useCallback((node) => {\n setTargetNode(node);\n popover.floating.reference(node);\n }, [popover.floating.reference]);\n const floating = useCallback((node) => {\n setDropdownNode(node);\n popover.floating.floating(node);\n }, [popover.floating.floating]);\n return /* @__PURE__ */ React.createElement(PopoverContextProvider, {\n value: {\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: (_d = (_c = (_b = popover.floating) == null ? void 0 : _b.middlewareData) == null ? void 0 : _c.arrow) == null ? void 0 : _d.x,\n arrowY: (_g = (_f = (_e = popover.floating) == null ? void 0 : _e.middlewareData) == null ? void 0 : _f.arrow) == null ? void 0 : _g.y,\n opened: popover.opened,\n arrowRef,\n transition,\n transitionDuration,\n exitTransitionDuration,\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => `${uid}-target`,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled\n }\n }, children);\n}\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.displayName = \"@mantine/core/Popover\";\n\nexport { Popover };\n//# sourceMappingURL=Popover.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { size }) => ({\n label: {\n display: \"inline-block\",\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),\n fontWeight: 500,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.gray[9],\n wordBreak: \"break-word\",\n cursor: \"default\",\n WebkitTapHighlightColor: \"transparent\"\n },\n required: {\n color: theme.fn.variant({ variant: \"filled\", color: \"red\" }).background\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputLabel.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './InputLabel.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n labelElement: \"label\",\n size: \"sm\"\n};\nconst InputLabel = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputLabel\", defaultProps, props), {\n labelElement,\n children,\n required,\n size,\n classNames,\n styles,\n unstyled,\n className,\n htmlFor,\n __staticSelector\n } = _a, others = __objRest(_a, [\n \"labelElement\",\n \"children\",\n \"required\",\n \"size\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"className\",\n \"htmlFor\",\n \"__staticSelector\"\n ]);\n const { classes, cx } = useStyles({ size }, { name: [\"InputWrapper\", __staticSelector], classNames, styles, unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component: labelElement,\n ref,\n className: cx(classes.label, className),\n htmlFor: labelElement === \"label\" ? htmlFor : void 0\n }, others), children, required && /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.required,\n \"aria-hidden\": true\n }, \" *\"));\n});\nInputLabel.displayName = \"@mantine/core/InputLabel\";\n\nexport { InputLabel };\n//# sourceMappingURL=InputLabel.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { size }) => ({\n error: {\n wordBreak: \"break-word\",\n color: theme.fn.variant({ variant: \"filled\", color: \"red\" }).background,\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }) - 2,\n lineHeight: 1.2,\n display: \"block\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputError.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './InputError.styles.js';\nimport { Text } from '../../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\"\n};\nconst InputError = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputError\", defaultProps, props), { children, className, classNames, styles, unstyled, size, __staticSelector } = _a, others = __objRest(_a, [\"children\", \"className\", \"classNames\", \"styles\", \"unstyled\", \"size\", \"__staticSelector\"]);\n const { classes, cx } = useStyles({ size }, { name: [\"InputWrapper\", __staticSelector], classNames, styles, unstyled });\n return /* @__PURE__ */ React.createElement(Text, __spreadValues({\n className: cx(classes.error, className),\n ref\n }, others), children);\n});\nInputError.displayName = \"@mantine/core/InputError\";\n\nexport { InputError };\n//# sourceMappingURL=InputError.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { size }) => ({\n description: {\n wordBreak: \"break-word\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6],\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }) - 2,\n lineHeight: 1.2,\n display: \"block\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputDescription.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './InputDescription.styles.js';\nimport { Text } from '../../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\"\n};\nconst InputDescription = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputDescription\", defaultProps, props), { children, className, classNames, styles, unstyled, size, __staticSelector } = _a, others = __objRest(_a, [\"children\", \"className\", \"classNames\", \"styles\", \"unstyled\", \"size\", \"__staticSelector\"]);\n const { classes, cx } = useStyles({ size }, { name: [\"InputWrapper\", __staticSelector], classNames, styles, unstyled });\n return /* @__PURE__ */ React.createElement(Text, __spreadValues({\n color: \"dimmed\",\n className: cx(classes.description, className),\n ref,\n unstyled\n }, others), children);\n});\nInputDescription.displayName = \"@mantine/core/InputDescription\";\n\nexport { InputDescription };\n//# sourceMappingURL=InputDescription.js.map\n","import { useContext, createContext } from 'react';\n\nconst InputWrapperContext = createContext({\n offsetBottom: false,\n offsetTop: false,\n describedBy: void 0\n});\nconst InputWrapperProvider = InputWrapperContext.Provider;\nconst useInputWrapperContext = () => useContext(InputWrapperContext);\n\nexport { InputWrapperProvider, useInputWrapperContext };\n//# sourceMappingURL=InputWrapper.context.js.map\n","function getInputOffsets(inputWrapperOrder, { hasDescription, hasError }) {\n const inputIndex = inputWrapperOrder.findIndex((part) => part === \"input\");\n const aboveInput = inputWrapperOrder[inputIndex - 1];\n const belowInput = inputWrapperOrder[inputIndex + 1];\n const offsetTop = hasDescription && aboveInput === \"description\" || hasError && aboveInput === \"error\";\n const offsetBottom = hasDescription && belowInput === \"description\" || hasError && belowInput === \"error\";\n return { offsetBottom, offsetTop };\n}\n\nexport { getInputOffsets };\n//# sourceMappingURL=get-input-offsets.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme) => ({\n root: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n lineHeight: theme.lineHeight\n })\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InputWrapper.styles.js.map\n","import React, { forwardRef, Fragment } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { InputLabel } from '../InputLabel/InputLabel.js';\nimport { InputError } from '../InputError/InputError.js';\nimport { InputDescription } from '../InputDescription/InputDescription.js';\nimport { InputWrapperProvider } from '../InputWrapper.context.js';\nimport { getInputOffsets } from './get-input-offsets.js';\nimport useStyles from './InputWrapper.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n labelElement: \"label\",\n size: \"sm\",\n inputContainer: (children) => children,\n inputWrapperOrder: [\"label\", \"description\", \"input\", \"error\"]\n};\nconst InputWrapper = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputWrapper\", defaultProps, props), {\n className,\n label,\n children,\n required,\n id,\n error,\n description,\n labelElement,\n labelProps,\n descriptionProps,\n errorProps,\n classNames,\n styles,\n size,\n inputContainer,\n __staticSelector,\n unstyled,\n inputWrapperOrder,\n withAsterisk\n } = _a, others = __objRest(_a, [\n \"className\",\n \"label\",\n \"children\",\n \"required\",\n \"id\",\n \"error\",\n \"description\",\n \"labelElement\",\n \"labelProps\",\n \"descriptionProps\",\n \"errorProps\",\n \"classNames\",\n \"styles\",\n \"size\",\n \"inputContainer\",\n \"__staticSelector\",\n \"unstyled\",\n \"inputWrapperOrder\",\n \"withAsterisk\"\n ]);\n const { classes, cx } = useStyles(null, {\n classNames,\n styles,\n name: [\"InputWrapper\", __staticSelector],\n unstyled\n });\n const sharedProps = {\n classNames,\n styles,\n unstyled,\n size,\n __staticSelector\n };\n const isRequired = typeof withAsterisk === \"boolean\" ? withAsterisk : required;\n const errorId = id ? `${id}-error` : errorProps == null ? void 0 : errorProps.id;\n const descriptionId = id ? `${id}-description` : descriptionProps == null ? void 0 : descriptionProps.id;\n const hasError = !!error && typeof error !== \"boolean\";\n const _describedBy = `${hasError ? errorId : \"\"} ${description ? descriptionId : \"\"}`;\n const describedBy = _describedBy.trim().length > 0 ? _describedBy.trim() : void 0;\n const _label = label && /* @__PURE__ */ React.createElement(InputLabel, __spreadValues(__spreadValues({\n key: \"label\",\n labelElement,\n id: id ? `${id}-label` : void 0,\n htmlFor: id,\n required: isRequired\n }, sharedProps), labelProps), label);\n const _description = description && /* @__PURE__ */ React.createElement(InputDescription, __spreadProps(__spreadValues(__spreadValues({\n key: \"description\"\n }, descriptionProps), sharedProps), {\n size: (descriptionProps == null ? void 0 : descriptionProps.size) || sharedProps.size,\n id: (descriptionProps == null ? void 0 : descriptionProps.id) || descriptionId\n }), description);\n const _input = /* @__PURE__ */ React.createElement(Fragment, {\n key: \"input\"\n }, inputContainer(children));\n const _error = typeof error !== \"boolean\" && error && /* @__PURE__ */ React.createElement(InputError, __spreadProps(__spreadValues(__spreadValues({}, errorProps), sharedProps), {\n size: (errorProps == null ? void 0 : errorProps.size) || sharedProps.size,\n key: \"error\",\n id: (errorProps == null ? void 0 : errorProps.id) || errorId\n }), error);\n const content = inputWrapperOrder.map((part) => {\n switch (part) {\n case \"label\":\n return _label;\n case \"input\":\n return _input;\n case \"description\":\n return _description;\n case \"error\":\n return _error;\n default:\n return null;\n }\n });\n return /* @__PURE__ */ React.createElement(InputWrapperProvider, {\n value: __spreadValues({\n describedBy\n }, getInputOffsets(inputWrapperOrder, {\n hasDescription: !!_description,\n hasError: !!_error\n }))\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others), content));\n});\nInputWrapper.displayName = \"@mantine/core/InputWrapper\";\n\nexport { InputWrapper };\n//# sourceMappingURL=InputWrapper.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { packSx } from '@mantine/utils';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst InputPlaceholder = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"InputPlaceholder\", defaultProps, props), { sx } = _a, others = __objRest(_a, [\"sx\"]);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component: \"span\",\n sx: [(theme) => theme.fn.placeholderStyles(), ...packSx(sx)],\n ref\n }, others));\n});\nInputPlaceholder.displayName = \"@mantine/core/InputPlaceholder\";\n\nexport { InputPlaceholder };\n//# sourceMappingURL=InputPlaceholder.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst sizes = {\n xs: 30,\n sm: 36,\n md: 42,\n lg: 50,\n xl: 60\n};\nfunction getVariantStyles({ theme, variant }) {\n if (variant === \"default\") {\n return {\n border: `1px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[4]}`,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.white,\n transition: \"border-color 100ms ease\",\n \"&:focus, &:focus-within\": theme.focusRingStyles.inputStyles(theme)\n };\n }\n if (variant === \"filled\") {\n return {\n border: \"1px solid transparent\",\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.colors.gray[1],\n \"&:focus, &:focus-within\": theme.focusRingStyles.inputStyles(theme)\n };\n }\n return {\n borderWidth: 0,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n backgroundColor: \"transparent\",\n minHeight: 28,\n outline: 0,\n \"&:focus, &:focus-within\": {\n outline: \"none\",\n borderColor: \"transparent\"\n },\n \"&:disabled\": {\n backgroundColor: \"transparent\",\n \"&:focus, &:focus-within\": {\n outline: \"none\",\n borderColor: \"transparent\"\n }\n }\n };\n}\nvar useStyles = createStyles((theme, {\n size,\n multiline,\n radius,\n variant,\n invalid,\n rightSectionWidth,\n withRightSection,\n iconWidth,\n offsetBottom,\n offsetTop,\n pointer\n}) => {\n const invalidColor = theme.fn.variant({ variant: \"filled\", color: \"red\" }).background;\n const sizeStyles = variant === \"default\" || variant === \"filled\" ? {\n minHeight: theme.fn.size({ size, sizes }),\n paddingLeft: theme.fn.size({ size, sizes }) / 3,\n paddingRight: withRightSection ? rightSectionWidth : theme.fn.size({ size, sizes }) / 3,\n borderRadius: theme.fn.radius(radius)\n } : null;\n return {\n wrapper: {\n position: \"relative\",\n marginTop: offsetTop ? `calc(${theme.spacing.xs}px / 2)` : void 0,\n marginBottom: offsetBottom ? `calc(${theme.spacing.xs}px / 2)` : void 0\n },\n input: __spreadValues(__spreadProps(__spreadValues(__spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n height: multiline ? variant === \"unstyled\" ? void 0 : \"auto\" : theme.fn.size({ size, sizes }),\n WebkitTapHighlightColor: \"transparent\",\n lineHeight: multiline ? theme.lineHeight : `${theme.fn.size({ size, sizes }) - 2}px`,\n appearance: \"none\",\n resize: \"none\",\n boxSizing: \"border-box\",\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),\n width: \"100%\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n display: \"block\",\n textAlign: \"left\",\n cursor: pointer ? \"pointer\" : void 0\n }), sizeStyles), {\n \"&:disabled\": {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[1],\n color: theme.colors.dark[2],\n opacity: 0.6,\n cursor: \"not-allowed\",\n \"&::placeholder\": {\n color: theme.colors.dark[2]\n }\n },\n \"&::placeholder\": __spreadProps(__spreadValues({}, theme.fn.placeholderStyles()), {\n opacity: 1\n }),\n \"&::-webkit-inner-spin-button, &::-webkit-outer-spin-button, &::-webkit-search-decoration, &::-webkit-search-cancel-button, &::-webkit-search-results-button, &::-webkit-search-results-decoration\": {\n appearance: \"none\"\n },\n \"&[type=number]\": {\n MozAppearance: \"textfield\"\n }\n }), getVariantStyles({ theme, variant })),\n withIcon: {\n paddingLeft: typeof iconWidth === \"number\" ? iconWidth : theme.fn.size({ size, sizes })\n },\n invalid: {\n color: invalidColor,\n borderColor: invalidColor,\n \"&::placeholder\": {\n opacity: 1,\n color: invalidColor\n }\n },\n disabled: {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[1],\n color: theme.colors.dark[2],\n opacity: 0.6,\n cursor: \"not-allowed\",\n \"&::placeholder\": {\n color: theme.colors.dark[2]\n }\n },\n icon: {\n pointerEvents: \"none\",\n position: \"absolute\",\n zIndex: 1,\n left: 0,\n top: 0,\n bottom: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: typeof iconWidth === \"number\" ? iconWidth : theme.fn.size({ size, sizes }),\n color: invalid ? theme.colors.red[theme.colorScheme === \"dark\" ? 6 : 7] : theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[5]\n },\n rightSection: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n right: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: rightSectionWidth\n }\n };\n});\n\nexport default useStyles;\nexport { sizes };\n//# sourceMappingURL=Input.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { InputWrapper } from './InputWrapper/InputWrapper.js';\nimport { InputDescription } from './InputDescription/InputDescription.js';\nimport { InputLabel } from './InputLabel/InputLabel.js';\nimport { InputError } from './InputError/InputError.js';\nimport { InputPlaceholder } from './InputPlaceholder/InputPlaceholder.js';\nimport { useInputWrapperContext } from './InputWrapper.context.js';\nimport useStyles from './Input.styles.js';\nimport { extractSystemStyles } from '../Box/style-system-props/extract-system-styles/extract-system-styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n rightSectionWidth: 36,\n size: \"sm\",\n variant: \"default\"\n};\nconst _Input = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Input\", defaultProps, props), {\n className,\n invalid,\n required,\n disabled,\n variant,\n icon,\n style,\n rightSectionWidth,\n iconWidth,\n rightSection,\n rightSectionProps,\n radius,\n size,\n wrapperProps,\n classNames,\n styles,\n __staticSelector,\n multiline,\n sx,\n unstyled,\n pointer\n } = _a, others = __objRest(_a, [\n \"className\",\n \"invalid\",\n \"required\",\n \"disabled\",\n \"variant\",\n \"icon\",\n \"style\",\n \"rightSectionWidth\",\n \"iconWidth\",\n \"rightSection\",\n \"rightSectionProps\",\n \"radius\",\n \"size\",\n \"wrapperProps\",\n \"classNames\",\n \"styles\",\n \"__staticSelector\",\n \"multiline\",\n \"sx\",\n \"unstyled\",\n \"pointer\"\n ]);\n const { offsetBottom, offsetTop, describedBy } = useInputWrapperContext();\n const { classes, cx } = useStyles({\n radius,\n size,\n multiline,\n variant,\n invalid,\n rightSectionWidth,\n iconWidth,\n withRightSection: !!rightSection,\n offsetBottom,\n offsetTop,\n pointer\n }, { classNames, styles, name: [\"Input\", __staticSelector], unstyled });\n const { systemStyles, rest } = extractSystemStyles(others);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues(__spreadValues({\n className: cx(classes.wrapper, className),\n sx,\n style\n }, systemStyles), wrapperProps), icon && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.icon\n }, icon), /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({\n component: \"input\"\n }, rest), {\n ref,\n required,\n \"aria-invalid\": invalid,\n \"aria-describedby\": describedBy,\n disabled,\n className: cx(classes[`${variant}Variant`], classes.input, {\n [classes.withIcon]: icon,\n [classes.invalid]: invalid,\n [classes.disabled]: disabled\n })\n })), rightSection && /* @__PURE__ */ React.createElement(\"div\", __spreadProps(__spreadValues({}, rightSectionProps), {\n className: classes.rightSection\n }), rightSection));\n});\n_Input.displayName = \"@mantine/core/Input\";\n_Input.Wrapper = InputWrapper;\n_Input.Label = InputLabel;\n_Input.Description = InputDescription;\n_Input.Error = InputError;\n_Input.Placeholder = InputPlaceholder;\nconst Input = createPolymorphicComponent(_Input);\n\nexport { Input, _Input };\n//# sourceMappingURL=Input.js.map\n","import React from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction AvatarPlaceholderIcon(props) {\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadProps(__spreadValues({}, props), {\n width: \"15\",\n height: \"15\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M0.877014 7.49988C0.877014 3.84219 3.84216 0.877045 7.49985 0.877045C11.1575 0.877045 14.1227 3.84219 14.1227 7.49988C14.1227 11.1575 11.1575 14.1227 7.49985 14.1227C3.84216 14.1227 0.877014 11.1575 0.877014 7.49988ZM7.49985 1.82704C4.36683 1.82704 1.82701 4.36686 1.82701 7.49988C1.82701 8.97196 2.38774 10.3131 3.30727 11.3213C4.19074 9.94119 5.73818 9.02499 7.50023 9.02499C9.26206 9.02499 10.8093 9.94097 11.6929 11.3208C12.6121 10.3127 13.1727 8.97172 13.1727 7.49988C13.1727 4.36686 10.6328 1.82704 7.49985 1.82704ZM10.9818 11.9787C10.2839 10.7795 8.9857 9.97499 7.50023 9.97499C6.01458 9.97499 4.71624 10.7797 4.01845 11.9791C4.97952 12.7272 6.18765 13.1727 7.49985 13.1727C8.81227 13.1727 10.0206 12.727 10.9818 11.9787ZM5.14999 6.50487C5.14999 5.207 6.20212 4.15487 7.49999 4.15487C8.79786 4.15487 9.84999 5.207 9.84999 6.50487C9.84999 7.80274 8.79786 8.85487 7.49999 8.85487C6.20212 8.85487 5.14999 7.80274 5.14999 6.50487ZM7.49999 5.10487C6.72679 5.10487 6.09999 5.73167 6.09999 6.50487C6.09999 7.27807 6.72679 7.90487 7.49999 7.90487C8.27319 7.90487 8.89999 7.27807 8.89999 6.50487C8.89999 5.73167 8.27319 5.10487 7.49999 5.10487Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }));\n}\n\nexport { AvatarPlaceholderIcon };\n//# sourceMappingURL=AvatarPlaceholderIcon.js.map\n","import React, { createContext, useContext } from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst AvatarGroupContext = createContext(null);\nfunction AvatarGroupProvider({ spacing, children }) {\n return /* @__PURE__ */ React.createElement(AvatarGroupContext.Provider, {\n value: { spacing }\n }, children);\n}\nfunction useAvatarGroupContext() {\n const ctx = useContext(AvatarGroupContext);\n if (ctx) {\n return __spreadProps(__spreadValues({}, ctx), { withinGroup: true });\n }\n return { spacing: null, withinGroup: false };\n}\n\nexport { AvatarGroupProvider, useAvatarGroupContext };\n//# sourceMappingURL=AvatarGroup.context.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { spacing }) => ({\n root: {\n display: \"flex\",\n paddingLeft: theme.fn.size({ size: spacing, sizes: theme.spacing })\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=AvatarGroup.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { AvatarGroupProvider } from './AvatarGroup.context.js';\nimport useStyles from './AvatarGroup.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst AvatarGroup = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"AvatarGroup\", defaultProps, props), {\n children,\n spacing = \"sm\",\n unstyled,\n className\n } = _a, others = __objRest(_a, [\n \"children\",\n \"spacing\",\n \"unstyled\",\n \"className\"\n ]);\n const { classes, cx } = useStyles({ spacing }, { name: \"AvatarGroup\", unstyled });\n return /* @__PURE__ */ React.createElement(AvatarGroupProvider, {\n spacing\n }, /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, className)\n }, others), children));\n});\nAvatarGroup.displayName = \"@mantine/core/AvatarGroup\";\n\nexport { AvatarGroup };\n//# sourceMappingURL=AvatarGroup.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst sizes = {\n xs: 16,\n sm: 26,\n md: 38,\n lg: 56,\n xl: 84\n};\nfunction getGroupStyles({ withinGroup, spacing, theme }) {\n if (!withinGroup) {\n return null;\n }\n return {\n marginLeft: -theme.fn.size({ size: spacing, sizes: theme.spacing }),\n backgroundColor: `${theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white}`,\n border: `2px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white}`\n };\n}\nvar useStyles = createStyles((theme, { size, radius, color, withinGroup, spacing, variant, gradient }) => {\n const colors = theme.fn.variant({ variant, color, gradient });\n return {\n root: __spreadValues(__spreadProps(__spreadValues({}, theme.fn.focusStyles()), {\n WebkitTapHighlightColor: \"transparent\",\n boxSizing: \"border-box\",\n position: \"relative\",\n display: \"block\",\n userSelect: \"none\",\n overflow: \"hidden\",\n width: theme.fn.size({ size, sizes }),\n minWidth: theme.fn.size({ size, sizes }),\n height: theme.fn.size({ size, sizes }),\n borderRadius: theme.fn.radius(radius),\n textDecoration: \"none\",\n border: 0,\n backgroundColor: \"transparent\",\n padding: 0\n }), getGroupStyles({ withinGroup, spacing, theme })),\n image: {\n objectFit: \"cover\",\n width: \"100%\",\n height: \"100%\",\n display: \"block\"\n },\n placeholder: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n fontSize: theme.fn.size({ size, sizes }) / 2.5,\n color: colors.color,\n fontWeight: 700,\n backgroundColor: colors.background,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: \"100%\",\n userSelect: \"none\",\n backgroundImage: variant === \"gradient\" ? colors.background : void 0,\n border: `${variant === \"gradient\" ? 0 : 1}px solid ${colors.border}`,\n borderRadius: theme.fn.radius(radius)\n }),\n placeholderIcon: {\n width: \"70%\",\n height: \"70%\",\n color: colors.color\n }\n };\n});\n\nexport default useStyles;\nexport { sizes };\n//# sourceMappingURL=Avatar.styles.js.map\n","import React, { forwardRef, useState, useEffect } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { AvatarPlaceholderIcon } from './AvatarPlaceholderIcon.js';\nimport { AvatarGroup } from './AvatarGroup/AvatarGroup.js';\nimport { useAvatarGroupContext } from './AvatarGroup/AvatarGroup.context.js';\nimport useStyles from './Avatar.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"md\",\n color: \"gray\",\n variant: \"light\"\n};\nconst _Avatar = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Avatar\", defaultProps, props), {\n className,\n size,\n src,\n alt,\n radius,\n children,\n color,\n variant,\n gradient,\n classNames,\n styles,\n imageProps,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"size\",\n \"src\",\n \"alt\",\n \"radius\",\n \"children\",\n \"color\",\n \"variant\",\n \"gradient\",\n \"classNames\",\n \"styles\",\n \"imageProps\",\n \"unstyled\"\n ]);\n const ctx = useAvatarGroupContext();\n const [error, setError] = useState(!src);\n const { classes, cx } = useStyles({ color, radius, size, withinGroup: ctx.withinGroup, spacing: ctx.spacing, variant, gradient }, { classNames, styles, unstyled, name: \"Avatar\" });\n useEffect(() => {\n !src ? setError(true) : setError(false);\n }, [src]);\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n component: \"div\",\n className: cx(classes.root, className),\n ref\n }, others), error ? /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.placeholder,\n title: alt\n }, children || /* @__PURE__ */ React.createElement(AvatarPlaceholderIcon, {\n className: classes.placeholderIcon\n })) : /* @__PURE__ */ React.createElement(\"img\", __spreadProps(__spreadValues({}, imageProps), {\n className: classes.image,\n src,\n alt,\n onError: () => setError(true)\n })));\n});\n_Avatar.displayName = \"@mantine/core/Avatar\";\n_Avatar.Group = AvatarGroup;\nconst Avatar = createPolymorphicComponent(_Avatar);\n\nexport { Avatar, _Avatar };\n//# sourceMappingURL=Avatar.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst sizes = {\n xs: { fontSize: 9, height: 16 },\n sm: { fontSize: 10, height: 18 },\n md: { fontSize: 11, height: 20 },\n lg: { fontSize: 13, height: 26 },\n xl: { fontSize: 16, height: 32 }\n};\nconst dotSizes = {\n xs: 4,\n sm: 4,\n md: 6,\n lg: 8,\n xl: 10\n};\nfunction getVariantStyles({ theme, variant, color, size, gradient }) {\n if (variant === \"dot\") {\n const dotSize = theme.fn.size({ size, sizes: dotSizes });\n return {\n backgroundColor: \"transparent\",\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.colors.gray[7],\n border: `1px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[3] : theme.colors.gray[3]}`,\n paddingLeft: theme.fn.size({ size, sizes: theme.spacing }) / 1.5 - dotSize / 2,\n \"&::before\": {\n content: '\"\"',\n display: \"block\",\n width: dotSize,\n height: dotSize,\n borderRadius: dotSize,\n backgroundColor: theme.fn.themeColor(color, theme.colorScheme === \"dark\" ? 4 : theme.fn.primaryShade(\"light\"), true),\n marginRight: dotSize\n }\n };\n }\n const colors = theme.fn.variant({ color, variant, gradient });\n return {\n background: colors.background,\n color: colors.color,\n border: `${variant === \"gradient\" ? 0 : 1}px solid ${colors.border}`\n };\n}\nvar useStyles = createStyles((theme, { color, size, radius, gradient, fullWidth, variant }) => {\n const { fontSize, height } = size in sizes ? sizes[size] : sizes.md;\n return {\n leftSection: {\n marginRight: `calc(${theme.spacing.xs}px / 2)`\n },\n rightSection: {\n marginLeft: `calc(${theme.spacing.xs}px / 2)`\n },\n inner: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n },\n root: __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, theme.fn.focusStyles()), theme.fn.fontStyles()), {\n fontSize,\n height,\n WebkitTapHighlightColor: \"transparent\",\n lineHeight: `${height - 2}px`,\n textDecoration: \"none\",\n padding: `0 ${theme.fn.size({ size, sizes: theme.spacing }) / 1.5}px`,\n boxSizing: \"border-box\",\n display: fullWidth ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: fullWidth ? \"100%\" : \"auto\",\n textTransform: \"uppercase\",\n borderRadius: theme.fn.radius(radius),\n fontWeight: 700,\n letterSpacing: 0.25,\n cursor: \"inherit\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\"\n }), getVariantStyles({ theme, variant, color, size, gradient }))\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=Badge.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './Badge.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n variant: \"light\",\n size: \"md\",\n radius: \"xl\"\n};\nconst _Badge = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Badge\", defaultProps, props), {\n className,\n color,\n variant,\n fullWidth,\n children,\n size,\n leftSection,\n rightSection,\n radius,\n gradient,\n classNames,\n styles,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"color\",\n \"variant\",\n \"fullWidth\",\n \"children\",\n \"size\",\n \"leftSection\",\n \"rightSection\",\n \"radius\",\n \"gradient\",\n \"classNames\",\n \"styles\",\n \"unstyled\"\n ]);\n const { classes, cx } = useStyles({\n size,\n fullWidth,\n color,\n radius,\n variant,\n gradient\n }, { classNames, styles, name: \"Badge\", unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others), leftSection && /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.leftSection\n }, leftSection), /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.inner\n }, children), rightSection && /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.rightSection\n }, rightSection));\n});\n_Badge.displayName = \"@mantine/core/Badge\";\nconst Badge = createPolymorphicComponent(_Badge);\n\nexport { Badge, _Badge };\n//# sourceMappingURL=Badge.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((_theme, { orientation, buttonBorderWidth }) => ({\n root: {\n display: \"flex\",\n flexDirection: orientation === \"vertical\" ? \"column\" : \"row\",\n \"& [data-button]\": {\n \"&:first-of-type\": {\n borderBottomRightRadius: 0,\n [orientation === \"vertical\" ? \"borderBottomLeftRadius\" : \"borderTopRightRadius\"]: 0,\n [orientation === \"vertical\" ? \"borderBottomWidth\" : \"borderRightWidth\"]: buttonBorderWidth / 2\n },\n \"&:last-of-type\": {\n borderTopLeftRadius: 0,\n [orientation === \"vertical\" ? \"borderTopRightRadius\" : \"borderBottomLeftRadius\"]: 0,\n [orientation === \"vertical\" ? \"borderTopWidth\" : \"borderLeftWidth\"]: buttonBorderWidth / 2\n },\n \"&:not(:first-of-type):not(:last-of-type)\": {\n borderRadius: 0,\n [orientation === \"vertical\" ? \"borderTopWidth\" : \"borderLeftWidth\"]: buttonBorderWidth / 2,\n [orientation === \"vertical\" ? \"borderBottomWidth\" : \"borderRightWidth\"]: buttonBorderWidth / 2\n },\n \"& + [data-button]\": {\n [orientation === \"vertical\" ? \"marginTop\" : \"marginLeft\"]: -buttonBorderWidth,\n \"@media (min-resolution: 192dpi)\": {\n [orientation === \"vertical\" ? \"marginTop\" : \"marginLeft\"]: 0\n }\n }\n }\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=ButtonGroup.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './ButtonGroup.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n orientation: \"horizontal\",\n buttonBorderWidth: 1\n};\nconst ButtonGroup = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"ButtonGroup\", defaultProps, props), { className, orientation, buttonBorderWidth, unstyled } = _a, others = __objRest(_a, [\"className\", \"orientation\", \"buttonBorderWidth\", \"unstyled\"]);\n const { classes, cx } = useStyles({ orientation, buttonBorderWidth }, { name: \"ButtonGroup\", unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others));\n});\nButtonGroup.displayName = \"@mantine/core/ButtonGroup\";\n\nexport { ButtonGroup };\n//# sourceMappingURL=ButtonGroup.js.map\n","import { createStyles } from '@mantine/styles';\nimport { sizes as sizes$1 } from '../Input/Input.styles.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst sizes = {\n xs: { height: sizes$1.xs, paddingLeft: 14, paddingRight: 14 },\n sm: { height: sizes$1.sm, paddingLeft: 18, paddingRight: 18 },\n md: { height: sizes$1.md, paddingLeft: 22, paddingRight: 22 },\n lg: { height: sizes$1.lg, paddingLeft: 26, paddingRight: 26 },\n xl: { height: sizes$1.xl, paddingLeft: 32, paddingRight: 32 },\n \"compact-xs\": { height: 22, paddingLeft: 7, paddingRight: 7 },\n \"compact-sm\": { height: 26, paddingLeft: 8, paddingRight: 8 },\n \"compact-md\": { height: 30, paddingLeft: 10, paddingRight: 10 },\n \"compact-lg\": { height: 34, paddingLeft: 12, paddingRight: 12 },\n \"compact-xl\": { height: 40, paddingLeft: 14, paddingRight: 14 }\n};\nfunction getSizeStyles({ compact, size, withLeftIcon, withRightIcon }) {\n if (compact) {\n return sizes[`compact-${size}`];\n }\n const _sizes = sizes[size];\n return __spreadProps(__spreadValues({}, _sizes), {\n paddingLeft: withLeftIcon ? _sizes.paddingLeft / 1.5 : _sizes.paddingLeft,\n paddingRight: withRightIcon ? _sizes.paddingRight / 1.5 : _sizes.paddingRight\n });\n}\nconst getWidthStyles = (fullWidth) => ({\n display: fullWidth ? \"block\" : \"inline-block\",\n width: fullWidth ? \"100%\" : \"auto\"\n});\nfunction getVariantStyles({ variant, theme, color, gradient }) {\n const colors = theme.fn.variant({ color, variant, gradient });\n if (variant === \"gradient\") {\n return {\n border: 0,\n backgroundImage: colors.background,\n color: colors.color,\n \"&:hover\": theme.fn.hover({\n backgroundSize: \"200%\"\n })\n };\n }\n return __spreadValues({\n border: `1px solid ${colors.border}`,\n backgroundColor: colors.background,\n color: colors.color\n }, theme.fn.hover({\n backgroundColor: colors.hover\n }));\n}\nvar useStyles = createStyles((theme, {\n color,\n size,\n radius,\n fullWidth,\n compact,\n gradient,\n variant,\n withLeftIcon,\n withRightIcon\n}) => ({\n root: __spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, getSizeStyles({ compact, size, withLeftIcon, withRightIcon })), theme.fn.fontStyles()), theme.fn.focusStyles()), getWidthStyles(fullWidth)), {\n borderRadius: theme.fn.radius(radius),\n fontWeight: 600,\n position: \"relative\",\n lineHeight: 1,\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),\n userSelect: \"none\",\n cursor: \"pointer\"\n }), getVariantStyles({ variant, theme, color, gradient })), {\n \"&:active\": theme.activeStyles,\n \"&:disabled, &[data-disabled]\": {\n borderColor: \"transparent\",\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2],\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[5],\n cursor: \"not-allowed\",\n backgroundImage: \"none\",\n pointerEvents: \"none\",\n \"&:active\": {\n transform: \"none\"\n }\n },\n \"&[data-loading]\": {\n pointerEvents: \"none\",\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n top: -1,\n left: -1,\n right: -1,\n bottom: -1,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.colors.dark[7], 0.5) : \"rgba(255, 255, 255, .5)\",\n borderRadius: theme.fn.radius(radius),\n cursor: \"not-allowed\"\n }\n }\n }),\n icon: {\n display: \"flex\",\n alignItems: \"center\"\n },\n leftIcon: {\n marginRight: 10\n },\n rightIcon: {\n marginLeft: 10\n },\n centerLoader: {\n position: \"absolute\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n opacity: 0.5\n },\n inner: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n overflow: \"visible\"\n },\n label: {\n whiteSpace: \"nowrap\",\n height: \"100%\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\"\n }\n}));\n\nexport default useStyles;\nexport { sizes };\n//# sourceMappingURL=Button.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createPolymorphicComponent } from '@mantine/utils';\nimport { ButtonGroup } from './ButtonGroup/ButtonGroup.js';\nimport useStyles, { sizes } from './Button.styles.js';\nimport { Loader } from '../Loader/Loader.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n size: \"sm\",\n type: \"button\",\n variant: \"filled\",\n loaderPosition: \"left\"\n};\nconst _Button = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Button\", defaultProps, props), {\n className,\n size,\n color,\n type,\n disabled,\n children,\n leftIcon,\n rightIcon,\n fullWidth,\n variant,\n radius,\n uppercase,\n compact,\n loading,\n loaderPosition,\n loaderProps,\n gradient,\n classNames,\n styles,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"size\",\n \"color\",\n \"type\",\n \"disabled\",\n \"children\",\n \"leftIcon\",\n \"rightIcon\",\n \"fullWidth\",\n \"variant\",\n \"radius\",\n \"uppercase\",\n \"compact\",\n \"loading\",\n \"loaderPosition\",\n \"loaderProps\",\n \"gradient\",\n \"classNames\",\n \"styles\",\n \"unstyled\"\n ]);\n const { classes, cx, theme } = useStyles({\n radius,\n color,\n size,\n fullWidth,\n compact,\n gradient,\n variant,\n withLeftIcon: !!leftIcon,\n withRightIcon: !!rightIcon\n }, { name: \"Button\", unstyled, classNames, styles });\n const colors = theme.fn.variant({ color, variant });\n const loader = /* @__PURE__ */ React.createElement(Loader, __spreadValues({\n color: colors.color,\n size: theme.fn.size({ size, sizes }).height / 2\n }, loaderProps));\n return /* @__PURE__ */ React.createElement(UnstyledButton, __spreadValues({\n className: cx(classes.root, className),\n type,\n disabled,\n \"data-button\": true,\n \"data-disabled\": disabled || void 0,\n \"data-loading\": loading || void 0,\n ref,\n unstyled\n }, others), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.inner\n }, (leftIcon || loading && loaderPosition === \"left\") && /* @__PURE__ */ React.createElement(\"span\", {\n className: cx(classes.icon, classes.leftIcon)\n }, loading && loaderPosition === \"left\" ? loader : leftIcon), loading && loaderPosition === \"center\" && /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.centerLoader\n }, loader), /* @__PURE__ */ React.createElement(\"span\", {\n className: classes.label,\n style: { textTransform: uppercase ? \"uppercase\" : void 0 }\n }, children), (rightIcon || loading && loaderPosition === \"right\") && /* @__PURE__ */ React.createElement(\"span\", {\n className: cx(classes.icon, classes.rightIcon)\n }, loading && loaderPosition === \"right\" ? loader : rightIcon)));\n});\n_Button.displayName = \"@mantine/core/Button\";\n_Button.Group = ButtonGroup;\nconst Button = createPolymorphicComponent(_Button);\n\nexport { Button, _Button };\n//# sourceMappingURL=Button.js.map\n","import { Children } from 'react';\n\nfunction filterFalsyChildren(children) {\n return Children.toArray(children).filter(Boolean);\n}\n\nexport { filterFalsyChildren };\n//# sourceMappingURL=filter-falsy-children.js.map\n","import { createStyles } from '@mantine/styles';\n\nconst GROUP_POSITIONS = {\n left: \"flex-start\",\n center: \"center\",\n right: \"flex-end\",\n apart: \"space-between\"\n};\nvar useStyles = createStyles((theme, { spacing, position, noWrap, grow, align, count }) => ({\n root: {\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: align || \"center\",\n flexWrap: noWrap ? \"nowrap\" : \"wrap\",\n justifyContent: GROUP_POSITIONS[position],\n gap: theme.fn.size({ size: spacing, sizes: theme.spacing }),\n \"& > *\": {\n boxSizing: \"border-box\",\n maxWidth: grow ? `calc(${100 / count}% - ${theme.fn.size({ size: spacing, sizes: theme.spacing }) - theme.fn.size({ size: spacing, sizes: theme.spacing }) / count}px)` : void 0,\n flexGrow: grow ? 1 : 0\n }\n }\n}));\n\nexport default useStyles;\nexport { GROUP_POSITIONS };\n//# sourceMappingURL=Group.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { filterFalsyChildren } from './filter-falsy-children/filter-falsy-children.js';\nimport useStyles from './Group.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n position: \"left\",\n spacing: \"md\"\n};\nconst Group = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Group\", defaultProps, props), { className, position, align, children, noWrap, grow, spacing, unstyled } = _a, others = __objRest(_a, [\"className\", \"position\", \"align\", \"children\", \"noWrap\", \"grow\", \"spacing\", \"unstyled\"]);\n const filteredChildren = filterFalsyChildren(children);\n const { classes, cx } = useStyles({\n align,\n grow,\n noWrap,\n spacing,\n position,\n count: filteredChildren.length\n }, { unstyled, name: \"Group\" });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others), filteredChildren);\n});\nGroup.displayName = \"@mantine/core/Group\";\n\nexport { Group };\n//# sourceMappingURL=Group.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { spacing, align, justify }) => ({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: align,\n justifyContent: justify,\n gap: theme.fn.size({ size: spacing, sizes: theme.spacing })\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Stack.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './Stack.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n spacing: \"md\",\n align: \"stretch\",\n justify: \"flex-start\"\n};\nconst Stack = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Stack\", defaultProps, props), { spacing, className, align, justify, unstyled } = _a, others = __objRest(_a, [\"spacing\", \"className\", \"align\", \"justify\", \"unstyled\"]);\n const { classes, cx } = useStyles({ spacing, align, justify }, { name: \"Stack\", unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n ref\n }, others));\n});\nStack.displayName = \"@mantine/core/Stack\";\n\nexport { Stack };\n//# sourceMappingURL=Stack.js.map\n","import React from 'react';\nimport { Group } from '../../Group/Group.js';\nimport { Stack } from '../../Stack/Stack.js';\n\nfunction InputsGroup({\n spacing,\n offset,\n orientation,\n children,\n role,\n unstyled\n}) {\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ React.createElement(Group, {\n pt: offset,\n spacing,\n role,\n unstyled\n }, children);\n }\n return /* @__PURE__ */ React.createElement(Stack, {\n pt: offset,\n spacing,\n role,\n unstyled\n }, children);\n}\n\nexport { InputsGroup };\n//# sourceMappingURL=InputsGroup.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst sizes = {\n xs: 16,\n sm: 20,\n md: 24,\n lg: 30,\n xl: 36\n};\nvar useStyles = createStyles((theme, { labelPosition, size }) => ({\n root: {},\n body: {\n display: \"flex\"\n },\n labelWrapper: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n display: \"inline-flex\",\n flexDirection: \"column\",\n WebkitTapHighlightColor: \"transparent\",\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),\n lineHeight: `${theme.fn.size({ size, sizes })}px`,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n cursor: theme.cursorType,\n order: labelPosition === \"left\" ? 1 : 2\n }),\n description: {\n marginTop: `calc(${theme.spacing.xs}px / 2)`,\n [labelPosition === \"left\" ? \"paddingRight\" : \"paddingLeft\"]: theme.spacing.sm\n },\n error: {\n marginTop: `calc(${theme.spacing.xs}px / 2)`,\n [labelPosition === \"left\" ? \"paddingRight\" : \"paddingLeft\"]: theme.spacing.sm\n },\n label: {\n cursor: theme.cursorType,\n [labelPosition === \"left\" ? \"paddingRight\" : \"paddingLeft\"]: theme.spacing.sm,\n \"&[data-disabled]\": {\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[3] : theme.colors.gray[5]\n }\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=InlineInput.styles.js.map\n","import React from 'react';\nimport useStyles from './InlineInput.styles.js';\nimport { Box } from '../Box/Box.js';\nimport { Input } from '../Input/Input.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction InlineInput(_a) {\n var _b = _a, {\n __staticSelector,\n className,\n classNames,\n styles,\n unstyled,\n children,\n label,\n description,\n id,\n disabled,\n error,\n size,\n labelPosition\n } = _b, others = __objRest(_b, [\n \"__staticSelector\",\n \"className\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"children\",\n \"label\",\n \"description\",\n \"id\",\n \"disabled\",\n \"error\",\n \"size\",\n \"labelPosition\"\n ]);\n const { classes, cx } = useStyles({ size, labelPosition }, { name: __staticSelector, styles, classNames, unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className)\n }, others), /* @__PURE__ */ React.createElement(\"div\", {\n className: cx(classes.body)\n }, children, /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.labelWrapper\n }, label && /* @__PURE__ */ React.createElement(\"label\", {\n className: classes.label,\n \"data-disabled\": disabled || void 0,\n htmlFor: id\n }, label), description && /* @__PURE__ */ React.createElement(Input.Description, {\n className: classes.description\n }, description), error && error !== \"boolean\" && /* @__PURE__ */ React.createElement(Input.Error, {\n className: classes.error\n }, error))));\n}\nInlineInput.displayName = \"@mantine/core/InlineInput\";\n\nexport { InlineInput };\n//# sourceMappingURL=InlineInput.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme, { zIndex }) => ({\n root: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Overlay.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { getDefaultZIndex, useComponentDefaultProps } from '@mantine/styles';\nimport { packSx, createPolymorphicComponent } from '@mantine/utils';\nimport useStyles from './Overlay.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n opacity: 0.6,\n color: \"#fff\",\n zIndex: getDefaultZIndex(\"modal\"),\n radius: 0,\n blur: 0\n};\nconst _Overlay = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Overlay\", defaultProps, props), { opacity, blur, color, gradient, zIndex, radius, sx, unstyled, className } = _a, others = __objRest(_a, [\"opacity\", \"blur\", \"color\", \"gradient\", \"zIndex\", \"radius\", \"sx\", \"unstyled\", \"className\"]);\n const { classes, cx } = useStyles({ zIndex }, { name: \"Overlay\", unstyled });\n const background = gradient ? { backgroundImage: gradient } : { backgroundColor: color };\n const innerOverlay = (otherProps) => /* @__PURE__ */ React.createElement(Box, __spreadValues({\n ref,\n className: cx(classes.root, className),\n sx: [\n (theme) => __spreadProps(__spreadValues({}, background), {\n opacity,\n borderRadius: theme.fn.size({ size: radius, sizes: theme.radius })\n }),\n ...packSx(sx)\n ]\n }, otherProps));\n if (blur) {\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n sx: [{ backdropFilter: `blur(${blur}px)` }, ...packSx(sx)]\n }, others), innerOverlay());\n }\n return innerOverlay(others);\n});\n_Overlay.displayName = \"@mantine/core/Overlay\";\nconst Overlay = createPolymorphicComponent(_Overlay);\n\nexport { Overlay, _Overlay };\n//# sourceMappingURL=Overlay.js.map\n","import { useRef, useEffect } from 'react';\n\nfunction useDelayedHover({ open, close, openDelay, closeDelay }) {\n const openTimeout = useRef(-1);\n const closeTimeout = useRef(-1);\n const clearTimeouts = () => {\n window.clearTimeout(openTimeout.current);\n window.clearTimeout(closeTimeout.current);\n };\n const openDropdown = () => {\n clearTimeouts();\n if (openDelay === 0) {\n open();\n } else {\n openTimeout.current = window.setTimeout(open, openDelay);\n }\n };\n const closeDropdown = () => {\n clearTimeouts();\n if (closeDelay === 0) {\n close();\n } else {\n closeTimeout.current = window.setTimeout(close, closeDelay);\n }\n };\n useEffect(() => clearTimeouts, []);\n return { openDropdown, closeDropdown };\n}\n\nexport { useDelayedHover };\n//# sourceMappingURL=use-delayed-hover.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles({\n root: {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\"\n }\n});\n\nexport default useStyles;\n//# sourceMappingURL=LoadingOverlay.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { getDefaultZIndex, useComponentDefaultProps } from '@mantine/styles';\nimport useStyles from './LoadingOverlay.styles.js';\nimport { Transition } from '../Transition/Transition.js';\nimport { Box } from '../Box/Box.js';\nimport { Loader } from '../Loader/Loader.js';\nimport { Overlay } from '../Overlay/Overlay.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n overlayOpacity: 0.75,\n transitionDuration: 0,\n zIndex: getDefaultZIndex(\"overlay\")\n};\nconst LoadingOverlay = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"LoadingOverlay\", defaultProps, props), {\n className,\n visible,\n loaderProps,\n overlayOpacity,\n overlayColor,\n transitionDuration,\n exitTransitionDuration,\n zIndex,\n style,\n loader,\n radius,\n overlayBlur,\n unstyled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"visible\",\n \"loaderProps\",\n \"overlayOpacity\",\n \"overlayColor\",\n \"transitionDuration\",\n \"exitTransitionDuration\",\n \"zIndex\",\n \"style\",\n \"loader\",\n \"radius\",\n \"overlayBlur\",\n \"unstyled\"\n ]);\n const { classes, cx, theme } = useStyles(null, { name: \"LoadingOverlay\", unstyled });\n const _zIndex = `calc(${zIndex} + 1)`;\n return /* @__PURE__ */ React.createElement(Transition, {\n duration: transitionDuration,\n exitDuration: exitTransitionDuration,\n mounted: visible,\n transition: \"fade\"\n }, (transitionStyles) => /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.root, className),\n style: __spreadProps(__spreadValues(__spreadValues({}, transitionStyles), style), { zIndex }),\n ref\n }, others), loader ? /* @__PURE__ */ React.createElement(\"div\", {\n style: { zIndex: _zIndex }\n }, loader) : /* @__PURE__ */ React.createElement(Loader, __spreadValues({\n style: { zIndex: _zIndex }\n }, loaderProps)), /* @__PURE__ */ React.createElement(Overlay, {\n opacity: overlayOpacity,\n zIndex,\n radius,\n blur: overlayBlur,\n unstyled,\n color: overlayColor || (theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white)\n })));\n});\nLoadingOverlay.displayName = \"@mantine/core/LoadingOverlay\";\n\nexport { LoadingOverlay };\n//# sourceMappingURL=LoadingOverlay.js.map\n","const MENU_ERRORS = {\n context: \"Menu component was not found in the tree\",\n children: \"Menu.Target component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported\"\n};\n\nexport { MENU_ERRORS };\n//# sourceMappingURL=Menu.errors.js.map\n","import { createSafeContext } from '@mantine/utils';\nimport { MENU_ERRORS } from './Menu.errors.js';\n\nconst [MenuContextProvider, useMenuContext] = createSafeContext(MENU_ERRORS.context);\n\nexport { MenuContextProvider, useMenuContext };\n//# sourceMappingURL=Menu.context.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme) => ({\n divider: {\n margin: `calc(${theme.spacing.xs}px / 2) -5px`,\n borderTop: `1px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2]}`\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=MenuDivider.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useMenuContext } from '../Menu.context.js';\nimport useStyles from './MenuDivider.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst MenuDivider = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuDivider\", defaultProps, props), { children, className } = _a, others = __objRest(_a, [\"children\", \"className\"]);\n const { classNames, styles, unstyled } = useMenuContext();\n const { classes, cx } = useStyles(null, { name: \"Menu\", classNames, styles, unstyled });\n return /* @__PURE__ */ React.createElement(Box, __spreadValues({\n className: cx(classes.divider, className),\n ref\n }, others));\n});\nMenuDivider.displayName = \"@mantine/core/MenuDivider\";\n\nexport { MenuDivider };\n//# sourceMappingURL=MenuDivider.js.map\n","import React, { useRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createEventHandler } from '@mantine/utils';\nimport { useMenuContext } from '../Menu.context.js';\nimport { Popover } from '../../Popover/Popover.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nfunction MenuDropdown(props) {\n const _a = useComponentDefaultProps(\"MenuDropdown\", defaultProps, props), { children, onMouseEnter, onMouseLeave } = _a, others = __objRest(_a, [\"children\", \"onMouseEnter\", \"onMouseLeave\"]);\n const wrapperRef = useRef();\n const ctx = useMenuContext();\n const handleKeyDown = (event) => {\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n wrapperRef.current.querySelectorAll(\"[data-menu-item]\")[0].focus();\n }\n };\n const handleMouseEnter = createEventHandler(onMouseEnter, () => ctx.trigger === \"hover\" && ctx.openDropdown());\n const handleMouseLeave = createEventHandler(onMouseLeave, () => ctx.trigger === \"hover\" && ctx.closeDropdown());\n return /* @__PURE__ */ React.createElement(Popover.Dropdown, __spreadValues({\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n role: \"menu\",\n \"aria-orientation\": \"vertical\"\n }, others), /* @__PURE__ */ React.createElement(\"div\", {\n tabIndex: -1,\n \"data-menu-dropdown\": true,\n \"data-autofocus\": true,\n onKeyDown: handleKeyDown,\n ref: wrapperRef,\n style: { outline: 0 }\n }, children));\n}\nMenuDropdown.displayName = \"@mantine/core/MenuDropdown\";\n\nexport { MenuDropdown };\n//# sourceMappingURL=MenuDropdown.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar useStyles = createStyles((theme, { color, radius }) => ({\n item: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {\n WebkitTapHighlightColor: \"transparent\",\n fontSize: theme.fontSizes.sm,\n border: 0,\n backgroundColor: \"transparent\",\n outline: 0,\n width: \"100%\",\n textAlign: \"left\",\n textDecoration: \"none\",\n boxSizing: \"border-box\",\n padding: `${theme.spacing.xs}px ${theme.spacing.sm}px`,\n cursor: \"pointer\",\n borderRadius: theme.fn.radius(radius),\n color: color ? theme.fn.variant({ variant: \"filled\", primaryFallback: false, color }).background : theme.colorScheme === \"dark\" ? theme.colors.dark[0] : theme.black,\n display: \"flex\",\n alignItems: \"center\",\n \"&:disabled\": {\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[3] : theme.colors.gray[5],\n pointerEvents: \"none\",\n userSelect: \"none\"\n },\n \"&[data-hovered]\": {\n backgroundColor: color ? theme.fn.variant({ variant: \"light\", color }).background : theme.colorScheme === \"dark\" ? theme.fn.rgba(theme.colors.dark[3], 0.35) : theme.colors.gray[1]\n }\n }),\n itemLabel: {\n flex: 1\n },\n itemIcon: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginRight: theme.spacing.xs\n },\n itemRightSection: {}\n}));\n\nexport default useStyles;\n//# sourceMappingURL=MenuItem.styles.js.map\n","import React, { forwardRef, useRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createEventHandler, createScopedKeydownHandler, createPolymorphicComponent } from '@mantine/utils';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useMenuContext } from '../Menu.context.js';\nimport useStyles from './MenuItem.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst _MenuItem = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuItem\", defaultProps, props), { children, className, color, closeMenuOnClick, icon, rightSection } = _a, others = __objRest(_a, [\"children\", \"className\", \"color\", \"closeMenuOnClick\", \"icon\", \"rightSection\"]);\n const ctx = useMenuContext();\n const { classes, cx, theme } = useStyles({ radius: ctx.radius, color }, { name: \"Menu\", classNames: ctx.classNames, styles: ctx.styles, unstyled: ctx.unstyled });\n const itemRef = useRef();\n const itemIndex = ctx.getItemIndex(itemRef.current);\n const _others = others;\n const handleMouseLeave = createEventHandler(_others.onMouseLeave, () => ctx.setHovered(-1));\n const handleMouseEnter = createEventHandler(_others.onMouseEnter, () => ctx.setHovered(ctx.getItemIndex(itemRef.current)));\n const handleClick = createEventHandler(_others.onClick, () => {\n if (typeof closeMenuOnClick === \"boolean\") {\n closeMenuOnClick && ctx.closeDropdownImmediately();\n } else {\n ctx.closeOnItemClick && ctx.closeDropdownImmediately();\n }\n });\n const handleFocus = createEventHandler(_others.onFocus, () => ctx.setHovered(ctx.getItemIndex(itemRef.current)));\n return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({\n component: \"button\",\n type: \"button\"\n }, others), {\n tabIndex: -1,\n onFocus: handleFocus,\n className: cx(classes.item, className),\n ref: useMergedRef(itemRef, ref),\n role: \"menuitem\",\n \"data-menu-item\": true,\n \"data-hovered\": ctx.hovered === itemIndex ? true : void 0,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onKeyDown: createScopedKeydownHandler({\n siblingSelector: \"[data-menu-item]\",\n parentSelector: \"[data-menu-dropdown]\",\n activateOnFocus: false,\n loop: ctx.loop,\n dir: theme.dir,\n orientation: \"vertical\",\n onKeyDown: _others.onKeydown\n })\n }), icon && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.itemIcon\n }, icon), children && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.itemLabel\n }, children), rightSection && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.itemRightSection\n }, rightSection));\n});\n_MenuItem.displayName = \"@mantine/core/MenuItem\";\nconst MenuItem = createPolymorphicComponent(_MenuItem);\n\nexport { MenuItem, _MenuItem };\n//# sourceMappingURL=MenuItem.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((theme) => ({\n label: {\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[2] : theme.colors.gray[6],\n fontWeight: 500,\n fontSize: theme.fontSizes.xs,\n padding: `calc(${theme.spacing.xs}px / 2) ${theme.spacing.sm}px`,\n cursor: \"default\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=MenuLabel.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useMenuContext } from '../Menu.context.js';\nimport useStyles from './MenuLabel.styles.js';\nimport { Text } from '../../Text/Text.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst MenuLabel = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuLabel\", defaultProps, props), { children, className } = _a, others = __objRest(_a, [\"children\", \"className\"]);\n const { classNames, styles, unstyled } = useMenuContext();\n const { classes, cx } = useStyles(null, { name: \"Menu\", classNames, styles, unstyled });\n return /* @__PURE__ */ React.createElement(Text, __spreadValues({\n className: cx(classes.label, className),\n ref\n }, others), children);\n});\nMenuLabel.displayName = \"@mantine/core/MenuLabel\";\n\nexport { MenuLabel };\n//# sourceMappingURL=MenuLabel.js.map\n","import React, { forwardRef, cloneElement } from 'react';\nimport { isElement, createEventHandler } from '@mantine/utils';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useMenuContext } from '../Menu.context.js';\nimport { MENU_ERRORS } from '../Menu.errors.js';\nimport { Popover } from '../../Popover/Popover.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n refProp: \"ref\"\n};\nconst MenuTarget = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"MenuTarget\", defaultProps, props), { children, refProp } = _a, others = __objRest(_a, [\"children\", \"refProp\"]);\n if (!isElement(children)) {\n throw new Error(MENU_ERRORS.children);\n }\n const ctx = useMenuContext();\n const onClick = createEventHandler(children.props.onClick, () => ctx.trigger === \"click\" && ctx.toggleDropdown());\n const onMouseEnter = createEventHandler(children.props.onMouseEnter, () => ctx.trigger === \"hover\" && ctx.openDropdown());\n const onMouseLeave = createEventHandler(children.props.onMouseLeave, () => ctx.trigger === \"hover\" && ctx.closeDropdown());\n return /* @__PURE__ */ React.createElement(Popover.Target, __spreadValues({\n refProp,\n popupType: \"menu\",\n ref\n }, others), cloneElement(children, {\n onClick,\n onMouseEnter,\n onMouseLeave,\n \"data-expanded\": ctx.opened ? true : void 0\n }));\n});\nMenuTarget.displayName = \"@mantine/core/MenuTarget\";\n\nexport { MenuTarget };\n//# sourceMappingURL=MenuTarget.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles({\n dropdown: { padding: 4 }\n});\n\nexport default useStyles;\n//# sourceMappingURL=Menu.styles.js.map\n","import React from 'react';\nimport { useHovered, getContextItemIndex } from '@mantine/utils';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { MenuDivider } from './MenuDivider/MenuDivider.js';\nimport { MenuDropdown } from './MenuDropdown/MenuDropdown.js';\nimport { MenuItem } from './MenuItem/MenuItem.js';\nimport { MenuLabel } from './MenuLabel/MenuLabel.js';\nimport { MenuTarget } from './MenuTarget/MenuTarget.js';\nimport { MenuContextProvider } from './Menu.context.js';\nimport useStyles from './Menu.styles.js';\nimport { useDelayedHover } from '../Floating/use-delayed-hover.js';\nimport { Popover } from '../Popover/Popover.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n closeOnItemClick: true,\n loop: true,\n trigger: \"click\",\n openDelay: 0,\n closeDelay: 100\n};\nfunction Menu(props) {\n const _a = useComponentDefaultProps(\"Menu\", defaultProps, props), {\n children,\n onOpen,\n onClose,\n opened,\n defaultOpened,\n onChange,\n closeOnItemClick,\n loop,\n closeOnEscape,\n trigger,\n openDelay,\n closeDelay,\n classNames,\n styles,\n unstyled,\n radius\n } = _a, others = __objRest(_a, [\n \"children\",\n \"onOpen\",\n \"onClose\",\n \"opened\",\n \"defaultOpened\",\n \"onChange\",\n \"closeOnItemClick\",\n \"loop\",\n \"closeOnEscape\",\n \"trigger\",\n \"openDelay\",\n \"closeDelay\",\n \"classNames\",\n \"styles\",\n \"unstyled\",\n \"radius\"\n ]);\n const { classes, cx } = useStyles();\n const [hovered, { setHovered, resetHovered }] = useHovered();\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange\n });\n const close = () => {\n setOpened(false);\n _opened && (onClose == null ? void 0 : onClose());\n };\n const open = () => {\n setOpened(true);\n !_opened && (onOpen == null ? void 0 : onOpen());\n };\n const toggleDropdown = () => _opened ? close() : open();\n const { openDropdown, closeDropdown } = useDelayedHover({ open, close, closeDelay, openDelay });\n const getItemIndex = (node) => getContextItemIndex(\"[data-menu-item]\", \"[data-menu-dropdown]\", node);\n useDidUpdate(() => {\n resetHovered();\n }, [_opened]);\n return /* @__PURE__ */ React.createElement(MenuContextProvider, {\n value: {\n opened: _opened,\n toggleDropdown,\n getItemIndex,\n hovered,\n setHovered,\n closeOnItemClick,\n closeDropdown: trigger === \"click\" ? close : closeDropdown,\n openDropdown: trigger === \"click\" ? open : openDropdown,\n closeDropdownImmediately: close,\n loop,\n trigger,\n radius,\n classNames,\n styles,\n unstyled\n }\n }, /* @__PURE__ */ React.createElement(Popover, __spreadProps(__spreadValues({}, others), {\n radius,\n opened: _opened,\n onChange: setOpened,\n defaultOpened,\n trapFocus: trigger === \"click\",\n closeOnEscape: closeOnEscape && trigger === \"click\",\n __staticSelector: \"Menu\",\n classNames: __spreadProps(__spreadValues({}, classNames), { dropdown: cx(classes.dropdown, classNames == null ? void 0 : classNames.dropdown) }),\n styles,\n unstyled,\n onClose: close,\n onOpen: open\n }), children));\n}\nMenu.displayName = \"@mantine/core/Menu\";\nMenu.Item = MenuItem;\nMenu.Label = MenuLabel;\nMenu.Dropdown = MenuDropdown;\nMenu.Target = MenuTarget;\nMenu.Divider = MenuDivider;\n\nexport { Menu };\n//# sourceMappingURL=Menu.js.map\n","import { useContext, createContext } from 'react';\n\nconst SwitchGroupContext = createContext(null);\nconst SwitchGroupProvider = SwitchGroupContext.Provider;\nconst useSwitchGroupContext = () => useContext(SwitchGroupContext);\n\nexport { SwitchGroupProvider, useSwitchGroupContext };\n//# sourceMappingURL=SwitchGroup.context.js.map\n","import React, { forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { InputsGroup } from '../../Checkbox/CheckboxGroup/InputsGroup.js';\nimport { SwitchGroupProvider } from '../SwitchGroup.context.js';\nimport { Input } from '../../Input/Input.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n orientation: \"horizontal\",\n spacing: \"lg\",\n size: \"sm\",\n offset: \"xs\"\n};\nconst SwitchGroup = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"SwitchGroup\", defaultProps, props), {\n children,\n value,\n defaultValue,\n onChange,\n orientation,\n spacing,\n size,\n wrapperProps,\n offset\n } = _a, others = __objRest(_a, [\n \"children\",\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"orientation\",\n \"spacing\",\n \"size\",\n \"wrapperProps\",\n \"offset\"\n ]);\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: [],\n onChange\n });\n const handleChange = (event) => {\n const itemValue = event.currentTarget.value;\n setValue(_value.includes(itemValue) ? _value.filter((item) => item !== itemValue) : [..._value, itemValue]);\n };\n return /* @__PURE__ */ React.createElement(SwitchGroupProvider, {\n value: { value: _value, onChange: handleChange, size }\n }, /* @__PURE__ */ React.createElement(Input.Wrapper, __spreadValues(__spreadValues({\n labelElement: \"div\",\n size,\n __staticSelector: \"SwitchGroup\",\n ref\n }, wrapperProps), others), /* @__PURE__ */ React.createElement(InputsGroup, {\n spacing,\n orientation,\n offset\n }, children)));\n});\nSwitchGroup.displayName = \"@mantine/core/SwitchGroup\";\n\nexport { SwitchGroup };\n//# sourceMappingURL=SwitchGroup.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst switchHeight = {\n xs: 16,\n sm: 20,\n md: 24,\n lg: 30,\n xl: 36\n};\nconst switchWidth = {\n xs: 32,\n sm: 38,\n md: 46,\n lg: 56,\n xl: 72\n};\nconst handleSizes = {\n xs: 12,\n sm: 14,\n md: 18,\n lg: 22,\n xl: 28\n};\nconst labelFontSizes = {\n xs: 5,\n sm: 6,\n md: 7,\n lg: 9,\n xl: 11\n};\nconst trackLabelPaddings = {\n xs: 4,\n sm: 5,\n md: 6,\n lg: 8,\n xl: 10\n};\nvar useStyles = createStyles((theme, { size, radius, color, labelPosition, error }) => {\n const handleSize = theme.fn.size({ size, sizes: handleSizes });\n const borderRadius = theme.fn.size({ size: radius, sizes: theme.radius });\n const colors = theme.fn.variant({ variant: \"filled\", color });\n const trackWidth = theme.fn.size({ size, sizes: switchWidth });\n const trackPadding = size === \"xs\" ? 1 : 2;\n const errorColor = theme.fn.variant({ variant: \"filled\", color: \"red\" }).background;\n return {\n input: {\n clip: \"rect(1px, 1px, 1px, 1px)\",\n height: 0,\n width: 0,\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n padding: 0,\n WebkitClipPath: \"inset(50%)\",\n clipPath: \"inset(50%)\",\n position: \"absolute\"\n },\n track: __spreadProps(__spreadValues({}, theme.fn.focusStyles(\"input:focus + &\")), {\n cursor: theme.cursorType,\n overflow: \"hidden\",\n WebkitTapHighlightColor: \"transparent\",\n position: \"relative\",\n borderRadius,\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[2],\n border: `1px solid ${error ? errorColor : theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[3]}`,\n height: theme.fn.size({ size, sizes: switchHeight }),\n minWidth: trackWidth,\n margin: 0,\n transitionProperty: \"background-color, border-color\",\n transitionTimingFunction: theme.transitionTimingFunction,\n transitionDuration: \"150ms\",\n boxSizing: \"border-box\",\n appearance: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n fontSize: theme.fn.size({ size, sizes: labelFontSizes }),\n fontWeight: 600,\n order: labelPosition === \"left\" ? 2 : 1,\n userSelect: \"none\",\n MozUserSelect: \"none\",\n WebkitUserSelect: \"none\",\n MsUserSelect: \"none\",\n zIndex: 0,\n lineHeight: 0,\n color: theme.colorScheme === \"dark\" ? theme.colors.dark[1] : theme.colors.gray[6],\n transition: `color 150ms ${theme.transitionTimingFunction}`,\n \"input:checked + &\": {\n backgroundColor: colors.background,\n borderColor: colors.background,\n color: theme.white,\n transition: `color 150ms ${theme.transitionTimingFunction}`\n },\n \"input:disabled + &\": {\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2],\n borderColor: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2],\n cursor: \"not-allowed\"\n }\n }),\n thumb: {\n position: \"absolute\",\n zIndex: 1,\n borderRadius,\n boxSizing: \"border-box\",\n display: \"flex\",\n backgroundColor: theme.white,\n height: handleSize,\n width: handleSize,\n border: `1px solid ${theme.colorScheme === \"dark\" ? theme.white : theme.colors.gray[3]}`,\n left: `${trackPadding}px`,\n transition: `left 150ms ${theme.transitionTimingFunction}`,\n \"& > *\": {\n margin: \"auto\"\n },\n \"@media (prefers-reduced-motion)\": {\n transitionDuration: theme.respectReducedMotion ? \"0ms\" : \"\"\n },\n \"input:checked + * > &\": {\n left: `calc(100% - ${handleSize}px - ${trackPadding}px)`,\n borderColor: theme.white\n },\n \"input:disabled + * > &\": {\n borderColor: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[2],\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[3] : theme.colors.gray[0]\n }\n },\n trackLabel: {\n height: \"100%\",\n display: \"grid\",\n placeContent: \"center\",\n minWidth: trackWidth - handleSize,\n paddingInline: theme.fn.size({ size, sizes: trackLabelPaddings }),\n margin: `0 0 0 ${handleSize + trackPadding}px`,\n transition: `margin 150ms ${theme.transitionTimingFunction}`,\n \"input:checked + * > &\": {\n margin: `0 ${handleSize + trackPadding}px 0 0`\n }\n }\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=Switch.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { SwitchGroup } from './SwitchGroup/SwitchGroup.js';\nimport { useSwitchGroupContext } from './SwitchGroup.context.js';\nimport useStyles from './Switch.styles.js';\nimport { extractSystemStyles } from '../Box/style-system-props/extract-system-styles/extract-system-styles.js';\nimport { InlineInput } from '../InlineInput/InlineInput.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n offLabel: \"\",\n onLabel: \"\",\n size: \"sm\",\n radius: \"xl\",\n error: false\n};\nconst Switch = forwardRef((props, ref) => {\n var _b;\n const _a = useComponentDefaultProps(\"Switch\", defaultProps, props), {\n className,\n color,\n label,\n offLabel,\n onLabel,\n id,\n style,\n size,\n radius,\n wrapperProps,\n children,\n unstyled,\n styles,\n classNames,\n thumbIcon,\n sx,\n checked,\n defaultChecked,\n onChange,\n labelPosition,\n description,\n error,\n disabled\n } = _a, others = __objRest(_a, [\n \"className\",\n \"color\",\n \"label\",\n \"offLabel\",\n \"onLabel\",\n \"id\",\n \"style\",\n \"size\",\n \"radius\",\n \"wrapperProps\",\n \"children\",\n \"unstyled\",\n \"styles\",\n \"classNames\",\n \"thumbIcon\",\n \"sx\",\n \"checked\",\n \"defaultChecked\",\n \"onChange\",\n \"labelPosition\",\n \"description\",\n \"error\",\n \"disabled\"\n ]);\n const ctx = useSwitchGroupContext();\n const { classes } = useStyles({ size: (ctx == null ? void 0 : ctx.size) || size, color, radius, labelPosition, error: !!error }, { unstyled, styles, classNames, name: \"Switch\" });\n const { systemStyles, rest } = extractSystemStyles(others);\n const uuid = useId(id);\n const contextProps = ctx ? {\n checked: ctx.value.includes(rest.value),\n onChange: ctx.onChange\n } : {};\n const [_checked, handleChange] = useUncontrolled({\n value: (_b = contextProps.checked) != null ? _b : checked,\n defaultValue: defaultChecked,\n finalValue: false\n });\n return /* @__PURE__ */ React.createElement(InlineInput, __spreadValues(__spreadValues({\n className,\n sx,\n style,\n id: uuid,\n size: (ctx == null ? void 0 : ctx.size) || size,\n labelPosition,\n label,\n description,\n error,\n disabled,\n __staticSelector: \"Switch\",\n classNames,\n styles,\n unstyled,\n \"data-checked\": contextProps.checked || void 0\n }, systemStyles), wrapperProps), /* @__PURE__ */ React.createElement(\"input\", __spreadProps(__spreadValues({}, rest), {\n disabled,\n checked: _checked,\n onChange: (event) => {\n ctx ? contextProps.onChange(event) : onChange == null ? void 0 : onChange(event);\n handleChange(event.currentTarget.checked);\n },\n id: uuid,\n ref,\n type: \"checkbox\",\n className: classes.input\n })), /* @__PURE__ */ React.createElement(\"label\", {\n htmlFor: uuid,\n className: classes.track\n }, /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.thumb\n }, thumbIcon), /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.trackLabel\n }, _checked ? onLabel : offLabel)));\n});\nSwitch.displayName = \"@mantine/core/Switch\";\nSwitch.Group = SwitchGroup;\n\nexport { Switch };\n//# sourceMappingURL=Switch.js.map\n","const TABS_ERRORS = {\n context: \"Tabs component was not found in the tree\",\n value: \"Tabs.Tab or Tabs.Panel component was rendered with invalid value or without value\"\n};\n\nexport { TABS_ERRORS };\n//# sourceMappingURL=Tabs.errors.js.map\n","import { createSafeContext } from '@mantine/utils';\nimport { TABS_ERRORS } from './Tabs.errors.js';\n\nconst [TabsContextProvider, useTabsContext] = createSafeContext(TABS_ERRORS.context);\n\nexport { TabsContextProvider, useTabsContext };\n//# sourceMappingURL=Tabs.context.js.map\n","import { createStyles } from '@mantine/styles';\nimport { GROUP_POSITIONS } from '../../Group/Group.styles.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction getVariantStyles({ variant, orientation, inverted, placement }, theme) {\n const vertical = orientation === \"vertical\";\n if (variant === \"default\") {\n return {\n [vertical ? placement === \"left\" ? \"borderRight\" : \"borderLeft\" : inverted ? \"borderTop\" : \"borderBottom\"]: `2px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[3]}`\n };\n }\n if (variant === \"outline\") {\n return {\n [vertical ? placement === \"left\" ? \"borderRight\" : \"borderLeft\" : inverted ? \"borderTop\" : \"borderBottom\"]: `1px solid ${theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[3]}`\n };\n }\n if (variant === \"pills\") {\n return {\n gap: `calc(${theme.spacing.sm}px / 2)`\n };\n }\n return {};\n}\nvar useStyles = createStyles((theme, params) => {\n const vertical = params.orientation === \"vertical\";\n return {\n tabsList: __spreadValues({\n display: \"flex\",\n flexWrap: \"wrap\",\n flexDirection: vertical ? \"column\" : \"row\",\n justifyContent: GROUP_POSITIONS[params.position],\n '& [role=\"tab\"]': {\n flex: params.grow ? 1 : void 0\n }\n }, getVariantStyles(params, theme))\n };\n});\n\nexport default useStyles;\n//# sourceMappingURL=TabsList.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { useTabsContext } from '../Tabs.context.js';\nimport useStyles from './TabsList.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n grow: false,\n position: \"left\"\n};\nconst TabsList = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"TabsList\", defaultProps, props), { children, className, grow, position } = _a, others = __objRest(_a, [\"children\", \"className\", \"grow\", \"position\"]);\n const { orientation, variant, color, radius, inverted, placement, classNames, styles, unstyled } = useTabsContext();\n const { classes, cx } = useStyles({ orientation, grow, variant, color, position, radius, inverted, placement }, { name: \"Tabs\", unstyled, classNames, styles });\n return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, others), {\n className: cx(classes.tabsList, className),\n ref,\n role: \"tablist\",\n \"aria-orientation\": orientation\n }), children);\n});\nTabsList.displayName = \"@mantine/core/TabsList\";\n\nexport { TabsList };\n//# sourceMappingURL=TabsList.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((_theme, { orientation }) => ({\n panel: {\n flex: orientation === \"vertical\" ? 1 : void 0\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=TabsPanel.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { packSx } from '@mantine/utils';\nimport { useTabsContext } from '../Tabs.context.js';\nimport useStyles from './TabsPanel.styles.js';\nimport { Box } from '../../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst TabsPanel = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"TabsPanel\", defaultProps, props), { value, children, sx, className } = _a, others = __objRest(_a, [\"value\", \"children\", \"sx\", \"className\"]);\n const ctx = useTabsContext();\n const { classes, cx } = useStyles({\n orientation: ctx.orientation,\n variant: ctx.variant,\n color: ctx.color,\n radius: ctx.radius,\n inverted: ctx.inverted,\n placement: ctx.placement\n }, { name: \"Tabs\", unstyled: ctx.unstyled, classNames: ctx.classNames, styles: ctx.styles });\n const active = ctx.value === value;\n const content = ctx.keepMounted ? children : active ? children : null;\n return /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, others), {\n ref,\n sx: [{ display: !active ? \"none\" : void 0 }, ...packSx(sx)],\n className: cx(classes.panel, className),\n role: \"tabpanel\",\n id: ctx.getPanelId(value),\n \"aria-labelledby\": ctx.getTabId(value)\n }), content);\n});\nTabsPanel.displayName = \"@mantine/core/TabsPanel\";\n\nexport { TabsPanel };\n//# sourceMappingURL=TabsPanel.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getVariantStyles(theme, { variant, orientation, color, radius, inverted, placement }) {\n const vertical = orientation === \"vertical\";\n const filledScheme = theme.fn.variant({ color, variant: \"filled\" });\n const radiusValue = theme.fn.radius(radius);\n const borderRadius = orientation === \"vertical\" ? placement === \"left\" ? `${radiusValue}px 0 0 ${radiusValue}px` : ` 0 ${radiusValue}px ${radiusValue}px 0` : inverted ? `0 0 ${radiusValue}px ${radiusValue}px` : `${radiusValue}px ${radiusValue}px 0 0`;\n if (variant === \"default\") {\n return __spreadProps(__spreadValues({\n [vertical ? placement === \"left\" ? \"borderRight\" : \"borderLeft\" : inverted ? \"borderTop\" : \"borderBottom\"]: \"2px solid transparent\",\n [vertical ? placement === \"left\" ? \"marginRight\" : \"marginLeft\" : inverted ? \"marginTop\" : \"marginBottom\"]: -2,\n borderRadius\n }, theme.fn.hover({\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[0],\n borderColor: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[3]\n })), {\n \"&[data-active]\": __spreadValues({\n borderColor: filledScheme.background,\n color: theme.colorScheme === \"dark\" ? theme.white : theme.black\n }, theme.fn.hover({ borderColor: filledScheme.background }))\n });\n }\n if (variant === \"outline\") {\n return {\n borderRadius,\n border: \"1px solid transparent\",\n [vertical ? placement === \"left\" ? \"borderRight\" : \"borderLeft\" : inverted ? \"borderTop\" : \"borderBottom\"]: \"none\",\n \"&[data-active]\": {\n borderColor: theme.colorScheme === \"dark\" ? theme.colors.dark[4] : theme.colors.gray[3],\n \"&::before\": {\n content: '\"\"',\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n position: \"absolute\",\n bottom: vertical ? 0 : inverted ? \"unset\" : -1,\n top: vertical ? 0 : inverted ? -1 : \"unset\",\n [vertical ? \"width\" : \"height\"]: 1,\n right: vertical ? placement === \"left\" ? -1 : \"unset\" : 0,\n left: vertical ? placement === \"left\" ? \"unset\" : -1 : 0\n }\n }\n };\n }\n if (variant === \"pills\") {\n return __spreadProps(__spreadValues({\n borderRadius: theme.fn.radius(radius)\n }, theme.fn.hover({\n backgroundColor: theme.colorScheme === \"dark\" ? theme.colors.dark[6] : theme.colors.gray[0]\n })), {\n \"&[data-active]\": __spreadValues({\n backgroundColor: filledScheme.background,\n color: theme.white\n }, theme.fn.hover({ backgroundColor: filledScheme.background }))\n });\n }\n return {};\n}\nvar useStyles = createStyles((theme, params) => ({\n tabLabel: {},\n tab: __spreadValues({\n position: \"relative\",\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\n paddingLeft: params.withIcon ? theme.spacing.xs : void 0,\n paddingRight: params.withRightSection ? theme.spacing.xs : void 0,\n fontSize: theme.fontSizes.sm,\n whiteSpace: \"nowrap\",\n zIndex: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: params.orientation === \"horizontal\" ? \"center\" : void 0,\n lineHeight: 1,\n \"&:disabled\": __spreadValues({\n opacity: 0.5,\n cursor: \"not-allowed\"\n }, theme.fn.hover({ backgroundColor: \"transparent\" })),\n \"&:focus\": {\n zIndex: 1\n }\n }, getVariantStyles(theme, params)),\n tabRightSection: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"&:not(:only-child)\": {\n marginLeft: 7\n }\n },\n tabIcon: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"&:not(:only-child)\": {\n marginRight: 7\n }\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Tab.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { createScopedKeydownHandler } from '@mantine/utils';\nimport { useTabsContext } from '../Tabs.context.js';\nimport useStyles from './Tab.styles.js';\nimport { UnstyledButton } from '../../UnstyledButton/UnstyledButton.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {};\nconst Tab = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"TabsTab\", defaultProps, props), { value, children, onKeyDown, onClick, className, icon, rightSection, color } = _a, others = __objRest(_a, [\"value\", \"children\", \"onKeyDown\", \"onClick\", \"className\", \"icon\", \"rightSection\", \"color\"]);\n const ctx = useTabsContext();\n const hasIcon = !!icon;\n const hasRightSection = !!rightSection;\n const { theme, classes, cx } = useStyles({\n withIcon: hasIcon || hasRightSection && !children,\n withRightSection: hasRightSection || hasIcon && !children,\n orientation: ctx.orientation,\n color: color || ctx.color,\n variant: ctx.variant,\n radius: ctx.radius,\n inverted: ctx.inverted,\n placement: ctx.placement\n }, { name: \"Tabs\", unstyled: ctx.unstyled, classNames: ctx.classNames, styles: ctx.styles });\n const isActive = value === ctx.value;\n const activateTab = (event) => {\n ctx.onTabChange(ctx.allowTabDeactivation ? value === ctx.value ? null : value : value);\n onClick == null ? void 0 : onClick(event);\n };\n return /* @__PURE__ */ React.createElement(UnstyledButton, __spreadProps(__spreadValues({}, others), {\n unstyled: ctx.unstyled,\n className: cx(classes.tab, className),\n \"data-active\": isActive || void 0,\n ref,\n type: \"button\",\n role: \"tab\",\n id: ctx.getTabId(value),\n \"aria-selected\": isActive,\n tabIndex: isActive || ctx.value === null ? 0 : -1,\n \"aria-controls\": ctx.getPanelId(value),\n onClick: activateTab,\n onKeyDown: createScopedKeydownHandler({\n siblingSelector: '[role=\"tab\"]',\n parentSelector: '[role=\"tablist\"]',\n activateOnFocus: ctx.activateTabWithKeyboard,\n loop: ctx.loop,\n dir: theme.dir,\n orientation: ctx.orientation,\n onKeyDown\n })\n }), icon && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.tabIcon\n }, icon), children && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.tabLabel\n }, children), rightSection && /* @__PURE__ */ React.createElement(\"div\", {\n className: classes.tabRightSection\n }, rightSection));\n});\nTab.displayName = \"@mantine/core/Tab\";\n\nexport { Tab };\n//# sourceMappingURL=Tab.js.map\n","import React from 'react';\nimport { getSafeId } from '@mantine/utils';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport { TabsContextProvider } from './Tabs.context.js';\nimport { TABS_ERRORS } from './Tabs.errors.js';\n\nfunction TabsProvider({\n defaultValue,\n value,\n onTabChange,\n orientation,\n children,\n loop,\n id,\n activateTabWithKeyboard,\n allowTabDeactivation,\n variant,\n color,\n radius,\n inverted,\n placement,\n keepMounted = true,\n classNames,\n styles,\n unstyled\n}) {\n const uid = useId(id);\n const [_value, onChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange: onTabChange\n });\n return /* @__PURE__ */ React.createElement(TabsContextProvider, {\n value: {\n placement,\n value: _value,\n orientation,\n id: uid,\n loop,\n activateTabWithKeyboard,\n getTabId: getSafeId(`${uid}-tab`, TABS_ERRORS.value),\n getPanelId: getSafeId(`${uid}-panel`, TABS_ERRORS.value),\n onTabChange: onChange,\n allowTabDeactivation,\n variant,\n color,\n radius,\n inverted,\n keepMounted,\n classNames,\n styles,\n unstyled\n }\n }, children);\n}\nTabsProvider.displayName = \"@mantine/core/TabsProvider\";\n\nexport { TabsProvider };\n//# sourceMappingURL=TabsProvider.js.map\n","import { createStyles } from '@mantine/styles';\n\nvar useStyles = createStyles((_theme, { orientation, placement }) => ({\n root: {\n display: orientation === \"vertical\" ? \"flex\" : void 0,\n flexDirection: placement === \"right\" ? \"row-reverse\" : \"row\"\n }\n}));\n\nexport default useStyles;\n//# sourceMappingURL=Tabs.styles.js.map\n","import React, { forwardRef } from 'react';\nimport { useComponentDefaultProps } from '@mantine/styles';\nimport { TabsList } from './TabsList/TabsList.js';\nimport { TabsPanel } from './TabsPanel/TabsPanel.js';\nimport { Tab } from './Tab/Tab.js';\nimport { TabsProvider } from './TabsProvider.js';\nimport useStyles from './Tabs.styles.js';\nimport { Box } from '../Box/Box.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst defaultProps = {\n orientation: \"horizontal\",\n loop: true,\n activateTabWithKeyboard: true,\n allowTabDeactivation: false,\n unstyled: false,\n inverted: false,\n variant: \"default\",\n placement: \"left\"\n};\nconst Tabs = forwardRef((props, ref) => {\n const _a = useComponentDefaultProps(\"Tabs\", defaultProps, props), {\n defaultValue,\n value,\n orientation,\n loop,\n activateTabWithKeyboard,\n allowTabDeactivation,\n children,\n id,\n onTabChange,\n variant,\n color,\n className,\n unstyled,\n classNames,\n styles,\n radius,\n inverted,\n keepMounted,\n placement\n } = _a, others = __objRest(_a, [\n \"defaultValue\",\n \"value\",\n \"orientation\",\n \"loop\",\n \"activateTabWithKeyboard\",\n \"allowTabDeactivation\",\n \"children\",\n \"id\",\n \"onTabChange\",\n \"variant\",\n \"color\",\n \"className\",\n \"unstyled\",\n \"classNames\",\n \"styles\",\n \"radius\",\n \"inverted\",\n \"keepMounted\",\n \"placement\"\n ]);\n const { classes, cx } = useStyles({ orientation, color, variant, radius, inverted, placement }, { unstyled, name: \"Tabs\", classNames, styles });\n return /* @__PURE__ */ React.createElement(TabsProvider, {\n activateTabWithKeyboard,\n defaultValue,\n orientation,\n onTabChange,\n value,\n id,\n loop,\n allowTabDeactivation,\n color,\n variant,\n radius,\n inverted,\n keepMounted,\n placement,\n classNames,\n styles,\n unstyled\n }, /* @__PURE__ */ React.createElement(Box, __spreadProps(__spreadValues({}, others), {\n className: cx(classes.root, className),\n id,\n ref\n }), children));\n});\nTabs.List = TabsList;\nTabs.Tab = Tab;\nTabs.Panel = TabsPanel;\nTabs.displayName = \"@mantine/core/Tabs\";\n\nexport { Tabs };\n//# sourceMappingURL=Tabs.js.map\n","import React from 'react';\nexport const NovuContext = React.createContext(null);\n//# sourceMappingURL=novu-provider.context.js.map","/**\n * Custom hook to check if the context Consumer is wrapped inside the ContextProvider\n * @param context\n * @returns context\n */\nexport function useProviderCheck(context) {\n if (context === null || context === undefined) {\n throw new Error('Component must be wrapped within the NovuProvider before using hooks from @novu/notification-center');\n }\n return context;\n}\n//# sourceMappingURL=useProviderCheck.js.map","import { useContext } from 'react';\nimport { NovuContext } from '../store/novu-provider.context';\nimport { useProviderCheck } from './useProviderCheck';\n/**\n * custom hook for accessing NovuContext\n * @returns INovuProviderContext\n */\nexport function useNovuContext() {\n const novuContext = useContext(NovuContext);\n const context = useProviderCheck(novuContext);\n return context;\n}\n//# sourceMappingURL=useNovuContext.js.map","class Subscribable {\n constructor() {\n this.listeners = new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n const identity = {\n listener\n };\n this.listeners.add(identity);\n this.onSubscribe();\n return () => {\n this.listeners.delete(identity);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.size > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n const changed = this.focused !== focused;\n\n if (changed) {\n this.focused = focused;\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nconst onlineEvents = ['online', 'offline'];\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n onlineEvents.forEach(event => {\n window.addEventListener(event, listener, false);\n });\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach(event => {\n window.removeEventListener(event, listener);\n });\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n const changed = this.online !== online;\n\n if (changed) {\n this.online = online;\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\"Missing queryFn for queryKey '\" + this.options.queryHash + \"'\");\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error(this.queryHash + \" data is undefined\"));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState,\n fetchStatus: 'idle'\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject(\"Missing queryFn for queryKey '\" + context.options.queryHash + \"'\"));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { canFetch, isCancelledError } from './retryer.mjs';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = new Set();\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n const result = this.createResult(query, options);\n\n if (shouldAssignObserverCurrentProperties(this, result, options)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult everytime\n // an observer reads an optimistic value.\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.currentResult = result;\n this.currentResultOptions = this.options;\n this.currentResultState = this.currentQuery.state;\n }\n\n return result;\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === 'function' ? notifyOnChangeProps() : notifyOnChangeProps;\n\n if (notifyOnChangePropsValue === 'all' || !notifyOnChangePropsValue && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangePropsValue != null ? notifyOnChangePropsValue : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n} // this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\n\n\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult, options) {\n // it is important to keep this condition like this for three reasons:\n // 1. It will get removed in the v5\n // 2. it reads: don't update the properties if we want to keep the previous\n // data.\n // 3. The opposite condition (!options.keepPreviousData) would fallthrough\n // and will result in a bad decision\n if (options.keepPreviousData) {\n return false;\n } // this means we want to put some placeholder data when pending and queryKey\n // changed.\n\n\n if (options.placeholderData !== undefined) {\n // re-assign properties only if current data is placeholder data\n // which means that data did not arrive yet, so, if there is some cached data\n // we need to \"prepare\" to receive it\n return optimisticResult.isPlaceholderData;\n } // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n\n\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n } // basically, just keep previous properties if nothing changed\n\n\n return false;\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.mjs.map\n","import { QueryObserver } from './queryObserver.mjs';\nimport { infiniteQueryBehavior, hasNextPage, hasPreviousPage } from './infiniteQueryBehavior.mjs';\n\nclass InfiniteQueryObserver extends QueryObserver {\n // Type override\n // Type override\n // Type override\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(client, options) {\n super(client, options);\n }\n\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n\n setOptions(options, notifyOptions) {\n super.setOptions({ ...options,\n behavior: infiniteQueryBehavior()\n }, notifyOptions);\n }\n\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n\n fetchNextPage({\n pageParam,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n fetchMore: {\n direction: 'forward',\n pageParam\n }\n }\n });\n }\n\n fetchPreviousPage({\n pageParam,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n fetchMore: {\n direction: 'backward',\n pageParam\n }\n }\n });\n }\n\n createResult(query, options) {\n var _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet, _state$data, _state$data2;\n\n const {\n state\n } = query;\n const result = super.createResult(query, options);\n const {\n isFetching,\n isRefetching\n } = result;\n const isFetchingNextPage = isFetching && ((_state$fetchMeta = state.fetchMeta) == null ? void 0 : (_state$fetchMeta$fetc = _state$fetchMeta.fetchMore) == null ? void 0 : _state$fetchMeta$fetc.direction) === 'forward';\n const isFetchingPreviousPage = isFetching && ((_state$fetchMeta2 = state.fetchMeta) == null ? void 0 : (_state$fetchMeta2$fet = _state$fetchMeta2.fetchMore) == null ? void 0 : _state$fetchMeta2$fet.direction) === 'backward';\n return { ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),\n hasPreviousPage: hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n }\n\n}\n\nexport { InfiniteQueryObserver };\n//# sourceMappingURL=infiniteQueryObserver.mjs.map\n","import { getDefaultState } from './mutation.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { shallowEqualObjects } from './utils.mjs';\n\n// CLASS\nclass MutationObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.setOptions(options);\n this.bindMethods();\n this.updateResult();\n }\n\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n setOptions(options) {\n var _this$currentMutation;\n\n const prevOptions = this.options;\n this.options = this.client.defaultMutationOptions(options);\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this\n });\n }\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.setOptions(this.options);\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$currentMutation2;\n\n (_this$currentMutation2 = this.currentMutation) == null ? void 0 : _this$currentMutation2.removeObserver(this);\n }\n }\n\n onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n const notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n }\n\n mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, { ...this.options,\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n });\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n }\n\n updateResult() {\n const state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n const result = { ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n };\n this.currentResult = result;\n }\n\n notify(options) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n var _this$mutateOptions$o, _this$mutateOptions, _this$mutateOptions$o2, _this$mutateOptions2;\n\n (_this$mutateOptions$o = (_this$mutateOptions = this.mutateOptions).onSuccess) == null ? void 0 : _this$mutateOptions$o.call(_this$mutateOptions, this.currentResult.data, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o2 = (_this$mutateOptions2 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o2.call(_this$mutateOptions2, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);\n } else if (options.onError) {\n var _this$mutateOptions$o3, _this$mutateOptions3, _this$mutateOptions$o4, _this$mutateOptions4;\n\n (_this$mutateOptions$o3 = (_this$mutateOptions3 = this.mutateOptions).onError) == null ? void 0 : _this$mutateOptions$o3.call(_this$mutateOptions3, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o4 = (_this$mutateOptions4 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o4.call(_this$mutateOptions4, undefined, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n }\n });\n }\n\n}\n\nexport { MutationObserver };\n//# sourceMappingURL=mutationObserver.mjs.map\n","'use client';\nimport { useSyncExternalStore as useSyncExternalStore$1 } from 'use-sync-external-store/shim/index.js';\n\nconst useSyncExternalStore = useSyncExternalStore$1;\n\nexport { useSyncExternalStore };\n//# sourceMappingURL=useSyncExternalStore.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst IsRestoringContext = /*#__PURE__*/React.createContext(false);\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\nconst IsRestoringProvider = IsRestoringContext.Provider;\n\nexport { IsRestoringProvider, useIsRestoring };\n//# sourceMappingURL=isRestoring.mjs.map\n","'use client';\nimport * as React from 'react';\n\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\n\nconst QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext); // COMPONENT\n\nconst QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};\n\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n//# sourceMappingURL=QueryErrorResetBoundary.mjs.map\n","function shouldThrowError(_useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params);\n }\n\n return !!_useErrorBoundary;\n}\n\nexport { shouldThrowError };\n//# sourceMappingURL=utils.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { shouldThrowError } from './utils.mjs';\n\nconst ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nconst useClearResetErrorBoundary = errorResetBoundary => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nconst getHasError = ({\n result,\n errorResetBoundary,\n useErrorBoundary,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(useErrorBoundary, [result.error, query]);\n};\n\nexport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary };\n//# sourceMappingURL=errorBoundaryUtils.mjs.map\n","const ensureStaleTime = defaultedOptions => {\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n }\n }\n};\nconst willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nconst shouldSuspend = (defaultedOptions, result, isRestoring) => (defaultedOptions == null ? void 0 : defaultedOptions.suspense) && willFetch(result, isRestoring);\nconst fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).then(({\n data\n}) => {\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n}).catch(error => {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n});\n\nexport { ensureStaleTime, fetchOptimistic, shouldSuspend, willFetch };\n//# sourceMappingURL=suspense.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { notifyManager } from '@tanstack/query-core';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary.mjs';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { useIsRestoring } from './isRestoring.mjs';\nimport { ensurePreventErrorBoundaryRetry, useClearResetErrorBoundary, getHasError } from './errorBoundaryUtils.mjs';\nimport { ensureStaleTime, shouldSuspend, fetchOptimistic } from './suspense.mjs';\n\nfunction useBaseQuery(options, Observer) {\n const queryClient = useQueryClient({\n context: options.context\n });\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = queryClient.defaultQueryOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions._optimisticResults = isRestoring ? 'isRestoring' : 'optimistic'; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n ensureStaleTime(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(() => new Observer(queryClient, defaultedOptions));\n const result = observer.getOptimisticResult(defaultedOptions);\n useSyncExternalStore(React.useCallback(onStoreChange => {\n const unsubscribe = isRestoring ? () => undefined : observer.subscribe(notifyManager.batchCalls(onStoreChange)); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return unsubscribe;\n }, [observer, isRestoring]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n } // Handle error boundary\n\n\n if (getHasError({\n result,\n errorResetBoundary,\n useErrorBoundary: defaultedOptions.useErrorBoundary,\n query: observer.getCurrentQuery()\n })) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\n\nexport { useBaseQuery };\n//# sourceMappingURL=useBaseQuery.mjs.map\n","'use client';\nimport { parseQueryArgs, QueryObserver } from '@tanstack/query-core';\nimport { useBaseQuery } from './useBaseQuery.mjs';\n\nfunction useQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}\n\nexport { useQuery };\n//# sourceMappingURL=useQuery.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { parseMutationArgs, MutationObserver, notifyManager } from '@tanstack/query-core';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { shouldThrowError } from './utils.mjs';\n\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n const queryClient = useQueryClient({\n context: options.context\n });\n const [observer] = React.useState(() => new MutationObserver(queryClient, options));\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n const mutate = React.useCallback((variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n }, [observer]);\n\n if (result.error && shouldThrowError(observer.options.useErrorBoundary, [result.error])) {\n throw result.error;\n }\n\n return { ...result,\n mutate,\n mutateAsync: result.mutate\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nfunction noop() {}\n\nexport { useMutation };\n//# sourceMappingURL=useMutation.mjs.map\n","'use client';\nimport { parseQueryArgs, InfiniteQueryObserver } from '@tanstack/query-core';\nimport { useBaseQuery } from './useBaseQuery.mjs';\n\nfunction useInfiniteQuery(arg1, arg2, arg3) {\n const options = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(options, InfiniteQueryObserver);\n}\n\nexport { useInfiniteQuery };\n//# sourceMappingURL=useInfiniteQuery.mjs.map\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","import { useCallback } from 'react';\nimport { useNovuContext } from './useNovuContext';\nexport const useSetQueryKey = () => {\n const { subscriberId, subscriberHash, applicationIdentifier } = useNovuContext();\n const setQueryKey = useCallback((queryKeys) => [...queryKeys, subscriberId, applicationIdentifier, subscriberHash], [subscriberId, subscriberHash, applicationIdentifier]);\n return setQueryKey;\n};\n//# sourceMappingURL=useSetQueryKey.js.map","export const SESSION_QUERY_KEY = ['session'];\nexport const ORGANIZATION_QUERY_KEY = ['organization'];\nexport const INFINITE_NOTIFICATIONS_QUERY_KEY = ['infinite_notifications'];\nexport const USER_PREFERENCES_QUERY_KEY = ['user_preferences'];\nexport const UNSEEN_COUNT_QUERY_KEY = ['unseen_count'];\nexport const FEED_UNSEEN_COUNT_QUERY_KEY = ['feed_unseen_count'];\n//# sourceMappingURL=queryKeys.js.map","import React from 'react';\nexport const StoreContext = React.createContext(null);\n//# sourceMappingURL=store.context.js.map","import { useContext } from 'react';\nimport { StoreContext } from '../store/store.context';\nexport const useStore = () => {\n return useContext(StoreContext);\n};\n//# sourceMappingURL=useStore.js.map","import { useMemo } from 'react';\nimport { INFINITE_NOTIFICATIONS_QUERY_KEY } from './queryKeys';\nimport { useSetQueryKey } from './useSetQueryKey';\nimport { useStore } from './useStore';\nexport const useFetchNotificationsQueryKey = () => {\n const { storeQuery } = useStore();\n const setQueryKey = useSetQueryKey();\n const queryKey = useMemo(() => setQueryKey([...INFINITE_NOTIFICATIONS_QUERY_KEY, storeQuery]), [setQueryKey, storeQuery]);\n return queryKey;\n};\n//# sourceMappingURL=useFetchNotificationsQueryKey.js.map","import { useMemo } from 'react';\nimport { UNSEEN_COUNT_QUERY_KEY } from './queryKeys';\nimport { useSetQueryKey } from './useSetQueryKey';\nimport { useStore } from './useStore';\nexport const useUnseenCountQueryKey = () => {\n const { storeQuery } = useStore();\n const setQueryKey = useSetQueryKey();\n const queryKey = useMemo(() => setQueryKey([...UNSEEN_COUNT_QUERY_KEY, storeQuery]), [setQueryKey, storeQuery]);\n return queryKey;\n};\n//# sourceMappingURL=useUnseenCountQueryKey.js.map","import { useRef } from 'react';\nexport const useDataRef = (data) => {\n const ref = useRef(data);\n ref.current = data;\n return ref;\n};\n//# sourceMappingURL=useDataRef.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useEffect } from 'react';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\nimport debounce from 'lodash.debounce';\nimport { WebSocketEventEnum } from '@novu/shared';\nimport { useNovuContext } from './useNovuContext';\nimport { useSetQueryKey } from './useSetQueryKey';\nimport { useFetchNotificationsQueryKey } from './useFetchNotificationsQueryKey';\nimport { useUnseenCountQueryKey } from './useUnseenCountQueryKey';\nimport { useDataRef } from './useDataRef';\nimport { FEED_UNSEEN_COUNT_QUERY_KEY } from './queryKeys';\nconst dispatchUnseenCountEvent = (count) => {\n document.dispatchEvent(new CustomEvent('novu:unseen_count_changed', { detail: count }));\n};\n/**\n * TODO: This is a temporary fix\n * Cypress is slow, so we need to increase the debounce time\n * This is happening in a very high thruput of updates in testing env.\n *\n * Can also happen in real scenarios, so we need to review how we handle concurrency in the future\n */\nconst DEBOUNCE_TIME = typeof window !== 'undefined' && (window === null || window === void 0 ? void 0 : window.Cypress) ? 1000 : 100;\nexport const useUnseenCount = (_a = {}) => {\n var { onSuccess } = _a, restOptions = __rest(_a, [\"onSuccess\"]);\n const { apiService, socket, isSessionInitialized, fetchingStrategy } = useNovuContext();\n const queryClient = useQueryClient();\n const setQueryKey = useSetQueryKey();\n const fetchNotificationsQueryKey = useFetchNotificationsQueryKey();\n const unseenCountQueryKey = useUnseenCountQueryKey();\n const queryKeysRef = useDataRef({ fetchNotificationsQueryKey, unseenCountQueryKey });\n useEffect(() => {\n if (!socket) {\n return () => { };\n }\n socket.on(WebSocketEventEnum.UNSEEN, debounce((data) => {\n if (Number.isInteger(data === null || data === void 0 ? void 0 : data.unseenCount)) {\n queryClient.setQueryData(unseenCountQueryKey, (oldData) => {\n var _a;\n return ({\n count: (_a = data === null || data === void 0 ? void 0 : data.unseenCount) !== null && _a !== void 0 ? _a : oldData.count,\n });\n });\n queryClient.refetchQueries(queryKeysRef.current.unseenCountQueryKey, {\n exact: false,\n });\n queryClient.refetchQueries(queryKeysRef.current.fetchNotificationsQueryKey, {\n exact: false,\n });\n // refetch all feeds unseen count that is shown on the tabs\n queryClient.refetchQueries([...FEED_UNSEEN_COUNT_QUERY_KEY], {\n exact: false,\n });\n dispatchUnseenCountEvent(data.unseenCount);\n }\n }, DEBOUNCE_TIME));\n return () => {\n socket.off(WebSocketEventEnum.UNSEEN);\n };\n }, [socket, queryClient, setQueryKey]);\n const result = useQuery(unseenCountQueryKey, () => apiService.getUnseenCount({ limit: 100 }), Object.assign(Object.assign({}, restOptions), { enabled: isSessionInitialized && fetchingStrategy.fetchUnseenCount, onSuccess: (data) => {\n dispatchUnseenCountEvent(data.count);\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(data);\n } }));\n return result;\n};\n//# sourceMappingURL=useUnseenCount.js.map","import React from 'react';\nexport const NotificationsContext = React.createContext(null);\n//# sourceMappingURL=notifications.context.js.map","import { useContext } from 'react';\nimport { NotificationsContext } from '../store/notifications.context';\nexport function useNotifications() {\n return useContext(NotificationsContext);\n}\n//# sourceMappingURL=useNotifications.js.map","import React from 'react';\nexport const ThemeContext = React.createContext({\n colorScheme: 'light',\n theme: null,\n common: null,\n});\n//# sourceMappingURL=novu-theme.context.js.map","import { useContext } from 'react';\nimport { ThemeContext } from '../store/novu-theme.context';\nexport function useNovuTheme() {\n const { colorScheme, theme, common } = useContext(ThemeContext);\n return {\n colorScheme,\n theme,\n common,\n };\n}\n//# sourceMappingURL=useNovuTheme.js.map","import React from 'react';\nexport const NotificationCenterContext = React.createContext({\n onUrlChange: (url) => { },\n onNotificationClick: (notification) => { },\n onUnseenCountChanged: (unseenCount) => { },\n onActionClick: (identifier, type, message) => { },\n onTabClick: (tab) => { },\n preferenceFilter: (userPreference) => { },\n isLoading: true,\n header: null,\n footer: null,\n emptyState: null,\n listItem: null,\n actionsResultBlock: null,\n tabs: [],\n showUserPreferences: true,\n allowedNotificationActions: true,\n});\n//# sourceMappingURL=notification-center.context.js.map","import { useContext } from 'react';\nimport { NotificationCenterContext } from '../store/notification-center.context';\nexport function useNotificationCenter() {\n const { onUrlChange, onNotificationClick, onActionClick, isLoading, header, footer, emptyState, listItem, actionsResultBlock, tabs, showUserPreferences, allowedNotificationActions, onTabClick, preferenceFilter, } = useContext(NotificationCenterContext);\n return {\n onUrlChange,\n onNotificationClick,\n onActionClick,\n isLoading,\n header,\n footer,\n emptyState,\n listItem,\n actionsResultBlock,\n tabs,\n showUserPreferences,\n allowedNotificationActions,\n onTabClick,\n preferenceFilter,\n };\n}\n//# sourceMappingURL=useNotificationCenter.js.map","export const AF = {\n translations: {\n notifications: 'Kennisgewings',\n markAllAsRead: 'Merk alles as gelees',\n poweredBy: 'Aangedryf deur',\n settings: 'Instellings',\n noNewNotification: 'Nog niks nuuts om hier te sien nie',\n },\n lang: 'af',\n};\n//# sourceMappingURL=af.js.map","export const AM = {\n translations: {\n notifications: 'ማሳወቂያዎች',\n markAllAsRead: 'ሁሉንም እንደተነበቡ ምልክት ያድርጉበት',\n poweredBy: 'የተጎላበተ በ',\n settings: 'ቅንብሮች',\n noNewNotification: 'እዚህ ገና የሚታይ አዲስ ነገር የለም።',\n },\n lang: 'am',\n};\n//# sourceMappingURL=am.js.map","export const AR = {\n translations: {\n notifications: 'إشعارات',\n markAllAsRead: 'اشر عليها بانها قرات',\n poweredBy: 'مشغل بواسطة',\n settings: 'الإعدادات',\n noNewNotification: 'لا يوجد شيء جديد تراه هنا حتى الآن',\n },\n lang: 'ar',\n};\n//# sourceMappingURL=ar.js.map","export const AS = {\n translations: {\n notifications: 'জাননীসমূহ',\n markAllAsRead: 'সকলো পঢ়া হিচাপে চিহ্নিত কৰক',\n poweredBy: 'দ্বাৰা সমৰ্থিত',\n settings: 'ছেটিংছ',\n noNewNotification: 'ইয়াত এতিয়াও নতুন একো দেখা নাই',\n },\n lang: 'as',\n};\n//# sourceMappingURL=as.js.map","export const AZ = {\n translations: {\n notifications: 'Bildirişlər',\n markAllAsRead: 'Hamısını oxunmuş olaraq işarələ',\n poweredBy: 'tərəfindən təchiz edilmişdir',\n settings: 'Qəbulu',\n noNewNotification: 'Hələ burada görmək üçün yeni heç nə yoxdur',\n },\n lang: 'az',\n};\n//# sourceMappingURL=az.js.map","export const BE = {\n translations: {\n notifications: 'Паведамленнi',\n markAllAsRead: 'Пазначыць усе як прачытаныя',\n poweredBy: 'Пры падтрымцы',\n settings: 'Налады',\n noNewNotification: 'Тут пакуль няма нічога новага',\n },\n lang: 'be',\n};\n//# sourceMappingURL=be.js.map","export const BG = {\n translations: {\n notifications: 'известия',\n markAllAsRead: 'маркирай всички като прочетени',\n poweredBy: 'задвижвани от',\n settings: 'настройки',\n noNewNotification: 'Все още няма нищо ново за гледане тук',\n },\n lang: 'bg',\n};\n//# sourceMappingURL=bg.js.map","export const BH = {\n translations: {\n notifications: 'सूचनाएं',\n markAllAsRead: 'सभी को पढ़ा हुआ चिन्हित करें',\n poweredBy: 'द्वारा संचालित',\n settings: 'सेटिंग्स',\n noNewNotification: 'यहां अभी कुछ नया देखने को नहीं मिला है',\n },\n lang: 'bh',\n};\n//# sourceMappingURL=bh.js.map","export const BN = {\n translations: {\n notifications: 'নোটিফিকেশন',\n markAllAsRead: 'সবগুলো পড়া হয়েছে',\n poweredBy: 'পাওয়ার্ড বাই',\n settings: 'সেটিংস',\n noNewNotification: 'এখানে এখনো নতুন কিছু দেখার নেই',\n },\n lang: 'bn',\n};\n//# sourceMappingURL=bn.js.map","export const BS = {\n translations: {\n notifications: 'Obavještenja',\n markAllAsRead: 'Označi sve kao pročitano',\n poweredBy: 'Pokreće',\n settings: 'Postavke',\n noNewNotification: 'Ovdje još nema ništa novo za vidjeti',\n },\n lang: 'bs',\n};\n//# sourceMappingURL=bs.js.map","export const CA = {\n translations: {\n notifications: 'Notificacions',\n markAllAsRead: 'marcar tot com a llegit',\n poweredBy: 'Amb la tecnologia de',\n settings: 'Configuració',\n noNewNotification: 'Encara no hi ha res nou per veure aquí',\n },\n lang: 'ca',\n};\n//# sourceMappingURL=ca.js.map","export const CS = {\n translations: {\n notifications: 'Oznámení',\n markAllAsRead: 'Označit všechna jako přečtená',\n poweredBy: 'Přináší',\n settings: 'Nastavení',\n noNewNotification: 'Zatím tu není nic nového k vidění',\n },\n lang: 'cs',\n};\n//# sourceMappingURL=cs.js.map","export const DA = {\n translations: {\n notifications: 'Meddelelser',\n markAllAsRead: 'Markér alle som læst',\n poweredBy: 'Drevet af',\n settings: 'Indstillinger',\n noNewNotification: 'Intet nyt at se her endnu',\n },\n lang: 'da',\n};\n//# sourceMappingURL=da.js.map","export const DE = {\n translations: {\n notifications: 'Benachrichtigungen',\n markAllAsRead: 'Alle als gelesen markieren',\n poweredBy: 'von',\n settings: 'Einstellungen',\n noNewNotification: 'Hier gibt es noch nichts Neues zu sehen',\n },\n lang: 'de',\n};\n//# sourceMappingURL=de.js.map","export const EL = {\n translations: {\n notifications: 'ειδοποιήσεις',\n markAllAsRead: 'επισημάνετε όλα ως αναγνωσμένα',\n poweredBy: 'τροφοδοτείται από',\n settings: 'Ρυθμίσεις',\n noNewNotification: 'Δεν υπάρχει τίποτα νέο να δείτε εδώ ακόμα',\n },\n lang: 'el',\n};\n//# sourceMappingURL=el.js.map","export const EN = {\n translations: {\n notifications: 'Notifications',\n markAllAsRead: 'Mark all as read',\n poweredBy: 'Powered By',\n settings: 'Settings',\n removeMessage: 'Remove Message',\n markAsRead: 'Mark as Read',\n markAsUnRead: 'Mark as Unread',\n noNewNotification: 'Nothing new to see here yet',\n },\n lang: 'en',\n};\n//# sourceMappingURL=en.js.map","export const ES = {\n translations: {\n notifications: 'Notificaciones',\n markAllAsRead: 'marcar todo como leído',\n poweredBy: 'Con tecnología de',\n settings: 'Configuración',\n noNewNotification: 'Nada nuevo que ver aquí todavía',\n },\n lang: 'es',\n};\n//# sourceMappingURL=es.js.map","export const EU = {\n translations: {\n notifications: 'Notificacionespenak',\n markAllAsRead: 'Markatu guztiak irakurrita bezala',\n poweredBy: 'Bultzatuta',\n settings: 'Ezarpenak',\n noNewNotification: 'Oraindik ez dago ezer berririk hemen ikusteko',\n },\n lang: 'eu',\n};\n//# sourceMappingURL=eu.js.map","export const FA = {\n translations: {\n notifications: 'اطلاعیه',\n markAllAsRead: 'همه را به عنوان خوانده شده علامت بزن',\n poweredBy: 'پشتیبانی شده توسط',\n settings: 'تنظيمات',\n noNewNotification: 'هنوز چیز جدیدی برای دیدن اینجا وجود ندارد',\n },\n lang: 'fa',\n};\n//# sourceMappingURL=fa.js.map","export const FI = {\n translations: {\n notifications: 'Ilmoitukset',\n markAllAsRead: 'Merkkaa luetuksi',\n poweredBy: 'Ilmoitukset mahdollistaa',\n settings: 'Asetukset',\n noNewNotification: 'Täällä ei ole vielä mitään uutta nähtävää',\n },\n lang: 'fi',\n};\n//# sourceMappingURL=fi.js.map","export const FR = {\n translations: {\n notifications: 'Notifications',\n markAllAsRead: 'Tout marquer comme lus',\n poweredBy: 'Propulsé par',\n settings: 'Paramètres',\n noNewNotification: 'Rien de nouveau à voir ici pour le moment',\n },\n lang: 'fr',\n};\n//# sourceMappingURL=fr.js.map","export const GA = {\n translations: {\n notifications: 'Fógraí',\n markAllAsRead: 'Marcáil go léir mar a léitear',\n poweredBy: 'Cumhachtaithe ag',\n settings: 'Socruithe',\n noNewNotification: 'Níl aon rud nua le feiceáil anseo fós',\n },\n lang: 'ga',\n};\n//# sourceMappingURL=ga.js.map","export const GL = {\n translations: {\n notifications: 'Notificacións',\n markAllAsRead: 'Marcar todo coma lido',\n poweredBy: 'Coa tecnoloxía de',\n settings: 'Axustes',\n noNewNotification: 'Aínda non hai nada novo que ver aquí',\n },\n lang: 'gl',\n};\n//# sourceMappingURL=gl.js.map","export const GU = {\n translations: {\n notifications: 'સૂચના',\n markAllAsRead: 'બધાને વાંચેલા તરીકે ચિહ્નિત કરો',\n poweredBy: 'દ્વારા સંચાલિત',\n settings: 'સેટિંગ્સ',\n noNewNotification: 'હજુ સુધી અહીં જોવા માટે કંઈ નવું નથી',\n },\n lang: 'gu',\n};\n//# sourceMappingURL=gu.js.map","export const HE = {\n translations: {\n notifications: 'התראות',\n markAllAsRead: 'סמן הכל כנקרא',\n poweredBy: 'נתמך על ידי',\n settings: 'הגדרות',\n noNewNotification: 'אין שום דבר חדש לראות כאן עדיין',\n },\n lang: 'he',\n};\n//# sourceMappingURL=he.js.map","export const HI = {\n translations: {\n notifications: 'सूचनाएं',\n markAllAsRead: 'सभी को पढ़ा हुआ चिन्हित करें',\n poweredBy: 'द्वारा संचालित',\n settings: 'सेटिंग्स',\n noNewNotification: 'यहां अभी कुछ नया देखने को नहीं मिला है',\n },\n lang: 'hi',\n};\n//# sourceMappingURL=hi.js.map","export const HR = {\n translations: {\n notifications: 'Obavijesti',\n markAllAsRead: 'Označi sve kao pročitano',\n poweredBy: 'Uz podršku',\n settings: 'Postavke',\n noNewNotification: 'Ovdje još nema ništa novo za vidjeti',\n },\n lang: 'hr',\n};\n//# sourceMappingURL=hr.js.map","export const HU = {\n translations: {\n notifications: 'értesítéseket',\n markAllAsRead: 'összes megjelölése olvasottként',\n poweredBy: 'támogatta',\n settings: 'beállítások',\n noNewNotification: 'Itt még semmi újat nem látni',\n },\n lang: 'hu',\n};\n//# sourceMappingURL=hu.js.map","export const HY = {\n translations: {\n notifications: 'ծանուցումներ',\n markAllAsRead: 'նշել բոլորը որպես կարդացված',\n poweredBy: 'աջակցվում է',\n settings: 'կարգավորումներ',\n noNewNotification: 'Դեռևս այստեղ տեսնելու նոր բան չկա',\n },\n lang: 'hy',\n};\n//# sourceMappingURL=hy.js.map","export const ID = {\n translations: {\n notifications: 'Notifikasi',\n markAllAsRead: 'Tandai semua sudah dibaca',\n poweredBy: 'Dipersembahkan Oleh',\n settings: 'Pengaturan',\n noNewNotification: 'Belum ada yang baru untuk dilihat di sini',\n },\n lang: 'id',\n};\n//# sourceMappingURL=id.js.map","export const IG = {\n translations: {\n notifications: 'Ngosi',\n markAllAsRead: 'kaa ihe niile ka agụlaha',\n poweredBy: 'kwadoro site na',\n settings: 'Mwube gasị',\n noNewNotification: 'Ọnweghị ihe ọhụrụ ịhụ ebe a',\n },\n lang: 'ig',\n};\n//# sourceMappingURL=ig.js.map","export const IT = {\n translations: {\n notifications: 'Notifiche',\n markAllAsRead: 'Segna tutti come letti',\n poweredBy: 'Offerto da',\n settings: 'Impostazioni',\n noNewNotification: 'Niente di nuovo da vedere qui ancora',\n },\n lang: 'it',\n};\n//# sourceMappingURL=it.js.map","export const JA = {\n translations: {\n notifications: '通知',\n markAllAsRead: 'すべて既読にする',\n poweredBy: '搭載',\n settings: '設定',\n noNewNotification: 'ここにはまだ新しいものはありません',\n },\n lang: 'ja',\n};\n//# sourceMappingURL=ja.js.map","export const KA = {\n translations: {\n notifications: 'ಅಧಿಸೂಚನೆಗಳು',\n markAllAsRead: 'ಎಲ್ಲವನ್ನು ಓದಲಾಗಿದೆ ಎಂದು ಗುರುತಿಸಿ',\n poweredBy: 'ಮೂಲಕ ನಡೆಸಲ್ಪಡುತ್ತಿದೆ',\n settings: 'ಸಂಯೋಜನೆಗಳು',\n noNewNotification: 'აქ ახალი სანახავი ჯერ არაფერია',\n },\n lang: 'ka',\n};\n//# sourceMappingURL=ka.js.map","export const KK = {\n translations: {\n notifications: 'Хабарландырулар',\n markAllAsRead: 'барлығын оқылған деп белгілеңіз',\n poweredBy: 'задвижвани от',\n settings: 'көмегімен',\n noNewNotification: 'Мұнда әлі көретін жаңа ештеңе жоқМұнда әлі көретін жаңа ештеңе жоқ',\n },\n lang: 'kk',\n};\n//# sourceMappingURL=kk.js.map","export const KM = {\n translations: {\n notifications: 'សារជូនដំណឹង',\n markAllAsRead: 'បានអានទាំងអស់',\n poweredBy: 'ដំណើរការដោយ',\n settings: 'ការកំណត់',\n noNewNotification: 'មិនមានអ្វីថ្មីដើម្បីមើលនៅទីនេះនៅឡើយទេ',\n },\n lang: 'km',\n};\n//# sourceMappingURL=km.js.map","export const KO = {\n translations: {\n notifications: '알림',\n markAllAsRead: '모두 읽은 상태로 표시',\n poweredBy: '에 의해 구동',\n settings: '설정',\n noNewNotification: '여기에는 아직 새로운 내용이 없습니다.',\n },\n lang: 'ko',\n};\n//# sourceMappingURL=ko.js.map","export const KU = {\n translations: {\n notifications: 'ئاگادارکردنەوەکان',\n markAllAsRead: 'هەموویان وەک خوێندراوێک نیشانە بکە',\n poweredBy: 'بەهێزکراوە لەلایەن',\n settings: 'دانانەوە',\n noNewNotification: 'هێشتا هیچ شتێکی نوێ لێرە نابینرێت',\n },\n lang: 'ku',\n};\n//# sourceMappingURL=ku.js.map","export const LO = {\n translations: {\n notifications: 'ການແຈ້ງເຕືອນ',\n markAllAsRead: 'ໝາຍທັງໝົດວ່າອ່ານແລ້ວ',\n poweredBy: 'ສະ​ຫນັບ​ສະ​ຫນູນ​ໂດຍ',\n settings: 'ການຕັ້ງຄ່າ',\n noNewNotification: 'ບໍ່ມີຫຍັງໃໝ່ທີ່ຈະເຫັນຢູ່ທີ່ນີ້ເທື່ອ',\n },\n lang: 'lo',\n};\n//# sourceMappingURL=lo.js.map","export const LT = {\n translations: {\n notifications: 'Pranešimai',\n markAllAsRead: 'Pažymėti visus kaip skaitytus',\n poweredBy: 'Sukurta',\n settings: 'Nustatymai',\n noNewNotification: 'Čia dar nieko naujo nematyti',\n },\n lang: 'lt',\n};\n//# sourceMappingURL=lt.js.map","export const LV = {\n translations: {\n notifications: 'Paziņojumi',\n markAllAsRead: 'Atzīmēt visus kā lasītus',\n poweredBy: 'Izstrādāts',\n settings: 'Iestatījumi',\n noNewNotification: 'Šeit vēl nav nekā jauna, ko redzēt',\n },\n lang: 'lv',\n};\n//# sourceMappingURL=lv.js.map","export const ML = {\n translations: {\n notifications: 'അറിയിപ്പുകൾ',\n markAllAsRead: 'എല്ലാം വായിച്ചതായി അടയാളപ്പെടുത്തുക',\n poweredBy: 'പ്രായോജകർ',\n settings: 'ക്രമീകരണങ്ങൾ',\n noNewNotification: 'ഇവിടെ ഇതുവരെ പുതുതായി ഒന്നും കാണാനില്ല',\n },\n lang: 'ml',\n};\n//# sourceMappingURL=ml.js.map","export const MR = {\n translations: {\n notifications: 'अधिसूचना',\n markAllAsRead: 'सर्व वाचलेले म्हणून चिन्हांकित करा',\n poweredBy: 'द्वारे समर्थित',\n settings: 'सेटिंग्ज',\n noNewNotification: 'इथे अजून काही नवीन पाहण्यासारखे नाही',\n },\n lang: 'mr',\n};\n//# sourceMappingURL=mr.js.map","export const MS = {\n translations: {\n notifications: 'Pemberitahuan',\n markAllAsRead: 'Tandakan semua sebagai telah dibaca',\n poweredBy: 'Dikuasai oleh',\n settings: 'Tetapan',\n noNewNotification: 'Belum ada yang baru untuk dilihat di sini',\n },\n lang: 'ms',\n};\n//# sourceMappingURL=ms.js.map","export const NB = {\n translations: {\n notifications: 'Varsler',\n markAllAsRead: 'Marker alle som lest',\n poweredBy: 'Drevet av',\n settings: 'Innstillinger',\n removeMessage: 'Fjern melding',\n markAsRead: 'Merk som lest',\n markAsUnRead: 'Merk som ulest',\n noNewNotification: 'Ikke noe nytt å se her ennå',\n },\n lang: 'nb',\n};\n//# sourceMappingURL=nb.js.map","export const NE = {\n translations: {\n notifications: 'सूचनाहरू',\n markAllAsRead: 'सबै पढेको रूपमा चिन्ह लगाउनुहोस्',\n poweredBy: 'द्वारा संचालित',\n settings: 'सेटिङहरू',\n noNewNotification: 'यहाँ हेर्न को लागी केहि नयाँ छैन',\n },\n lang: 'ne',\n};\n//# sourceMappingURL=ne.js.map","export const NL = {\n translations: {\n notifications: 'Notificaties',\n markAllAsRead: 'Markeer alles als gelezen',\n poweredBy: 'Aangedreven door',\n settings: 'Instellingen',\n noNewNotification: 'Hier is nog niets nieuws te zien',\n },\n lang: 'nl',\n};\n//# sourceMappingURL=nl.js.map","export const OR = {\n translations: {\n notifications: 'ବିଜ୍ଞପ୍ତି',\n markAllAsRead: 'ସମସ୍ତଙ୍କୁ ପଢ଼ିଥିବା ପରି ଚିହ୍ନିତ କର',\n poweredBy: 'ଦ୍ୱାରା ପରିଚାଳିତ',\n settings: 'ସେଟିଂ',\n noNewNotification: 'ଏପର୍ଯ୍ୟନ୍ତ ଦେଖିବାକୁ କିଛି ନୂଆ ନୁହେଁ |',\n },\n lang: 'or',\n};\n//# sourceMappingURL=or.js.map","export const PA = {\n translations: {\n notifications: 'ਸੂਚਨਾਵਾਂ',\n markAllAsRead: ' ਸਭ ਨੂੰ ਪੜ੍ਹਿਆ ਹੋਇਆ ਮਾਰਕ ਕਰੋ',\n poweredBy: 'ਦੁਆਰਾ ਸੰਚਾਲਿਤ',\n settings: 'ਸੈਟਿੰਗਾਂ',\n noNewNotification: 'ਇੱਥੇ ਦੇਖਣ ਲਈ ਅਜੇ ਕੁਝ ਨਵਾਂ ਨਹੀਂ ਹੈ',\n },\n lang: 'pa',\n};\n//# sourceMappingURL=pa.js.map","export const PL = {\n translations: {\n notifications: 'Notyfikacje',\n markAllAsRead: 'Oznacz wszystkie jako przeczytane',\n poweredBy: 'Napędzany przez',\n settings: 'Ustawienia',\n noNewNotification: 'Nie ma tu jeszcze nic nowego do zobaczenia',\n },\n lang: 'pl',\n};\n//# sourceMappingURL=pl.js.map","export const PT = {\n translations: {\n notifications: 'Notificações',\n markAllAsRead: 'Marcar tudo como lido',\n poweredBy: 'Desenvolvido por',\n settings: 'Configurações',\n noNewNotification: 'Nada de novo para ver aqui ainda',\n },\n lang: 'pt',\n};\n//# sourceMappingURL=pt.js.map","export const RO = {\n translations: {\n notifications: 'Notificări',\n markAllAsRead: 'Marcheaza totul ca fiind citit',\n poweredBy: 'Cu sprijinul',\n settings: 'Setări',\n noNewNotification: 'Nimic nou de văzut aici încă',\n },\n lang: 'ro',\n};\n//# sourceMappingURL=ro.js.map","export const RU = {\n translations: {\n notifications: 'Уведомления',\n markAllAsRead: 'Пометить все как прочитанные',\n poweredBy: 'При поддержке',\n settings: 'Настройки',\n noNewNotification: 'Здесь пока ничего нового',\n },\n lang: 'ru',\n};\n//# sourceMappingURL=ru.js.map","export const SA = {\n translations: {\n notifications: 'अधिसूचनाः',\n markAllAsRead: 'सर्वं पठितम् इति सूचनीयम्',\n poweredBy: 'द्वारा संचालितः',\n settings: 'संस्थापनम्',\n noNewNotification: 'अत्र अद्यापि किमपि नूतनं द्रष्टुं न शक्यते',\n },\n lang: 'sa',\n};\n//# sourceMappingURL=sa.js.map","export const SD = {\n translations: {\n notifications: 'نوٽيفڪيشن',\n markAllAsRead: 'سڀني کي پڙهيل طور نشان لڳايو',\n poweredBy: 'پاران تيار ڪيل',\n settings: 'سيٽنگون',\n noNewNotification: 'هتي ڏسڻ لاءِ اڃا ڪجهه نئون ناهي',\n },\n lang: 'sd',\n};\n//# sourceMappingURL=sd.js.map","export const SI = {\n translations: {\n notifications: 'දැනුම්දීම්',\n markAllAsRead: 'සියල්ල කියවූ ලෙස ලකුණු කරන්න',\n poweredBy: 'බලගැන්වීම',\n settings: 'සැකසුම්',\n noNewNotification: 'මෙතන තවම බලන්න අලුත් දෙයක් නෑ',\n },\n lang: 'si',\n};\n//# sourceMappingURL=si.js.map","export const SM = {\n translations: {\n notifications: 'faasilasilaga',\n markAllAsRead: 'faailoga Mea uma e pei ona Faitau',\n poweredBy: 'fa amalosia ',\n settings: 'faatulagaga',\n noNewNotification: \"E leai se mea fou e va'ai iinei\",\n },\n lang: 'sm',\n};\n//# sourceMappingURL=sm.js.map","export const SQ = {\n translations: {\n notifications: 'Njoftimet',\n markAllAsRead: 'Shënoni të gjitha si të lexuara',\n poweredBy: 'Mundësuar nga',\n settings: 'Cilësimet',\n noNewNotification: 'Nuk ka asgjë të re për të parë këtu ende',\n },\n lang: 'sq',\n};\n//# sourceMappingURL=sq.js.map","export const SV = {\n translations: {\n notifications: 'Meddelanden',\n markAllAsRead: 'Markera alla som lästa',\n poweredBy: 'Använder',\n settings: 'Inställningar',\n removeMessage: 'Ta bort meddelande',\n markAsRead: 'Markera som läst',\n markAsUnRead: 'Markera som oläst',\n noNewNotification: 'Inget nytt att se här ännu',\n },\n lang: 'sv',\n};\n//# sourceMappingURL=sv.js.map","export const TA = {\n translations: {\n notifications: 'அறிவிப்புகள்',\n markAllAsRead: 'அனைத்தையும் வாசிக்கப்பட்டதாக அடையாளமிடு',\n poweredBy: 'மூலம் இயக்கப்படுகிறது',\n settings: 'செட்டிங்ஸ்',\n noNewNotification: 'இதுவரை இங்கு பார்க்க புதிதாக எதுவும் இல்லை',\n },\n lang: 'ta',\n};\n//# sourceMappingURL=ta.js.map","export const TE = {\n translations: {\n notifications: 'నోటిఫికేషన్‌లు',\n markAllAsRead: 'అన్నీచదివినట్లుగా సూచించు',\n poweredBy: 'ద్వారా ఆధారితం',\n settings: 'సెట్టింగ్‌లు',\n noNewNotification: 'ఇంకా ఇక్కడ చూడడానికి కొత్తగా ఏమీ లేదు',\n },\n lang: 'te',\n};\n//# sourceMappingURL=te.js.map","export const TH = {\n translations: {\n notifications: 'การแจ้งเตือน',\n markAllAsRead: 'ทำเครื่องหมายทั้งหมดว่าอ่านแล้ว',\n poweredBy: 'ขับเคลื่อนโดย',\n settings: 'การตั้งค่า',\n noNewNotification: 'ยังไม่มีอะไรใหม่ให้ดูที่นี่',\n },\n lang: 'th',\n};\n//# sourceMappingURL=th.js.map","export const TL = {\n translations: {\n notifications: 'Notipikasyon',\n markAllAsRead: 'Markahan ang lahat bilang nabasa',\n poweredBy: 'Pinagagana ng',\n settings: 'Settings',\n noNewNotification: 'Wala pang bagong makikita dito',\n },\n lang: 'tl',\n};\n//# sourceMappingURL=tl.js.map","export const TR = {\n translations: {\n notifications: 'Bildirimler',\n markAllAsRead: 'Hepsini okundu olarak işaretle',\n poweredBy: 'Tarafından desteklenmektedir',\n settings: 'Ayarlar',\n noNewNotification: 'Burada henüz görülecek yeni bir şey yok',\n },\n lang: 'tr',\n};\n//# sourceMappingURL=tr.js.map","export const UK = {\n translations: {\n notifications: 'Сповіщення',\n markAllAsRead: 'Позначити все як прочитані',\n poweredBy: 'На підтримці',\n settings: 'Налаштування',\n noNewNotification: 'Тут ще немає нічого нового',\n },\n lang: 'uk',\n};\n//# sourceMappingURL=uk.js.map","export const UR = {\n translations: {\n notifications: 'اطلاع',\n markAllAsRead: 'سب کو پڑھا ہوا شمار کریں',\n poweredBy: 'طاقت کے ذریعے',\n settings: 'ترتیبات',\n noNewNotification: 'ابھی تک یہاں دیکھنے کے لیے کچھ نیا نہیں ہے۔',\n },\n lang: 'ur',\n};\n//# sourceMappingURL=ur.js.map","export const UZ = {\n translations: {\n notifications: 'Bildirishnomalar',\n markAllAsRead: `Hammasini o'qing deb belgilang`,\n poweredBy: `Tomonidan qo'llab-quvvatlanadi`,\n settings: 'Sozlamalar',\n noNewNotification: `Bu yerda hali ko'rish uchun yangi narsa yo'q`,\n },\n lang: 'uz',\n};\n//# sourceMappingURL=uz.js.map","export const VI = {\n translations: {\n notifications: 'Thông báo',\n markAllAsRead: 'đánh dấu tất cả như đã đọc',\n poweredBy: 'Được cung cấp bởi',\n settings: 'Cài đặt',\n noNewNotification: 'Chưa có gì mới để xem ở đây',\n },\n lang: 'vi',\n};\n//# sourceMappingURL=vi.js.map","export const ZH = {\n translations: {\n notifications: '通知',\n markAllAsRead: '将所有标记为已读',\n poweredBy: '技术支持',\n settings: '设置',\n noNewNotification: '这里还没有什么新东西可看',\n },\n lang: 'zh',\n};\n//# sourceMappingURL=zh.js.map","export const ZU = {\n translations: {\n notifications: 'Izaziso',\n markAllAsRead: 'Maka konke njengokufundiwe',\n poweredBy: 'Inikezwe amandla yi',\n settings: 'Izilungiselelo',\n noNewNotification: 'Akukho okusha ongakubona lapha okwamanje',\n },\n lang: 'zu',\n};\n//# sourceMappingURL=zu.js.map","export const BA = {\n translations: {\n notifications: 'Иҫкәрмәләр',\n markAllAsRead: 'Барыһын да уҡылғанса тамғалағыҙ',\n poweredBy: 'Эшләй',\n settings: 'Көйләүҙәре',\n noNewNotification: 'Монда әле яңа нәрсә юк',\n },\n lang: 'ba',\n};\n//# sourceMappingURL=ba.js.map","import { AF } from './languages/af';\nimport { AM } from './languages/am';\nimport { AR } from './languages/ar';\nimport { AS } from './languages/as';\nimport { AZ } from './languages/az';\nimport { BE } from './languages/be';\nimport { BG } from './languages/bg';\nimport { BH } from './languages/bh';\nimport { BN } from './languages/bn';\nimport { BS } from './languages/bs';\nimport { CA } from './languages/ca';\nimport { CS } from './languages/cs';\nimport { DA } from './languages/da';\nimport { DE } from './languages/de';\nimport { EL } from './languages/el';\nimport { EN } from './languages/en';\nimport { ES } from './languages/es';\nimport { EU } from './languages/eu';\nimport { FA } from './languages/fa';\nimport { FI } from './languages/fi';\nimport { FR } from './languages/fr';\nimport { GA } from './languages/ga';\nimport { GL } from './languages/gl';\nimport { GU } from './languages/gu';\nimport { HE } from './languages/he';\nimport { HI } from './languages/hi';\nimport { HR } from './languages/hr';\nimport { HU } from './languages/hu';\nimport { HY } from './languages/hy';\nimport { ID } from './languages/id';\nimport { IG } from './languages/ig';\nimport { IT } from './languages/it';\nimport { JA } from './languages/ja';\nimport { KA } from './languages/ka';\nimport { KK } from './languages/kk';\nimport { KM } from './languages/km';\nimport { KO } from './languages/ko';\nimport { KU } from './languages/ku';\nimport { LO } from './languages/lo';\nimport { LT } from './languages/lt';\nimport { LV } from './languages/lv';\nimport { ML } from './languages/ml';\nimport { MR } from './languages/mr';\nimport { MS } from './languages/ms';\nimport { NB } from './languages/nb';\nimport { NE } from './languages/ne';\nimport { NL } from './languages/nl';\nimport { OR } from './languages/or';\nimport { PA } from './languages/pa';\nimport { PL } from './languages/pl';\nimport { PT } from './languages/pt';\nimport { RO } from './languages/ro';\nimport { RU } from './languages/ru';\nimport { SA } from './languages/sa';\nimport { SD } from './languages/sd';\nimport { SI } from './languages/si';\nimport { SM } from './languages/sm';\nimport { SQ } from './languages/sq';\nimport { SV } from './languages/sv';\nimport { TA } from './languages/ta';\nimport { TE } from './languages/te';\nimport { TH } from './languages/th';\nimport { TL } from './languages/tl';\nimport { TR } from './languages/tr';\nimport { UK } from './languages/uk';\nimport { UR } from './languages/ur';\nimport { UZ } from './languages/uz';\nimport { VI } from './languages/vi';\nimport { ZH } from './languages/zh';\nimport { ZU } from './languages/zu';\nimport { BA } from './languages/ba';\nexport const TRANSLATIONS = {\n af: AF,\n am: AM,\n ar: AR,\n as: AS,\n az: AZ,\n be: BE,\n bg: BG,\n bh: BH,\n bn: BN,\n bs: BS,\n ca: CA,\n cs: CS,\n da: DA,\n de: DE,\n el: EL,\n en: EN,\n es: ES,\n eu: EU,\n fa: FA,\n fi: FI,\n fr: FR,\n ga: GA,\n gl: GL,\n gu: GU,\n he: HE,\n hi: HI,\n hr: HR,\n hu: HU,\n hy: HY,\n id: ID,\n ig: IG,\n it: IT,\n ja: JA,\n ka: KA,\n kk: KK,\n km: KM,\n ko: KO,\n ku: KU,\n lo: LO,\n lt: LT,\n lv: LV,\n ml: ML,\n mr: MR,\n ms: MS,\n ne: NE,\n nl: NL,\n nb: NB,\n or: OR,\n pa: PA,\n pl: PL,\n pt: PT,\n ro: RO,\n ru: RU,\n sa: SA,\n sd: SD,\n si: SI,\n sm: SM,\n sq: SQ,\n sv: SV,\n ta: TA,\n te: TE,\n th: TH,\n tl: TL,\n tr: TR,\n uk: UK,\n ur: UR,\n uz: UZ,\n vi: VI,\n zh: ZH,\n zu: ZU,\n ba: BA,\n};\n//# sourceMappingURL=lang.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { TRANSLATIONS } from '../i18n/lang';\nexport const I18NContext = React.createContext({\n translations: {\n markAllAsRead: '',\n notifications: '',\n poweredBy: '',\n settings: '',\n removeMessage: '',\n markAsRead: '',\n markAsUnRead: '',\n },\n lang: '',\n});\nexport function NovuI18NProvider(_a) {\n var { i18n = 'en' } = _a, props = __rest(_a, [\"i18n\"]);\n const i18nEntry = React.useMemo(() => {\n if (typeof i18n === 'string') {\n return {\n translations: TRANSLATIONS[i18n].translations,\n lang: i18n,\n };\n }\n return i18n;\n }, [i18n]);\n return React.createElement(I18NContext.Provider, Object.assign({}, props, { value: i18nEntry }));\n}\n//# sourceMappingURL=i18n.context.js.map","import { useContext } from 'react';\nimport { TRANSLATIONS } from '../i18n/lang';\nimport { I18NContext } from '../store/i18n.context';\nexport function useTranslations() {\n const { translations, lang } = useContext(I18NContext);\n return {\n lang,\n t: (key) => {\n /**\n * Fallback to english when a key for a specified languages does not exist\n */\n return translations[key] || TRANSLATIONS.en.translations[key];\n },\n };\n}\n//# sourceMappingURL=useTranslations.js.map","import { useMemo } from 'react';\nimport { USER_PREFERENCES_QUERY_KEY } from './queryKeys';\nimport { useSetQueryKey } from './useSetQueryKey';\nexport const useFetchUserPreferencesQueryKey = () => {\n const setQueryKey = useSetQueryKey();\n const queryKey = useMemo(() => setQueryKey([...USER_PREFERENCES_QUERY_KEY]), [setQueryKey]);\n return queryKey;\n};\n//# sourceMappingURL=useFetchUserPreferencesQueryKey.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useCallback } from 'react';\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFetchUserPreferencesQueryKey } from './useFetchUserPreferencesQueryKey';\nexport const useUpdateUserPreferences = (_a = {}) => {\n var { onSuccess, onError } = _a, options = __rest(_a, [\"onSuccess\", \"onError\"]);\n const queryClient = useQueryClient();\n const { apiService } = useNovuContext();\n const userPreferencesQueryKey = useFetchUserPreferencesQueryKey();\n const updatePreferenceChecked = useCallback(({ templateId, checked, channelType }) => {\n queryClient.setQueryData(userPreferencesQueryKey, (oldUserPreferences) => oldUserPreferences.map((setting) => {\n if (setting.template._id === templateId) {\n return Object.assign(Object.assign({}, setting), { preference: Object.assign(Object.assign({}, setting.preference), { channels: Object.assign(Object.assign({}, setting.preference.channels), { [channelType]: checked }) }) });\n }\n return setting;\n }));\n }, [queryClient]);\n const _b = useMutation((variables) => apiService.updateSubscriberPreference(variables.templateId, variables.channelType, variables.checked), Object.assign(Object.assign({}, options), { onSuccess: (data, variables, context) => {\n queryClient.setQueryData(userPreferencesQueryKey, (oldUserPreferences) => oldUserPreferences.map((setting) => {\n if (setting.template._id === data.template._id) {\n return data;\n }\n return setting;\n }));\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(data, variables, context);\n }, onError: (error, variables, context) => {\n updatePreferenceChecked({\n templateId: variables.templateId,\n checked: !variables.checked,\n channelType: variables.channelType,\n });\n onError === null || onError === void 0 ? void 0 : onError(error, variables, context);\n } })), { mutate } = _b, result = __rest(_b, [\"mutate\"]);\n const updateUserPreferences = useCallback((variables) => {\n updatePreferenceChecked(variables);\n mutate(variables);\n }, [updatePreferenceChecked, mutate]);\n return Object.assign(Object.assign({}, result), { updateUserPreferences });\n};\n//# sourceMappingURL=useUpdateUserPreferences.js.map","export const getNextPageParam = (lastPage) => {\n return lastPage.hasMore ? lastPage.page + 1 : undefined;\n};\n//# sourceMappingURL=pagination.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useInfiniteQuery } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { getNextPageParam } from '../utils/pagination';\nimport { useFetchNotificationsQueryKey } from './useFetchNotificationsQueryKey';\nexport const useFetchNotifications = ({ query } = {}, options = {}) => {\n const { apiService, isSessionInitialized, fetchingStrategy } = useNovuContext();\n const fetchNotificationsQueryKey = useFetchNotificationsQueryKey();\n const result = useInfiniteQuery(fetchNotificationsQueryKey, ({ pageParam = 0 }) => apiService.getNotificationsList(pageParam, query), Object.assign(Object.assign({}, options), { enabled: isSessionInitialized && fetchingStrategy.fetchNotifications, getNextPageParam }));\n const refetch = (_a = {}) => {\n var { page } = _a, otherOptions = __rest(_a, [\"page\"]);\n if (page !== undefined) {\n result.fetchNextPage(Object.assign({ pageParam: page }, otherOptions));\n }\n else {\n result.refetch(otherOptions);\n }\n };\n return Object.assign(Object.assign({}, result), { refetch });\n};\n//# sourceMappingURL=useFetchNotifications.js.map","import { useQuery } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { ORGANIZATION_QUERY_KEY } from './queryKeys';\nimport { useSetQueryKey } from './useSetQueryKey';\nexport const useFetchOrganization = (options = {}) => {\n const { apiService, isSessionInitialized, fetchingStrategy } = useNovuContext();\n const setQueryKey = useSetQueryKey();\n const result = useQuery(setQueryKey(ORGANIZATION_QUERY_KEY), () => apiService.getOrganization(), Object.assign(Object.assign({}, options), { enabled: isSessionInitialized && fetchingStrategy.fetchOrganization }));\n return result;\n};\n//# sourceMappingURL=useFetchOrganization.js.map","import { useMemo } from 'react';\nimport { FEED_UNSEEN_COUNT_QUERY_KEY } from './queryKeys';\nimport { useSetQueryKey } from './useSetQueryKey';\nexport const useFeedUnseenCountQueryKey = (query) => {\n const setQueryKey = useSetQueryKey();\n const queryKey = useMemo(() => setQueryKey([...FEED_UNSEEN_COUNT_QUERY_KEY, query]), [setQueryKey, query]);\n return queryKey;\n};\n//# sourceMappingURL=useFeedUnseenCountQueryKey.js.map","import { useQuery } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFeedUnseenCountQueryKey } from './useFeedUnseenCountQueryKey';\nexport const useFeedUnseenCount = ({ query }, options = {}) => {\n const { apiService, isSessionInitialized } = useNovuContext();\n const feedUnseenCountQueryKey = useFeedUnseenCountQueryKey(query);\n const result = useQuery(feedUnseenCountQueryKey, () => apiService.getTabCount(query), Object.assign(Object.assign({}, options), { enabled: isSessionInitialized }));\n return result;\n};\n//# sourceMappingURL=useFeedUnseenCount.js.map","import { useQuery } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFetchUserPreferencesQueryKey } from './useFetchUserPreferencesQueryKey';\nexport const useFetchUserPreferences = (options = {}) => {\n const { apiService, isSessionInitialized, fetchingStrategy } = useNovuContext();\n const userPreferencesQueryKey = useFetchUserPreferencesQueryKey();\n const result = useQuery(userPreferencesQueryKey, () => apiService.getUserPreference(), Object.assign(Object.assign({}, options), { enabled: isSessionInitialized && fetchingStrategy.fetchUserPreferences }));\n return result;\n};\n//# sourceMappingURL=useFetchUserPreferences.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFetchNotificationsQueryKey } from './useFetchNotificationsQueryKey';\nexport const useMarkNotificationsAs = (_a = {}) => {\n var { onSuccess, query } = _a, options = __rest(_a, [\"onSuccess\", \"query\"]);\n const queryClient = useQueryClient();\n const { apiService } = useNovuContext();\n const fetchNotificationsQueryKey = useFetchNotificationsQueryKey();\n const _b = useMutation(({ messageId, seen, read }) => apiService.markMessageAs(messageId, {\n seen,\n read,\n }), Object.assign(Object.assign({}, options), { onSuccess: (newMessages, variables, context) => {\n queryClient.setQueriesData({ queryKey: fetchNotificationsQueryKey, exact: false }, (infiniteData) => {\n if (!infiniteData) {\n return;\n }\n const pages = infiniteData.pages.map((page) => {\n const data = page.data.map((message) => {\n const newMessage = newMessages.find((item) => item._id === message._id);\n if (newMessage) {\n return newMessage;\n }\n return message;\n });\n return Object.assign(Object.assign({}, page), { data });\n });\n return {\n pageParams: infiniteData.pageParams,\n pages,\n };\n });\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(newMessages, variables, context);\n } })), { mutate } = _b, result = __rest(_b, [\"mutate\"]);\n return Object.assign(Object.assign({}, result), { markNotificationsAs: mutate });\n};\n//# sourceMappingURL=useMarkNotificationsAs.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFetchNotificationsQueryKey } from './useFetchNotificationsQueryKey';\nexport const useRemoveNotification = (_a = {}) => {\n var { onSuccess } = _a, options = __rest(_a, [\"onSuccess\"]);\n const queryClient = useQueryClient();\n const { apiService } = useNovuContext();\n const fetchNotificationsQueryKey = useFetchNotificationsQueryKey();\n const _b = useMutation(({ messageId }) => apiService.removeMessage(messageId), Object.assign(Object.assign({}, options), { onSuccess: (data, variables, context) => {\n queryClient.refetchQueries(fetchNotificationsQueryKey, { exact: false });\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(data, variables, context);\n } })), { mutate } = _b, result = __rest(_b, [\"mutate\"]);\n return Object.assign(Object.assign({}, result), { removeNotification: mutate });\n};\n//# sourceMappingURL=useRemoveNotification.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFetchNotificationsQueryKey } from './useFetchNotificationsQueryKey';\nexport const useRemoveAllNotifications = (_a = {}) => {\n var { onSuccess } = _a, options = __rest(_a, [\"onSuccess\"]);\n const queryClient = useQueryClient();\n const { apiService } = useNovuContext();\n const fetchNotificationsQueryKey = useFetchNotificationsQueryKey();\n const _b = useMutation(({ feedId }) => {\n return apiService.removeAllMessages(feedId);\n }, Object.assign(Object.assign({}, options), { onSuccess: (data, variables, context) => {\n queryClient.refetchQueries(fetchNotificationsQueryKey, { exact: false });\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(data, variables, context);\n } })), { mutate } = _b, result = __rest(_b, [\"mutate\"]);\n return Object.assign(Object.assign({}, result), { removeAllNotifications: mutate });\n};\n//# sourceMappingURL=useRemoveAllNotifications.js.map","import React from 'react';\n/* eslint-disable */\nexport function GradientDot(props) {\n const color = props.colors.unseenBadgeColor;\n const regularColor = typeof color === 'string';\n return (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" }, props),\n React.createElement(\"rect\", { x: \"1.5\", y: \"1.5\", width: \"13\", height: \"13\", rx: \"6.5\", fill: \"url(#paint0_linear_1722_2699)\", stroke: props.colors.unseenBadgeBackgroundColor, strokeWidth: \"3\" }),\n React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"paint0_linear_1722_2699\", x1: \"8\", y1: \"13\", x2: \"8\", y2: \"3\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: regularColor ? color : color.stopColor }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: regularColor ? color : color.stopColorOffset })))));\n}\n//# sourceMappingURL=GradientDot.js.map","import React from 'react';\n/* eslint-disable */\nexport function DotsHorizontal(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"30\", height: \"30\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M20.625 15.5C20.625 16.5547 21.4453 17.375 22.5 17.375C23.5156 17.375 24.375 16.5547 24.375 15.5C24.375 14.4844 23.5156 13.625 22.5 13.625C21.4453 13.625 20.625 14.4844 20.625 15.5ZM9.375 15.5C9.375 14.4844 8.51562 13.625 7.5 13.625C6.44531 13.625 5.625 14.4844 5.625 15.5C5.625 16.5547 6.44531 17.375 7.5 17.375C8.51562 17.375 9.375 16.5547 9.375 15.5ZM16.875 15.5C16.875 14.4844 16.0156 13.625 15 13.625C13.9453 13.625 13.125 14.4844 13.125 15.5C13.125 16.5547 13.9453 17.375 15 17.375C16.0156 17.375 16.875 16.5547 16.875 15.5Z\", fill: \"currentColor\" })));\n}\n//# sourceMappingURL=DotsHorizontal.js.map","import React from 'react';\n/* eslint-disable */\nexport function Bell(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"30\", height: \"30\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M21.6667 10.8C21.6667 8.99653 20.9643 7.26692 19.714 5.99167C18.4638 4.71643 16.7681 4 15 4C13.2319 4 11.5362 4.71643 10.286 5.99167C9.03571 7.26692 8.33333 8.99653 8.33333 10.8C8.33333 18.7333 5 21 5 21H25C25 21 21.6667 18.7333 21.6667 10.8Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M17.7295 24C17.4521 24.6072 17.0539 25.1113 16.5748 25.4617C16.0956 25.812 15.5524 25.9965 14.9995 25.9965C14.4466 25.9965 13.9034 25.812 13.4243 25.4617C12.9452 25.1113 12.547 24.6072 12.2695 24\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n}\n//# sourceMappingURL=Bell.js.map","import React from 'react';\n/* eslint-disable */\nexport function Cogs(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"g\", { clipPath: \"url(#clip0_2596_30864)\" },\n React.createElement(\"path\", { d: \"M10 12.5C11.3807 12.5 12.5 11.3807 12.5 10C12.5 8.61929 11.3807 7.5 10 7.5C8.61929 7.5 7.5 8.61929 7.5 10C7.5 11.3807 8.61929 12.5 10 12.5Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M16.1663 12.4999C16.0554 12.7513 16.0223 13.0301 16.0713 13.3004C16.1204 13.5707 16.2492 13.8202 16.4413 14.0166L16.4913 14.0666C16.6463 14.2214 16.7692 14.4052 16.8531 14.6075C16.937 14.8098 16.9802 15.0267 16.9802 15.2458C16.9802 15.4648 16.937 15.6817 16.8531 15.884C16.7692 16.0863 16.6463 16.2701 16.4913 16.4249C16.3366 16.5799 16.1527 16.7028 15.9504 16.7867C15.7481 16.8706 15.5312 16.9137 15.3122 16.9137C15.0931 16.9137 14.8763 16.8706 14.6739 16.7867C14.4716 16.7028 14.2878 16.5799 14.133 16.4249L14.083 16.3749C13.8866 16.1828 13.6372 16.0539 13.3668 16.0049C13.0965 15.9559 12.8177 15.989 12.5663 16.0999C12.3199 16.2056 12.1097 16.381 11.9616 16.6045C11.8135 16.8281 11.7341 17.0901 11.733 17.3583V17.4999C11.733 17.9419 11.5574 18.3659 11.2449 18.6784C10.9323 18.991 10.5084 19.1666 10.0663 19.1666C9.62431 19.1666 9.20039 18.991 8.88783 18.6784C8.57527 18.3659 8.39967 17.9419 8.39967 17.4999V17.4249C8.39322 17.1491 8.30394 16.8816 8.14343 16.6572C7.98293 16.4328 7.75862 16.2618 7.49967 16.1666C7.24833 16.0557 6.96951 16.0226 6.69918 16.0716C6.42885 16.1206 6.17941 16.2495 5.98301 16.4416L5.93301 16.4916C5.77822 16.6465 5.5944 16.7695 5.39207 16.8533C5.18974 16.9372 4.97287 16.9804 4.75384 16.9804C4.53481 16.9804 4.31794 16.9372 4.11561 16.8533C3.91328 16.7695 3.72946 16.6465 3.57467 16.4916C3.41971 16.3368 3.29678 16.153 3.21291 15.9507C3.12903 15.7483 3.08586 15.5314 3.08586 15.3124C3.08586 15.0934 3.12903 14.8765 3.21291 14.6742C3.29678 14.4719 3.41971 14.288 3.57467 14.1332L3.62467 14.0833C3.81679 13.8869 3.94566 13.6374 3.99468 13.3671C4.04369 13.0967 4.0106 12.8179 3.89967 12.5666C3.79404 12.3201 3.61864 12.1099 3.39506 11.9618C3.17149 11.8138 2.9095 11.7343 2.64134 11.7333H2.49967C2.05765 11.7333 1.63372 11.5577 1.32116 11.2451C1.0086 10.9325 0.833008 10.5086 0.833008 10.0666C0.833008 9.62456 1.0086 9.20063 1.32116 8.88807C1.63372 8.57551 2.05765 8.39992 2.49967 8.39992H2.57467C2.8505 8.39347 3.11801 8.30418 3.34242 8.14368C3.56684 7.98317 3.73777 7.75886 3.83301 7.49992C3.94394 7.24857 3.97703 6.96976 3.92801 6.69943C3.879 6.4291 3.75012 6.17965 3.55801 5.98325L3.50801 5.93325C3.35305 5.77846 3.23012 5.59465 3.14624 5.39232C3.06237 5.18999 3.0192 4.97311 3.0192 4.75408C3.0192 4.53506 3.06237 4.31818 3.14624 4.11585C3.23012 3.91352 3.35305 3.72971 3.50801 3.57492C3.6628 3.41996 3.84661 3.29703 4.04894 3.21315C4.25127 3.12928 4.46815 3.08611 4.68717 3.08611C4.9062 3.08611 5.12308 3.12928 5.32541 3.21315C5.52774 3.29703 5.71155 3.41996 5.86634 3.57492L5.91634 3.62492C6.11274 3.81703 6.36219 3.94591 6.63252 3.99492C6.90285 4.04394 7.18166 4.01085 7.43301 3.89992H7.49967C7.74615 3.79428 7.95635 3.61888 8.10442 3.39531C8.25248 3.17173 8.33194 2.90974 8.33301 2.64159V2.49992C8.33301 2.05789 8.5086 1.63397 8.82116 1.32141C9.13372 1.00885 9.55765 0.833252 9.99967 0.833252C10.4417 0.833252 10.8656 1.00885 11.1782 1.32141C11.4907 1.63397 11.6663 2.05789 11.6663 2.49992V2.57492C11.6674 2.84307 11.7469 3.10506 11.8949 3.32864C12.043 3.55221 12.2532 3.72762 12.4997 3.83325C12.751 3.94418 13.0298 3.97727 13.3002 3.92826C13.5705 3.87924 13.8199 3.75037 14.0163 3.55825L14.0663 3.50825C14.2211 3.35329 14.4049 3.23036 14.6073 3.14649C14.8096 3.06261 15.0265 3.01944 15.2455 3.01944C15.4645 3.01944 15.6814 3.06261 15.8837 3.14649C16.0861 3.23036 16.2699 3.35329 16.4247 3.50825C16.5796 3.66304 16.7026 3.84685 16.7864 4.04918C16.8703 4.25151 16.9135 4.46839 16.9135 4.68742C16.9135 4.90644 16.8703 5.12332 16.7864 5.32565C16.7026 5.52798 16.5796 5.7118 16.4247 5.86658L16.3747 5.91658C16.1826 6.11298 16.0537 6.36243 16.0047 6.63276C15.9557 6.90309 15.9887 7.1819 16.0997 7.43325V7.49992C16.2053 7.74639 16.3807 7.9566 16.6043 8.10466C16.8279 8.25272 17.0899 8.33218 17.358 8.33325H17.4997C17.9417 8.33325 18.3656 8.50885 18.6782 8.82141C18.9907 9.13397 19.1663 9.55789 19.1663 9.99992C19.1663 10.4419 18.9907 10.8659 18.6782 11.1784C18.3656 11.491 17.9417 11.6666 17.4997 11.6666H17.4247C17.1565 11.6677 16.8945 11.7471 16.671 11.8952C16.4474 12.0432 16.272 12.2534 16.1663 12.4999V12.4999Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })),\n React.createElement(\"defs\", null,\n React.createElement(\"clipPath\", { id: \"clip0_2596_30864\" },\n React.createElement(\"rect\", { width: \"20\", height: \"20\", fill: \"white\" })))));\n}\n//# sourceMappingURL=Cogs.js.map","import React from 'react';\n/* eslint-disable */\nexport function ArrowLeft(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"10\", height: \"15\", viewBox: \"0 0 10 15\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M8.59375 0.875C8.09375 0.375 7.3125 0.40625 6.84375 0.90625L1.34375 6.65625C0.875 7.125 0.875 7.90625 1.34375 8.375L6.84375 14.125C7.0625 14.375 7.40625 14.5 7.75 14.5C8.03125 14.5 8.34375 14.4062 8.59375 14.1562C9.09375 13.6875 9.125 12.9062 8.625 12.4062L3.96875 7.53125L8.625 2.625C9.125 2.125 9.09375 1.34375 8.59375 0.875Z\", fill: \"currentColor\" })));\n}\n//# sourceMappingURL=ArrowLeft.js.map","import React from 'react';\n/* eslint-disable */\nexport function Trash(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M4.375 15.4375C4.375 16.1758 4.94922 16.75 5.6875 16.75H13.5625C14.2734 16.75 14.875 16.1758 14.875 15.4375V6.25H4.375V15.4375ZM11.8125 8.4375C11.8125 8.21875 12.0039 8 12.25 8C12.4688 8 12.6875 8.21875 12.6875 8.4375V14.5625C12.6875 14.8086 12.4688 15 12.25 15C12.0039 15 11.8125 14.8086 11.8125 14.5625V8.4375ZM9.1875 8.4375C9.1875 8.21875 9.37891 8 9.625 8C9.84375 8 10.0625 8.21875 10.0625 8.4375V14.5625C10.0625 14.8086 9.84375 15 9.625 15C9.37891 15 9.1875 14.8086 9.1875 14.5625V8.4375ZM6.5625 8.4375C6.5625 8.21875 6.75391 8 7 8C7.21875 8 7.4375 8.21875 7.4375 8.4375V14.5625C7.4375 14.8086 7.21875 15 7 15C6.75391 15 6.5625 14.8086 6.5625 14.5625V8.4375ZM15.3125 3.625H12.25L11.9219 2.99609C11.8398 2.85938 11.7031 2.75 11.5391 2.75H7.68359C7.51953 2.75 7.38281 2.85938 7.30078 2.99609L7 3.625H3.9375C3.69141 3.625 3.5 3.84375 3.5 4.0625V4.9375C3.5 5.18359 3.69141 5.375 3.9375 5.375H15.3125C15.5312 5.375 15.75 5.18359 15.75 4.9375V4.0625C15.75 3.84375 15.5312 3.625 15.3125 3.625Z\", fill: \"currentColor\" })));\n}\n//# sourceMappingURL=Trash.js.map","import React from 'react';\n/* eslint-disable */\nexport function Read(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M14.9434 5.17969C14.2109 4.59375 13.625 4.125 10.1387 1.60547C9.64062 1.25391 8.67383 0.375 8 0.375V0.404297C7.9707 0.404297 7.9707 0.375 7.9707 0.375C7.29688 0.375 6.33008 1.25391 5.83203 1.60547C2.3457 4.125 1.75977 4.59375 1.02734 5.17969C0.675781 5.44336 0.5 5.85352 0.5 6.26367V13.9688C0.5 14.7598 1.11523 15.375 1.90625 15.375H14.0938C14.8555 15.375 15.5 14.7598 15.5 13.9688V6.26367C15.5 5.85352 15.2949 5.44336 14.9434 5.17969ZM9.37695 11.1562C8.9668 11.4785 8.46875 11.6543 8 11.6543C7.50195 11.6543 7.00391 11.4785 6.59375 11.1562L2.375 7.8457V6.49805C2.99023 6 3.72266 5.44336 6.94531 3.12891C7.0332 3.04102 7.15039 2.95312 7.26758 2.86523C7.41406 2.74805 7.73633 2.48438 8 2.33789C8.23438 2.48438 8.55664 2.74805 8.70312 2.86523C8.82031 2.95312 8.9375 3.04102 9.02539 3.12891C12.2188 5.44336 12.9805 6 13.625 6.49805V7.8457L9.37695 11.1562Z\", fill: \"currentColor\" })));\n}\n//# sourceMappingURL=Read.js.map","import React from 'react';\n/* eslint-disable */\nexport function Sms(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"30\", height: \"30\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M25 19.3333C25 19.8785 24.7659 20.4013 24.3491 20.7868C23.9324 21.1723 23.3671 21.3889 22.7778 21.3889H9.44444L5 25V9.05556C5 8.51039 5.23413 7.98755 5.65087 7.60206C6.06762 7.21657 6.63285 7 7.22222 7H22.7778C23.3671 7 23.9324 7.21657 24.3491 7.60206C24.7659 7.98755 25 8.51039 25 9.05556V19.3333Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n}\n//# sourceMappingURL=Sms.js.map","import React from 'react';\n/* eslint-disable */\nexport function Mail(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"30\", height: \"30\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M24 8.5L15 15.25L6 8.5M7 7H23C24.1 7 25 7.9 25 9V21C25 22.1 24.1 23 23 23H7C5.9 23 5 22.1 5 21V9C5 7.9 5.9 7 7 7Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n}\n//# sourceMappingURL=Mail.js.map","import React from 'react';\n/* eslint-disable */\nexport function Mobile(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"30\", height: \"30\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M15 22.5H15.01M8.75 2.5H21.25C22.6307 2.5 23.75 3.61929 23.75 5V25C23.75 26.3807 22.6307 27.5 21.25 27.5H8.75C7.36929 27.5 6.25 26.3807 6.25 25V5C6.25 3.61929 7.36929 2.5 8.75 2.5Z\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n}\n//# sourceMappingURL=Mobile.js.map","import React from 'react';\n/* eslint-disable */\nexport function Chat(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"22\", height: \"22\", viewBox: \"0 0 22 22\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M21 1L10 12M21 1L14 21L10 12M21 1L1 8L10 12\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n}\n//# sourceMappingURL=Chat.js.map","/* eslint-disable max-len */\nimport React from 'react';\nexport function ErrorIcon(props) {\n return (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", className: \"icon\", viewBox: \"0 0 1024 1024\", width: \"40px\", height: \"40px\", fill: \"currentColor\" }, props),\n React.createElement(\"path\", { d: \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 0 1-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" })));\n}\n//# sourceMappingURL=ErrorIcon.js.map","/* eslint-disable max-len */\nimport React from 'react';\nexport function Info(props) {\n return (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", className: \"icon\", viewBox: \"0 0 1024 1024\", width: \"40px\", height: \"40px\", fill: \"currentColor\" }, props),\n React.createElement(\"path\", { d: \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\" })));\n}\n//# sourceMappingURL=Info.js.map","/* eslint-disable max-len */\nimport React from 'react';\nexport function Question(props) {\n return (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", className: \"icon\", viewBox: \"0 0 1024 1024\", width: \"40px\", height: \"40px\", fill: \"currentColor\" }, props),\n React.createElement(\"path\", { d: \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z\" })));\n}\n//# sourceMappingURL=Question.js.map","/* eslint-disable max-len */\nimport React from 'react';\nexport function Success(props) {\n return (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", className: \"icon\", viewBox: \"0 0 1024 1024\", fill: \"currentColor\" }, props),\n React.createElement(\"path\", { d: \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" })));\n}\n//# sourceMappingURL=Success.js.map","/* eslint-disable max-len */\nimport React from 'react';\nexport function Up(props) {\n return (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", className: \"icon\", viewBox: \"0 0 1024 1024\", width: \"40px\", height: \"40px\", fill: \"currentColor\" }, props),\n React.createElement(\"path\", { d: \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z\" })));\n}\n//# sourceMappingURL=Up.js.map","/* eslint-disable max-len */\nimport React from 'react';\nexport function Warning(props) {\n return (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", className: \"icon\", viewBox: \"0 0 1024 1024\", width: \"40px\", height: \"40px\", fill: \"currentColor\" }, props),\n React.createElement(\"path\", { d: \"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z\" })));\n}\n//# sourceMappingURL=Warning.js.map","/* eslint-disable max-len */\nimport React from 'react';\nexport function Avatar(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"14\", height: \"16\", viewBox: \"0 0 14 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M7 8C9.1875 8 11 6.21875 11 4C11 1.8125 9.1875 0 7 0C4.78125 0 3 1.8125 3 4C3 6.21875 4.78125 8 7 8ZM8.5625 9.5H5.40625C2.40625 9.5 0 11.9375 0 14.9375C0 15.5312 0.46875 16 1.0625 16H12.9062C13.5 16 14 15.5312 14 14.9375C14 11.9375 11.5625 9.5 8.5625 9.5Z\", fill: \"currentColor\" })));\n}\n//# sourceMappingURL=Avatar.js.map","const get = (obj, path) => path.split('.').reduce((acc, level) => acc && acc[level], obj);\nexport const getStyleByPath = ({ styles, path, theme, common, colorScheme, }) => {\n if (!styles) {\n return;\n }\n const stylePart = get(styles, path);\n return typeof stylePart === 'function' ? stylePart({ theme, common, colorScheme }) : stylePart;\n};\n//# sourceMappingURL=styles.js.map","import React, { createContext, useMemo, useContext } from 'react';\nimport { useNovuTheme } from '../../hooks';\nimport { getStyleByPath } from '../../utils/styles';\nconst StylesContext = createContext(undefined);\nexport const useStyles = (path) => {\n const stylesContext = useContext(StylesContext);\n const { theme, colorScheme, common } = useNovuTheme();\n if (!stylesContext) {\n throw new Error('useStyles must be used within a StylesProvider');\n }\n if (Array.isArray(path)) {\n return path.map((el) => getStyleByPath({\n styles: stylesContext.styles,\n path: el,\n theme,\n common,\n colorScheme,\n }));\n }\n return [\n getStyleByPath({\n styles: stylesContext.styles,\n path,\n theme,\n common,\n colorScheme,\n }),\n ];\n};\nexport const StylesProvider = ({ styles, children }) => {\n const contextValue = useMemo(() => ({ styles }), [styles]);\n return React.createElement(StylesContext.Provider, { value: contextValue }, children);\n};\n//# sourceMappingURL=styles-provider.js.map","import React from 'react';\nimport { Badge } from '@mantine/core';\nimport { cx, css } from '@emotion/css';\nimport { useNovuTheme } from '../../../hooks';\nimport { useStyles } from '../../../store/styles';\nexport function UnseenBadge({ unseenCount }) {\n var _a, _b;\n const { theme, common } = useNovuTheme();\n const [unseenBadgeStyles] = useStyles('unseenBadge.root');\n const showUnseenBadge = unseenCount && unseenCount > 0;\n return showUnseenBadge ? (React.createElement(Badge, { \"data-test-id\": \"unseen-count-label\", sx: {\n padding: 0,\n marginLeft: 10,\n width: 25,\n height: 20,\n pointerEvents: 'none',\n border: 'none',\n background: (_a = theme.header) === null || _a === void 0 ? void 0 : _a.badgeColor,\n fontFamily: common.fontFamily,\n lineHeight: '14px',\n color: (_b = theme.header) === null || _b === void 0 ? void 0 : _b.badgeTextColor,\n fontWeight: 'bold',\n fontSize: '12px',\n }, radius: 10, className: cx('nc-unseen-badge', css(unseenBadgeStyles)) }, unseenCount > 99 ? '99+' : unseenCount)) : null;\n}\n//# sourceMappingURL=UnseenBadge.js.map","import React, { useContext, useEffect, useState } from 'react';\nimport { css, cx } from '@emotion/css';\nimport styled from '@emotion/styled';\nimport { ActionIcon } from '@mantine/core';\nimport { useNotifications, useNovuTheme, useTranslations } from '../../../../../hooks';\nimport { Cogs } from '../../../../../shared/icons';\nimport { NotificationCenterContext } from '../../../../../store/notification-center.context';\nimport { useStyles } from '../../../../../store/styles';\nimport { UnseenBadge } from '../../UnseenBadge';\nexport function Header({ onCogClick }) {\n var _a;\n const [allRead, setAllRead] = useState(true);\n const { markAllNotificationsAsRead, notifications, unseenCount } = useNotifications();\n const { theme } = useNovuTheme();\n const { tabs, showUserPreferences } = useContext(NotificationCenterContext);\n const { t } = useTranslations();\n const [headerStyles, headerTitleStyles, headerMarkAsReadStyles, headerCogStyles] = useStyles([\n 'header.root',\n 'header.title',\n 'header.markAsRead',\n 'header.cog',\n ]);\n useEffect(() => {\n if (notifications) {\n const read = notifications.some((msg) => msg.read === false);\n setAllRead(read);\n }\n }, [notifications]);\n return (React.createElement(\"div\", { className: cx('nc-header', headerClassName, css(headerStyles)) },\n React.createElement(\"div\", { style: { display: 'flex', flexDirection: 'row', gap: '10px', alignItems: 'center' } },\n React.createElement(\"div\", { className: cx('nc-header-title', titleClassName(theme.header.fontColor), css(headerTitleStyles)), \"data-test-id\": \"notifications-header-title\" }, t('notifications')),\n !tabs && React.createElement(UnseenBadge, { unseenCount: unseenCount })),\n React.createElement(ActionItems, null,\n React.createElement(\"div\", { className: cx('nc-header-mark-as-read', markAsReadClassName(!allRead, (_a = theme.header) === null || _a === void 0 ? void 0 : _a.markAllAsReadButtonColor), css(headerMarkAsReadStyles)), onClick: markAllNotificationsAsRead, role: \"button\", tabIndex: 0, \"data-test-id\": \"notifications-header-mark-all-as-read\" }, t('markAllAsRead')),\n React.createElement(\"div\", { style: { display: showUserPreferences ? 'inline-block' : 'none' } },\n React.createElement(ActionIcon, { \"data-test-id\": \"user-preference-cog\", variant: \"transparent\", onClick: onCogClick },\n React.createElement(Cogs, { className: cx('nc-header-cog', cogClassName(theme), css(headerCogStyles)) }))))));\n}\nconst headerClassName = css `\n padding: 5px 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 55px;\n`;\nconst ActionItems = styled.div `\n display: flex;\n align-items: center;\n`;\nconst cogClassName = (theme) => {\n var _a;\n return css `\n color: ${(_a = theme === null || theme === void 0 ? void 0 : theme.userPreferences) === null || _a === void 0 ? void 0 : _a.settingsButtonColor};\n`;\n};\nconst titleClassName = (fontColor) => css `\n color: ${fontColor};\n font-size: 20px;\n font-style: normal;\n font-weight: 700;\n line-height: 24px;\n text-align: center;\n`;\nconst markAsReadClassName = (disabled, fontColor) => css `\n margin-right: 10px;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 17px;\n color: ${fontColor};\n cursor: pointer;\n pointer-events: ${disabled ? 'none' : 'auto'};\n opacity: ${disabled ? 0.5 : 1};\n`;\n//# sourceMappingURL=Header.js.map","import React from 'react';\nimport { ActionIcon } from '@mantine/core';\nimport { css, cx } from '@emotion/css';\nimport { ArrowLeft } from '../../../../../shared/icons';\nimport { useNovuTheme, useTranslations } from '../../../../../hooks';\nimport { useStyles } from '../../../../../store/styles';\nexport function UserPreferenceHeader({ onBackClick }) {\n const { theme } = useNovuTheme();\n const { t } = useTranslations();\n const [headerStyles, headerTitleStyles, backButtonStyles] = useStyles([\n 'header.root',\n 'header.title',\n 'header.backButton',\n ]);\n return (React.createElement(\"div\", { className: cx('nc-header', headerClassName, css(headerStyles)) },\n React.createElement(ActionIcon, { className: cx('nc-header-back-button', css `\n color: ${theme.header.fontColor};\n `, css(backButtonStyles)), \"data-test-id\": \"go-back-btn\", variant: \"transparent\", onClick: onBackClick },\n React.createElement(ArrowLeft, { style: { marginLeft: '15px' } })),\n React.createElement(\"div\", { className: cx('nc-header-title', titleClassName(theme.header.fontColor), css(headerTitleStyles)) }, t('settings'))));\n}\nconst titleClassName = (fontColor) => css `\n color: ${fontColor};\n font-size: 20px;\n font-style: normal;\n font-weight: 700;\n line-height: 24px;\n text-align: left;\n`;\nconst headerClassName = css `\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 55px;\n gap: 10px;\n`;\n//# sourceMappingURL=UserPreferenceHeader.js.map","/* eslint-disable max-len */\nimport React from 'react';\nimport { css, cx } from '@emotion/css';\nimport { useNovuTheme, useTranslations } from '../../../../../hooks';\nimport { useStyles } from '../../../../../store/styles';\nexport function Footer() {\n const { theme } = useNovuTheme();\n const { t } = useTranslations();\n const [footerStyles, footerTitleStyles] = useStyles(['footer.root', 'footer.title']);\n return (React.createElement(\"div\", { className: cx('nc-footer', footerClassName, css(footerStyles)) },\n React.createElement(\"span\", { className: cx(footerPoweredByClassName(theme), css(footerTitleStyles)) },\n t('poweredBy'),\n \" \"),\n React.createElement(\"a\", { rel: \"noreferrer\", target: \"_blank\", href: \"https://novu.co?utm_source=in-app-widget\", style: { display: 'flex', color: theme.footer.logoTextColor } },\n React.createElement(\"svg\", { width: \"107\", height: \"16\", viewBox: \"0 0 1049 300\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M231 120.241C231 128.307 221.208 132.301 215.567 126.536L100.084 8.50548C115.699 2.9969 132.5 0 150 0C179.836 0 207.638 8.711 231 23.7285V120.241ZM273 64.1228V120.241C273 165.946 217.51 188.577 185.546 155.908L61.3582 28.9807C24.1534 56.2779 0 100.318 0 150C0 181.941 9.98339 211.55 27 235.877V180.059C27 134.354 82.4899 111.723 114.454 144.392L238.471 271.145C275.773 243.857 300 199.758 300 150C300 118.059 290.017 88.45 273 64.1228ZM84.433 173.764L199.697 291.571C184.144 297.031 167.419 300 150 300C120.164 300 92.3624 291.289 69 276.272V180.059C69 171.993 78.7923 167.999 84.433 173.764Z\", fill: \"url(#paint0_linear_1301_3067)\" }),\n React.createElement(\"path\", { d: \"M487.303 223.326V140.944C487.303 126.727 483.892 115.918 477.07 108.517C470.248 101.116 459.527 97.4157 444.908 97.4157C434.967 97.4157 427.073 98.3895 421.225 100.337C415.378 102.09 411.674 103.356 410.115 104.135V223.326H380V84.8539C380.78 84.4644 382.924 83.588 386.432 82.2247C389.941 80.8614 394.619 79.4007 400.467 77.8427C406.314 76.2846 413.136 74.9213 420.933 73.7528C428.73 72.5843 437.306 72 446.662 72C457.383 72 467.129 73.4607 475.9 76.382C484.672 79.1086 492.079 83.1011 498.121 88.3596C504.359 93.618 509.134 99.9476 512.448 107.348C515.761 114.749 517.418 123.124 517.418 132.472V223.326H487.303Z\", fill: \"currentColor\" }),\n React.createElement(\"path\", { d: \"M713.257 150C713.257 161.101 711.308 171.423 707.41 180.966C703.706 190.509 698.444 198.787 691.621 205.798C684.799 212.614 676.613 218.067 667.061 222.157C657.51 226.052 646.985 228 635.485 228C623.984 228 613.361 226.052 603.615 222.157C594.064 218.067 585.878 212.614 579.055 205.798C572.233 198.787 566.873 190.509 562.975 180.966C559.271 171.423 557.419 161.101 557.419 150C557.419 138.899 559.271 128.577 562.975 119.034C566.873 109.491 572.233 101.311 579.055 94.4944C585.878 87.4831 594.064 82.03 603.615 78.1348C613.361 74.0449 623.984 72 635.485 72C646.985 72 657.51 74.0449 667.061 78.1348C676.613 82.03 684.799 87.4831 691.621 94.4944C698.444 101.311 703.706 109.491 707.41 119.034C711.308 128.577 713.257 138.899 713.257 150ZM681.973 150C681.973 142.21 680.901 135.101 678.757 128.674C676.613 122.052 673.494 116.404 669.401 111.73C665.502 106.861 660.629 103.161 654.782 100.629C649.129 97.9026 642.697 96.5393 635.485 96.5393C628.078 96.5393 621.45 97.9026 615.603 100.629C609.95 103.161 605.077 106.861 600.984 111.73C597.085 116.404 594.064 122.052 591.92 128.674C589.776 135.101 588.704 142.21 588.704 150C588.704 157.79 589.776 164.996 591.92 171.618C594.064 178.045 597.085 183.693 600.984 188.562C605.077 193.236 609.95 196.936 615.603 199.663C621.45 202.195 628.078 203.461 635.485 203.461C642.697 203.461 649.129 202.195 654.782 199.663C660.629 196.936 665.502 193.236 669.401 188.562C673.494 183.693 676.613 178.045 678.757 171.618C680.901 164.996 681.973 157.79 681.973 150Z\", fill: \"currentColor\" }),\n React.createElement(\"path\", { d: \"M888.255 83.1011C887.086 87.3858 885.039 93.1311 882.115 100.337C879.387 107.348 876.17 115.236 872.467 124C868.764 132.764 864.67 142.015 860.187 151.753C855.899 161.296 851.513 170.644 847.03 179.798C842.742 188.757 838.551 197.228 834.458 205.213C830.559 213.004 827.148 219.528 824.224 224.787H792.94C789.431 218.554 785.728 211.738 781.829 204.337C778.126 196.742 774.325 189.146 770.427 181.551C766.723 173.76 763.117 166.067 759.609 158.472C756.1 150.876 752.786 143.865 749.668 137.438C746.744 130.816 744.113 124.974 741.774 119.91C739.629 114.846 737.973 110.951 736.803 108.225C735.634 105.498 734.464 102.577 733.295 99.4607C732.125 96.3446 731.54 93.4232 731.54 90.6966C731.54 87.191 732.71 83.9775 735.049 81.0562C737.388 78.1348 741.384 76.6742 747.036 76.6742C750.935 76.6742 753.956 77.0637 756.1 77.8427C758.244 78.6217 759.414 79.1086 759.609 79.3034C762.922 88.4569 766.723 98.4869 771.011 109.393C775.495 120.3 779.978 131.109 784.461 141.82C789.139 152.337 793.622 162.464 797.91 172.202C802.199 181.745 805.999 189.828 809.313 196.449C811.652 191.97 814.673 185.64 818.377 177.461C822.275 169.086 826.271 159.933 830.364 150C834.653 140.067 838.941 129.843 843.229 119.326C847.517 108.809 851.318 99.1685 854.632 90.4045C856.191 86.1198 858.14 82.809 860.479 80.4719C862.818 77.9401 866.717 76.6742 872.175 76.6742C876.853 76.6742 880.556 77.5506 883.285 79.3034C886.209 81.0562 887.866 82.3221 888.255 83.1011Z\", fill: \"currentColor\" }),\n React.createElement(\"path\", { d: \"M1018.88 90.4045C1018.88 85.7303 1020.25 82.3221 1022.98 80.1798C1025.71 77.8427 1029.61 76.6742 1034.67 76.6742C1037.99 76.6742 1040.91 77.0637 1043.44 77.8427C1046.17 78.6217 1048.03 79.206 1049 79.5955V223.326C1047.64 223.715 1045.2 224.105 1041.69 224.494C1038.38 224.884 1034.28 225.273 1029.41 225.663C1024.54 226.247 1019.18 226.637 1013.33 226.831C1007.48 227.221 1001.54 227.416 995.495 227.416C977.757 227.416 963.333 225.273 952.223 220.989C941.307 216.704 932.633 210.472 926.201 202.292C918.209 191.97 914.213 178.24 914.213 161.101V90.4045C914.213 85.7303 915.578 82.3221 918.307 80.1798C921.035 77.8427 924.934 76.6742 930.002 76.6742C933.315 76.6742 936.239 77.0637 938.773 77.8427C941.502 78.6217 943.354 79.206 944.328 79.5955V157.888C944.328 172.689 948.032 183.79 955.439 191.191C963.041 198.592 975.808 202.292 993.74 202.292C1000.56 202.292 1006.02 202.097 1010.11 201.708C1014.4 201.124 1017.33 200.637 1018.88 200.247V90.4045Z\", fill: \"currentColor\" }),\n React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"paint0_linear_1301_3067\", x1: \"300\", y1: \"0\", x2: \"3.57628e-05\", y2: \"300\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { offset: \"0.231667\", stopColor: \"#FF884D\" }),\n React.createElement(\"stop\", { offset: \"0.801667\", stopColor: \"#E300BD\" })))))));\n}\nconst footerPoweredByClassName = (novuTheme) => css `\n color: ${novuTheme.footer.logoPrefixFontColor};\n font-size: 10px;\n font-weight: 400;\n`;\nconst footerClassName = css `\n text-align: center;\n border-radius: 7px;\n margin-top: 10px;\n height: 25px;\n display: flex;\n justify-content: center;\n align-items: center;\n direction: ltr;\n\n svg {\n margin-left: 10px;\n width: 60px;\n position: relative;\n top: -1px;\n }\n`;\n//# sourceMappingURL=Footer.js.map","import React from 'react';\nimport { Footer } from './Footer';\nimport { useNotificationCenter } from '../../../../../hooks';\nexport function FooterContainer() {\n const { footer } = useNotificationCenter();\n return React.createElement(React.Fragment, null, footer ? footer() : React.createElement(Footer, null));\n}\n//# sourceMappingURL=FooterContainer.js.map","import React from 'react';\nimport { Loader as MantineLoader } from '@mantine/core';\nimport { cx, css } from '@emotion/css';\nimport { useNovuTheme } from '../../../hooks';\nimport { useStyles } from '../../../store/styles';\nexport const Loader = ({ color }) => {\n const { theme } = useNovuTheme();\n const [loaderStyles] = useStyles(['loader.root']);\n const loaderColor = color || theme.loaderColor;\n return (React.createElement(\"div\", { style: {\n textAlign: 'center',\n minHeight: 300,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n } },\n React.createElement(MantineLoader, { className: cx('nc-loader', css(loaderStyles)), color: loaderColor })));\n};\n//# sourceMappingURL=Loader.js.map","import styled from '@emotion/styled';\nexport const accordionStyles = (baseTheme, font) => {\n var _a;\n return {\n item: {\n borderBottom: 'none',\n boxShadow: baseTheme.accordion.boxShadow,\n backgroundColor: baseTheme.accordion.background,\n marginBottom: '15px',\n borderRadius: '7px',\n },\n content: {\n color: baseTheme.accordion.fontColor,\n fontFamily: font,\n },\n control: {\n fontFamily: font,\n height: '65px',\n '&:hover': {\n backgroundColor: baseTheme.accordion.background,\n borderRadius: '7px',\n },\n },\n chevron: {\n color: (_a = baseTheme.accordion) === null || _a === void 0 ? void 0 : _a.arrowColor,\n },\n };\n};\nexport const switchStyles = (baseTheme) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return {\n root: {\n width: '100%',\n maxWidth: '70px',\n display: 'flex',\n alignItems: 'center',\n },\n input: {\n background: (_b = (_a = baseTheme.accordionItem) === null || _a === void 0 ? void 0 : _a.switch) === null || _b === void 0 ? void 0 : _b.backgroundUnchecked,\n width: '1px',\n height: '1px',\n border: 'transparent',\n cursor: 'pointer',\n '&::before': {\n border: 'transparent',\n width: '20px',\n height: '20px',\n },\n '&:checked ~ label': {\n background: (_d = (_c = baseTheme.accordionItem) === null || _c === void 0 ? void 0 : _c.switch) === null || _d === void 0 ? void 0 : _d.backgroundChecked,\n },\n '&:not(checked) ~ label': {\n background: (_f = (_e = baseTheme.accordionItem) === null || _e === void 0 ? void 0 : _e.switch) === null || _f === void 0 ? void 0 : _f.backgroundUnchecked,\n },\n '&:disabled:not(:checked) ~ label': {\n background: (_h = (_g = baseTheme.accordionItem) === null || _g === void 0 ? void 0 : _g.switch) === null || _h === void 0 ? void 0 : _h.backgroundUnchecked,\n },\n '&:disabled': {\n opacity: 0.3,\n },\n },\n track: {\n width: '46px',\n height: '24px',\n border: 'none',\n },\n thumb: {\n border: 'none',\n },\n };\n};\nexport const Text = styled.div `\n font-size: ${({ size }) => (size === 'sm' ? '12px' : '14px')};\n font-style: normal;\n align-items: center;\n font-weight: ${({ size }) => (size === 'lg' ? '700' : '400')};\n line-height: ${({ size }) => (size === 'sm' ? '14.4px' : '16.8px')};\n text-align: left;\n`;\nexport const TextBlock = styled.div `\n display: flex;\n flex-direction: column;\n padding: 0;\n gap: 5px;\n align-items: flex-start;\n`;\n//# sourceMappingURL=styles.js.map","import React from 'react';\nimport { css, cx } from '@emotion/css';\nimport { Text, TextBlock } from './styles';\nimport { useStyles } from '../../../../store/styles';\nconst preferencesTitleClassName = (theme) => {\n var _a;\n return css `\n color: ${(_a = theme === null || theme === void 0 ? void 0 : theme.accordion) === null || _a === void 0 ? void 0 : _a.fontColor};\n`;\n};\nconst preferencesChannelsClassName = (theme) => {\n var _a;\n return css `\n color: ${(_a = theme === null || theme === void 0 ? void 0 : theme.accordion) === null || _a === void 0 ? void 0 : _a.secondaryFontColor};\n`;\n};\nexport const WorkflowHeader = ({ theme, label, channels, }) => {\n const [itemTitleStyles, itemChannelsStyles] = useStyles(['preferences.item.title', 'preferences.item.channels']);\n return (React.createElement(TextBlock, null,\n React.createElement(Text, { size: 'lg', className: cx('nc-preferences-item-title', preferencesTitleClassName(theme), css(itemTitleStyles)) }, label),\n React.createElement(Text, { \"data-test-id\": \"workflow-active-channels\", size: 'sm', className: cx('nc-preferences-item-channels', preferencesChannelsClassName(theme), css(itemChannelsStyles)) }, channels)));\n};\n//# sourceMappingURL=WorkflowHeader.js.map","import { Bell, Chat, Mail, Mobile, Sms } from '../../../../shared/icons';\nexport const channels = [\n { type: 'sms', label: 'SMS', Icon: Sms, description: 'This is an sms' },\n { type: 'push', label: 'Push', Icon: Mobile, description: 'This is a push' },\n { type: 'email', label: 'Email', Icon: Mail, description: 'This is a mail' },\n { type: 'in_app', label: 'In App', Icon: Bell, description: 'This is an in app' },\n { type: 'chat', label: 'Chat', Icon: Chat, description: 'This is a chat' },\n];\nexport const getChannel = (channelKey) => {\n return channels.find((channel) => channel.type === channelKey);\n};\n//# sourceMappingURL=channels.js.map","import React from 'react';\n/* eslint-disable */\nexport function Check(props) {\n return (React.createElement(\"svg\", Object.assign({ width: \"12\", height: \"13\", viewBox: \"0 0 12 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, props),\n React.createElement(\"path\", { d: \"M6 0.875C2.88281 0.875 0.375 3.40625 0.375 6.5C0.375 9.61719 2.88281 12.125 6 12.125C9.09375 12.125 11.625 9.61719 11.625 6.5C11.625 3.40625 9.09375 0.875 6 0.875ZM8.69531 5.46875L5.69531 8.46875C5.57812 8.60938 5.41406 8.65625 5.25 8.65625C5.0625 8.65625 4.89844 8.60938 4.78125 8.46875L3.28125 6.96875C3.02344 6.71094 3.02344 6.3125 3.28125 6.05469C3.53906 5.79688 3.9375 5.79688 4.19531 6.05469L5.25 7.08594L7.78125 4.55469C8.03906 4.29688 8.4375 4.29688 8.69531 4.55469C8.95312 4.8125 8.95312 5.21094 8.69531 5.46875Z\", fill: \"#4D9980\" })));\n}\n//# sourceMappingURL=Check.js.map","export const colors = {\n white: '#FFFFFF',\n BGLight: '#EDF0F2',\n BGDark: '#13131A',\n B98: '#F5F8FA',\n B85: '#D5D5D9',\n B80: '#BEBECC',\n B70: '#A1A1B2',\n B60: '#828299',\n B40: '#525266',\n B30: '#3D3D4D',\n B20: '#292933',\n B15: '#1E1E26',\n B17: '#23232B',\n success: '#4D9980',\n error: '#E54545',\n vertical: 'linear-gradient(0deg,#FF512F 0%,#DD2476 100%)',\n horizontal: 'linear-gradient(99deg,#DD2476 0% 0%,#FF512F 100% 100%)',\n loader: '#ef3f5a',\n};\n//# sourceMappingURL=colors.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React, { useState } from 'react';\nimport { LoadingOverlay, Switch } from '@mantine/core';\nimport styled from '@emotion/styled';\nimport { css, cx } from '@emotion/css';\nimport { useNovuTheme } from '../../../../hooks';\nimport { getChannel } from './channels';\nimport { switchStyles, Text } from './styles';\nimport { Check } from '../../../../shared/icons/Check';\nimport { colors } from '../../../../shared/config/colors';\nimport { useStyles } from '../../../../store/styles';\nconst iconClassName = (active, iconColor) => css `\n color: ${active ? iconColor.active : iconColor.inactive};\n width: 30px;\n`;\nconst channelLabelClassName = (active, fontColor) => css `\n color: ${active ? fontColor.active : fontColor.inactive};\n`;\nconst successClassName = css `\n color: ${colors.success};\n`;\nexport function ChannelPreference({ type, active, disabled, handleUpdateChannelPreference }) {\n var _a, _b;\n const { label, Icon } = getChannel(type);\n const { theme } = useNovuTheme();\n const [isLoading, setIsLoading] = useState(false);\n const [showSaved, setShowSaved] = useState(false);\n const baseTheme = theme === null || theme === void 0 ? void 0 : theme.userPreferences;\n const iconColor = (_a = baseTheme === null || baseTheme === void 0 ? void 0 : baseTheme.accordionItem) === null || _a === void 0 ? void 0 : _a.icon;\n const fontColor = (_b = baseTheme === null || baseTheme === void 0 ? void 0 : baseTheme.accordionItem) === null || _b === void 0 ? void 0 : _b.fontColor;\n const [switchRootStyles, switchInputStyles, switchTrackStyles, switchThumbStyles, itemContentIconStyles, itemContentChannelLabelStyles, itemContentSuccessStyles,] = useStyles([\n 'switch.root',\n 'switch.input',\n 'switch.track',\n 'switch.thumb',\n 'preferences.item.content.icon',\n 'preferences.item.content.channelLabel',\n 'preferences.item.content.success',\n ]);\n const channelSwitchStyles = switchStyles(baseTheme);\n const channelSwitchClassNames = {\n root: css(switchRootStyles),\n input: css(switchInputStyles),\n track: css(switchTrackStyles),\n thumb: css(switchThumbStyles),\n };\n const updateChannel = (checked) => __awaiter(this, void 0, void 0, function* () {\n setIsLoading(true);\n yield handleUpdateChannelPreference(type, checked);\n setIsLoading(false);\n setShowSaved(true);\n setTimeout(() => {\n setShowSaved(false);\n }, 1500);\n });\n return (React.createElement(ChannelItemWrapper, { \"data-test-id\": \"channel-preference-item\" },\n React.createElement(LeftContentWrapper, null,\n React.createElement(Icon, { className: cx('nc-preferences-item-icon', iconClassName(active, iconColor), css(itemContentIconStyles)) }),\n React.createElement(Text, { size: 'md', className: cx('nc-preferences-channel-label', channelLabelClassName(active, fontColor), css(itemContentChannelLabelStyles)) }, label)),\n React.createElement(RightContentWrapper, null,\n showSaved && (React.createElement(\"div\", { style: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', gap: '5px' } },\n React.createElement(Check, { color: colors.success }),\n React.createElement(Text, { size: \"sm\", className: cx('nc-preferences-item-success', successClassName, css(itemContentSuccessStyles)) }, \"Saved\"))),\n React.createElement(SwitchWrapper, null,\n React.createElement(LoadingOverlay, { visible: isLoading, \"data-test-id\": \"channel-preference-item-loader\", loaderProps: {\n size: 15,\n color: theme.loaderColor,\n }, overlayOpacity: 0.3, overlayColor: \"transparent\", sx: {\n justifyContent: active ? 'right' : 'left',\n marginLeft: '3px',\n marginRight: '1.5px',\n marginTop: '1px',\n } }),\n React.createElement(Switch, { \"data-test-id\": \"channel-preference-item-toggle\", styles: channelSwitchStyles, classNames: channelSwitchClassNames, disabled: disabled && !isLoading, checked: active, onChange: (e) => updateChannel(e.target.checked) })))));\n}\nconst ChannelItemWrapper = styled.div `\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\nconst LeftContentWrapper = styled.div `\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n gap: 15px;\n`;\nconst RightContentWrapper = styled.div `\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n gap: 13px;\n`;\nconst SwitchWrapper = styled.div `\n width: inherit;\n height: inherit;\n position: relative;\n\n svg circle {\n stroke-opacity: 0;\n }\n`;\n//# sourceMappingURL=ChannelPreference.js.map","import React from 'react';\nimport styled from '@emotion/styled';\nimport { css, cx } from '@emotion/css';\nimport { Accordion, Divider } from '@mantine/core';\nimport { useStyles } from '../../../../store/styles';\nimport { useNovuTheme, useUpdateUserPreferences } from '../../../../hooks';\nimport { WorkflowHeader } from './WorkflowHeader';\nimport { getChannel } from './channels';\nimport { ChannelPreference } from './ChannelPreference';\nconst dividerClassName = (baseTheme) => {\n var _a;\n return css `\n border-top-color: ${(_a = baseTheme === null || baseTheme === void 0 ? void 0 : baseTheme.accordion) === null || _a === void 0 ? void 0 : _a.dividerColor};\n`;\n};\nconst ChannelsWrapper = styled.div `\n display: flex;\n flex-direction: column;\n padding: 0;\n gap: 20px;\n`;\nfunction getEnabledChannels(channels) {\n const keys = Object.keys(channels);\n const list = keys.filter((key) => channels[key]).map((channel) => getChannel(channel).label);\n return list.join(', ');\n}\nexport const UserPreferenceItem = ({ preferenceSettings }) => {\n var _a, _b, _c;\n const { theme } = useNovuTheme();\n const { isLoading: isPreferenceUpdating, updateUserPreferences } = useUpdateUserPreferences();\n const [itemDividerStyles] = useStyles(['preferences.item.divider']);\n const baseTheme = theme === null || theme === void 0 ? void 0 : theme.userPreferences;\n const channelsKeys = Object.keys((_a = preferenceSettings === null || preferenceSettings === void 0 ? void 0 : preferenceSettings.preference) === null || _a === void 0 ? void 0 : _a.channels);\n const channelsPreference = (_b = preferenceSettings === null || preferenceSettings === void 0 ? void 0 : preferenceSettings.preference) === null || _b === void 0 ? void 0 : _b.channels;\n const handleUpdateChannelPreference = (type, checked) => {\n updateUserPreferences({ templateId: preferenceSettings.template._id, channelType: type, checked });\n };\n return (React.createElement(Accordion.Item, { value: preferenceSettings.template._id, \"data-test-id\": \"workflow-list-item\" },\n React.createElement(Accordion.Control, null,\n React.createElement(WorkflowHeader, { theme: baseTheme, label: (_c = preferenceSettings.template) === null || _c === void 0 ? void 0 : _c.name, channels: getEnabledChannels(channelsPreference) })),\n React.createElement(Accordion.Panel, null,\n React.createElement(ChannelsWrapper, null,\n React.createElement(Divider, { className: cx('nc-preferences-item-divider', dividerClassName(baseTheme), css(itemDividerStyles)) }),\n channelsKeys.map((key) => (React.createElement(ChannelPreference, { key: key, type: key, active: channelsPreference[key], disabled: isPreferenceUpdating, handleUpdateChannelPreference: handleUpdateChannelPreference })))))));\n};\n//# sourceMappingURL=UserPreferenceItem.js.map","/* eslint-disable */\nimport React from 'react';\nexport const NoSettings = (props) => {\n return (React.createElement(\"svg\", Object.assign({ width: \"251\", height: \"145\", fill: \"none\" }, props),\n React.createElement(\"path\", { fill: \"#A1A1B3\", d: \"M9.906 129.926v10.031h-.679a.597.597 0 0 1-.273-.056.69.69 0 0 1-.21-.189l-5.803-7.56a9.058 9.058 0 0 1 .028.658v7.147H1.78v-10.031h.7c.06 0 .112.005.154.014.042.005.08.017.112.035a.332.332 0 0 1 .098.07.88.88 0 0 1 .105.112l5.803 7.553-.028-.35a8.211 8.211 0 0 1-.007-.329v-7.105h1.19Zm5.04 2.828c.519 0 .985.087 1.4.259.416.173.77.418 1.065.735.294.318.518.703.672 1.155.158.448.238.95.238 1.505 0 .56-.08 1.064-.238 1.512a3.187 3.187 0 0 1-.672 1.148 2.984 2.984 0 0 1-1.064.735 3.704 3.704 0 0 1-1.4.252c-.523 0-.994-.084-1.414-.252a2.984 2.984 0 0 1-1.064-.735 3.27 3.27 0 0 1-.68-1.148 4.634 4.634 0 0 1-.23-1.512c0-.555.077-1.057.23-1.505.16-.452.386-.837.68-1.155a3.01 3.01 0 0 1 1.064-.735 3.7 3.7 0 0 1 1.414-.259Zm0 6.328c.7 0 1.223-.233 1.569-.7.345-.471.518-1.127.518-1.967 0-.844-.173-1.502-.518-1.974-.346-.471-.868-.707-1.568-.707a2.23 2.23 0 0 0-.931.182c-.262.122-.481.297-.658.525a2.413 2.413 0 0 0-.392.847 4.602 4.602 0 0 0-.126 1.127c0 .84.172 1.496.518 1.967.35.467.88.7 1.589.7Zm7.009.987c-.56 0-.992-.156-1.295-.469-.299-.312-.448-.763-.448-1.351v-4.34h-.854a.289.289 0 0 1-.189-.063c-.051-.046-.077-.116-.077-.21v-.497l1.162-.147.287-2.191a.297.297 0 0 1 .091-.168.283.283 0 0 1 .196-.07h.63v2.443h2.051v.903h-2.051v4.256c0 .299.072.521.217.665a.757.757 0 0 0 .56.217c.13 0 .243-.016.336-.049.098-.037.182-.077.252-.119.07-.042.128-.079.175-.112.051-.037.096-.056.133-.056.065 0 .124.04.175.119l.364.595c-.215.201-.474.36-.777.476a2.687 2.687 0 0 1-.938.168Zm4.094-6.258c.303-.322.639-.578 1.008-.77a2.73 2.73 0 0 1 1.274-.287c.387 0 .728.066 1.022.196a1.9 1.9 0 0 1 .742.546c.2.234.352.516.455.847.102.332.154.698.154 1.099v4.515H29.45v-4.515c0-.536-.124-.952-.371-1.246-.243-.298-.614-.448-1.113-.448-.37 0-.714.089-1.036.266a3.447 3.447 0 0 0-.882.721v5.222h-1.253v-10.311h1.253v4.165Zm7.87-.945v7.091h-1.247v-7.091h1.246Zm.265-2.226a.78.78 0 0 1-.077.343.945.945 0 0 1-.196.28.857.857 0 0 1-.287.189.845.845 0 0 1-.343.07.846.846 0 0 1-.616-.259 1.017 1.017 0 0 1-.189-.28.849.849 0 0 1-.07-.343c0-.121.024-.235.07-.343a.886.886 0 0 1 .19-.287.872.872 0 0 1 .272-.196.863.863 0 0 1 .686 0 .83.83 0 0 1 .287.196c.084.08.15.175.196.287a.787.787 0 0 1 .077.343Zm2.958 3.255a4.26 4.26 0 0 1 .49-.469c.172-.14.354-.259.546-.357a2.85 2.85 0 0 1 1.323-.315c.387 0 .727.066 1.022.196a1.9 1.9 0 0 1 .741.546c.201.234.353.516.455.847.103.332.154.698.154 1.099v4.515h-1.252v-4.515c0-.536-.124-.952-.372-1.246-.242-.298-.613-.448-1.113-.448-.368 0-.714.089-1.036.266a3.447 3.447 0 0 0-.882.721v5.222h-1.253v-7.091h.75c.177 0 .286.087.328.259l.099.77Zm9.101 2.597c.252 0 .474-.035.665-.105.191-.07.352-.168.483-.294.13-.126.229-.275.294-.448.066-.177.098-.371.098-.581 0-.434-.133-.779-.399-1.036-.261-.256-.642-.385-1.14-.385-.505 0-.89.129-1.156.385-.261.257-.392.602-.392 1.036 0 .21.033.404.098.581a1.282 1.282 0 0 0 .784.742c.191.07.413.105.665.105Zm2.247 3.85a.6.6 0 0 0-.147-.42.985.985 0 0 0-.399-.252 2.442 2.442 0 0 0-.574-.126c-.22-.028-.453-.049-.7-.063l-.742-.042a8.614 8.614 0 0 1-.728-.07 1.985 1.985 0 0 0-.644.462.933.933 0 0 0-.126 1.085c.084.14.21.259.378.357.168.103.378.182.63.238.257.061.558.091.903.091.336 0 .637-.03.903-.091.266-.06.49-.147.672-.259.187-.112.33-.245.427-.399a.932.932 0 0 0 .147-.511Zm1.267-7.196v.462c0 .154-.098.252-.294.294l-.805.105a2.2 2.2 0 0 1 .238 1.022 2.17 2.17 0 0 1-.749 1.666 2.429 2.429 0 0 1-.84.462 3.371 3.371 0 0 1-1.064.161c-.331 0-.644-.039-.938-.119-.15.094-.264.194-.343.301a.512.512 0 0 0-.119.315c0 .168.068.297.203.385.14.084.322.145.546.182.224.038.479.061.763.07.29.01.584.026.882.049.303.019.597.054.882.105.29.052.546.136.77.252.224.117.404.278.54.483.14.206.21.472.21.798 0 .304-.078.598-.232.882-.15.285-.366.537-.65.756a3.252 3.252 0 0 1-1.05.532c-.412.136-.876.203-1.394.203-.518 0-.97-.051-1.358-.154a3.16 3.16 0 0 1-.966-.413 1.812 1.812 0 0 1-.58-.602 1.42 1.42 0 0 1-.19-.707c0-.35.11-.646.33-.889.218-.242.52-.436.902-.581a1.336 1.336 0 0 1-.504-.371c-.121-.158-.182-.371-.182-.637a.96.96 0 0 1 .056-.315 1.3 1.3 0 0 1 .168-.329 1.807 1.807 0 0 1 .68-.574 2.189 2.189 0 0 1-.82-.777 2.158 2.158 0 0 1-.294-1.134c0-.345.066-.658.196-.938.136-.284.322-.525.56-.721.238-.2.52-.354.847-.462a3.513 3.513 0 0 1 1.085-.161c.308 0 .595.035.861.105.266.066.509.164.728.294h1.925Zm7.048 6.923c-.56 0-.992-.156-1.295-.469-.299-.312-.448-.763-.448-1.351v-4.34h-.854a.289.289 0 0 1-.19-.063c-.05-.046-.076-.116-.076-.21v-.497l1.162-.147.287-2.191a.297.297 0 0 1 .09-.168.283.283 0 0 1 .197-.07h.63v2.443h2.05v.903h-2.05v4.256c0 .299.072.521.217.665a.757.757 0 0 0 .56.217c.13 0 .242-.016.336-.049.098-.037.182-.077.252-.119.07-.042.128-.079.175-.112.051-.037.095-.056.133-.056.065 0 .123.04.175.119l.364.595a2.35 2.35 0 0 1-.777.476 2.687 2.687 0 0 1-.938.168Zm5.788-7.315c.518 0 .985.087 1.4.259.416.173.77.418 1.064.735.294.318.518.703.672 1.155.159.448.238.95.238 1.505 0 .56-.08 1.064-.238 1.512a3.187 3.187 0 0 1-.672 1.148 2.984 2.984 0 0 1-1.064.735 3.704 3.704 0 0 1-1.4.252c-.523 0-.994-.084-1.414-.252a2.984 2.984 0 0 1-1.064-.735 3.27 3.27 0 0 1-.679-1.148 4.634 4.634 0 0 1-.23-1.512c0-.555.076-1.057.23-1.505.159-.452.385-.837.68-1.155a3.01 3.01 0 0 1 1.063-.735 3.7 3.7 0 0 1 1.414-.259Zm0 6.328c.7 0 1.223-.233 1.568-.7.346-.471.518-1.127.518-1.967 0-.844-.172-1.502-.518-1.974-.345-.471-.868-.707-1.568-.707a2.23 2.23 0 0 0-.93.182c-.262.122-.481.297-.659.525a2.413 2.413 0 0 0-.392.847 4.602 4.602 0 0 0-.126 1.127c0 .84.173 1.496.518 1.967.35.467.88.7 1.59.7Zm12.667-5.047a.276.276 0 0 1-.26.154.48.48 0 0 1-.237-.077 4.452 4.452 0 0 0-.33-.168 2.587 2.587 0 0 0-.454-.175 2.102 2.102 0 0 0-.63-.084c-.21 0-.4.028-.567.084a1.373 1.373 0 0 0-.434.217 1.027 1.027 0 0 0-.273.329.883.883 0 0 0-.091.399.68.68 0 0 0 .154.455c.107.122.247.227.42.315.172.089.368.168.588.238.219.066.443.138.672.217.233.075.46.159.679.252.219.094.415.21.588.35.172.14.31.313.413.518.107.201.16.444.16.728 0 .327-.058.63-.174.91a2.01 2.01 0 0 1-.518.721c-.23.201-.51.36-.84.476a3.443 3.443 0 0 1-1.148.175 3.62 3.62 0 0 1-1.344-.238 3.453 3.453 0 0 1-1.022-.623l.294-.476a.436.436 0 0 1 .133-.14.365.365 0 0 1 .196-.049c.084 0 .172.033.266.098.093.066.205.138.336.217a2.215 2.215 0 0 0 1.204.315c.242 0 .455-.03.637-.091.182-.065.333-.151.455-.259a.974.974 0 0 0 .266-.371c.06-.14.09-.289.09-.448a.719.719 0 0 0-.16-.483c-.103-.13-.24-.24-.413-.329a3.105 3.105 0 0 0-.595-.238l-.68-.217a8.58 8.58 0 0 1-.678-.252 2.48 2.48 0 0 1-.588-.364 1.678 1.678 0 0 1-.42-.532 1.784 1.784 0 0 1-.154-.777c0-.27.056-.529.168-.777.112-.252.275-.471.49-.658.214-.191.478-.343.79-.455.313-.112.67-.168 1.072-.168.466 0 .884.075 1.253.224.373.145.695.346.966.602l-.28.455Zm6.672 1.603c0-.289-.042-.553-.126-.791a1.684 1.684 0 0 0-.357-.623 1.518 1.518 0 0 0-.567-.406 1.886 1.886 0 0 0-.763-.147c-.597 0-1.07.175-1.42.525-.346.346-.56.826-.645 1.442h3.878Zm1.008 3.325c-.154.187-.338.35-.553.49a3.449 3.449 0 0 1-.693.336 4.058 4.058 0 0 1-.756.196 4.38 4.38 0 0 1-.777.07c-.49 0-.942-.081-1.358-.245a3.067 3.067 0 0 1-1.07-.728 3.4 3.4 0 0 1-.7-1.19c-.169-.471-.253-1.012-.253-1.624 0-.494.075-.956.224-1.386.154-.429.374-.8.658-1.113a2.967 2.967 0 0 1 1.043-.742c.41-.182.873-.273 1.386-.273.425 0 .817.073 1.176.217.364.14.677.346.938.616.266.266.474.598.623.994.15.392.224.84.224 1.344 0 .196-.02.327-.063.392-.042.066-.121.098-.238.098h-4.739c.014.448.075.838.182 1.169.112.332.266.609.462.833.196.22.43.385.7.497.27.108.574.161.91.161.313 0 .581-.035.805-.105.229-.074.425-.154.588-.238.164-.084.299-.161.406-.231a.555.555 0 0 1 .287-.112c.103 0 .182.04.238.119l.35.455Zm3.765 1.106c-.56 0-.992-.156-1.295-.469-.299-.312-.448-.763-.448-1.351v-4.34h-.854a.289.289 0 0 1-.189-.063c-.051-.046-.077-.116-.077-.21v-.497l1.162-.147.287-2.191a.297.297 0 0 1 .091-.168.283.283 0 0 1 .196-.07h.63v2.443h2.051v.903h-2.051v4.256c0 .299.072.521.217.665a.757.757 0 0 0 .56.217c.13 0 .243-.016.336-.049.098-.037.182-.077.252-.119.07-.042.128-.079.175-.112.051-.037.096-.056.133-.056.065 0 .124.04.175.119l.364.595c-.215.201-.474.36-.777.476a2.687 2.687 0 0 1-.938.168Zm7.676-6.258a3.78 3.78 0 0 1 1.008-.77 2.73 2.73 0 0 1 1.274-.287c.387 0 .728.066 1.022.196a1.9 1.9 0 0 1 .742.546c.2.234.352.516.455.847.102.332.154.698.154 1.099v4.515h-1.253v-4.515c0-.536-.124-.952-.371-1.246-.243-.298-.614-.448-1.113-.448-.369 0-.714.089-1.036.266a3.447 3.447 0 0 0-.882.721v5.222h-1.253v-10.311h1.253v4.165Zm11.299 1.827c0-.289-.042-.553-.126-.791a1.676 1.676 0 0 0-.357-.623 1.518 1.518 0 0 0-.567-.406 1.885 1.885 0 0 0-.763-.147c-.597 0-1.071.175-1.421.525-.345.346-.56.826-.644 1.442h3.878Zm1.008 3.325a2.42 2.42 0 0 1-.553.49 3.418 3.418 0 0 1-.693.336 4.034 4.034 0 0 1-.756.196c-.261.047-.52.07-.777.07-.49 0-.942-.081-1.358-.245a3.078 3.078 0 0 1-1.071-.728 3.41 3.41 0 0 1-.7-1.19c-.168-.471-.252-1.012-.252-1.624 0-.494.075-.956.224-1.386.154-.429.374-.8.658-1.113a2.975 2.975 0 0 1 1.043-.742 3.388 3.388 0 0 1 1.386-.273c.425 0 .817.073 1.176.217.364.14.677.346.938.616.266.266.474.598.623.994.15.392.224.84.224 1.344 0 .196-.021.327-.063.392-.042.066-.121.098-.238.098h-4.739c.014.448.075.838.182 1.169.112.332.266.609.462.833.196.22.43.385.7.497.271.108.574.161.91.161.313 0 .581-.035.805-.105a3.93 3.93 0 0 0 .588-.238c.164-.084.299-.161.406-.231a.556.556 0 0 1 .287-.112c.103 0 .182.04.238.119l.35.455Zm2.826-4.676c.224-.485.499-.863.826-1.134.326-.275.725-.413 1.197-.413.149 0 .291.017.427.049.14.033.263.084.371.154l-.091.931c-.028.117-.098.175-.21.175-.066 0-.161-.014-.287-.042a1.98 1.98 0 0 0-.427-.042 1.74 1.74 0 0 0-.602.098 1.437 1.437 0 0 0-.469.294 2.068 2.068 0 0 0-.371.476 4.07 4.07 0 0 0-.294.644v4.48h-1.253v-7.091h.714c.135 0 .228.026.28.077.051.052.086.14.105.266l.084 1.078Zm8.375 1.351c0-.289-.042-.553-.126-.791a1.676 1.676 0 0 0-.357-.623 1.518 1.518 0 0 0-.567-.406 1.885 1.885 0 0 0-.763-.147c-.597 0-1.071.175-1.421.525-.345.346-.56.826-.644 1.442h3.878Zm1.008 3.325a2.42 2.42 0 0 1-.553.49 3.418 3.418 0 0 1-.693.336 4.034 4.034 0 0 1-.756.196c-.261.047-.52.07-.777.07-.49 0-.942-.081-1.358-.245a3.078 3.078 0 0 1-1.071-.728 3.41 3.41 0 0 1-.7-1.19c-.168-.471-.252-1.012-.252-1.624 0-.494.075-.956.224-1.386.154-.429.374-.8.658-1.113a2.975 2.975 0 0 1 1.043-.742 3.388 3.388 0 0 1 1.386-.273c.425 0 .817.073 1.176.217.364.14.677.346.938.616.266.266.474.598.623.994.15.392.224.84.224 1.344 0 .196-.021.327-.063.392-.042.066-.121.098-.238.098h-4.739c.014.448.075.838.182 1.169.112.332.266.609.462.833.196.22.43.385.7.497.271.108.574.161.91.161.313 0 .581-.035.805-.105a3.93 3.93 0 0 0 .588-.238c.164-.084.299-.161.406-.231a.556.556 0 0 1 .287-.112c.103 0 .182.04.238.119l.35.455Zm5.113-3.731h3.458v1.057h-3.458v-1.057Zm14.652-2.366-3.955 9.184a.627.627 0 0 1-.161.224c-.061.056-.157.084-.287.084h-.924l1.295-2.814-2.926-6.678h1.078c.107 0 .191.028.252.084.065.052.109.11.133.175l1.897 4.466c.074.196.137.402.189.616.065-.219.135-.427.21-.623l1.841-4.459a.386.386 0 0 1 .14-.182.384.384 0 0 1 .231-.077h.987Zm3.898-.112c.518 0 .985.087 1.4.259.415.173.77.418 1.064.735.294.318.518.703.672 1.155.159.448.238.95.238 1.505a4.5 4.5 0 0 1-.238 1.512 3.187 3.187 0 0 1-.672 1.148 2.986 2.986 0 0 1-1.064.735 3.703 3.703 0 0 1-1.4.252c-.523 0-.994-.084-1.414-.252a2.986 2.986 0 0 1-1.064-.735c-.294-.317-.52-.7-.679-1.148a4.634 4.634 0 0 1-.231-1.512c0-.555.077-1.057.231-1.505a3.28 3.28 0 0 1 .679-1.155 3.012 3.012 0 0 1 1.064-.735 3.7 3.7 0 0 1 1.414-.259Zm0 6.328c.7 0 1.223-.233 1.568-.7.345-.471.518-1.127.518-1.967 0-.844-.173-1.502-.518-1.974-.345-.471-.868-.707-1.568-.707-.355 0-.665.061-.931.182a1.772 1.772 0 0 0-.658.525 2.413 2.413 0 0 0-.392.847 4.602 4.602 0 0 0-.126 1.127c0 .84.173 1.496.518 1.967.35.467.88.7 1.589.7Zm10.785-6.216v7.091h-.742c-.177 0-.289-.086-.336-.259l-.098-.763a3.95 3.95 0 0 1-1.036.826c-.382.206-.821.308-1.316.308a2.63 2.63 0 0 1-1.029-.189 2.063 2.063 0 0 1-.742-.546 2.352 2.352 0 0 1-.455-.847 3.86 3.86 0 0 1-.147-1.099v-4.522h1.246v4.522c0 .537.122.952.364 1.246.248.294.623.441 1.127.441.369 0 .712-.086 1.029-.259a3.3 3.3 0 0 0 .889-.728v-5.222h1.246Zm9.401 3.899c-.574.019-1.064.066-1.47.14a4.18 4.18 0 0 0-.987.28c-.252.117-.436.255-.553.413a.902.902 0 0 0-.168.532c0 .187.03.348.091.483a.938.938 0 0 0 .245.336c.107.084.231.147.371.189.145.038.299.056.462.056.219 0 .42-.021.602-.063.182-.046.352-.112.511-.196.163-.084.317-.184.462-.301.149-.116.294-.249.434-.399v-1.47Zm-4.025-2.898c.392-.378.814-.66 1.267-.847.453-.186.954-.28 1.505-.28.397 0 .749.066 1.057.196.308.131.567.313.777.546.21.234.369.516.476.847.107.332.161.696.161 1.092v4.536h-.553a.564.564 0 0 1-.28-.056c-.065-.042-.117-.121-.154-.238l-.14-.672a7.558 7.558 0 0 1-.546.462 3.364 3.364 0 0 1-.56.336 2.958 2.958 0 0 1-.63.203 3.19 3.19 0 0 1-.735.077 2.62 2.62 0 0 1-.777-.112 1.869 1.869 0 0 1-.637-.35 1.688 1.688 0 0 1-.427-.581 2.103 2.103 0 0 1-.154-.84c0-.28.077-.548.231-.805.154-.261.404-.492.749-.693.345-.2.796-.364 1.351-.49.555-.13 1.237-.205 2.044-.224v-.553c0-.55-.119-.966-.357-1.246-.238-.284-.586-.427-1.043-.427-.308 0-.567.04-.777.119a2.786 2.786 0 0 0-.539.259c-.149.094-.28.18-.392.259a.559.559 0 0 1-.322.112.372.372 0 0 1-.217-.063.634.634 0 0 1-.154-.168l-.224-.399Zm8.324.42c.224-.485.499-.863.826-1.134.327-.275.726-.413 1.197-.413.149 0 .292.017.427.049.14.033.264.084.371.154l-.091.931c-.028.117-.098.175-.21.175-.065 0-.161-.014-.287-.042a1.974 1.974 0 0 0-.427-.042 1.74 1.74 0 0 0-.602.098 1.437 1.437 0 0 0-.469.294 2.096 2.096 0 0 0-.371.476 4.259 4.259 0 0 0-.294.644v4.48h-1.253v-7.091h.714c.135 0 .229.026.28.077.051.052.086.14.105.266l.084 1.078Zm8.376 1.351c0-.289-.042-.553-.126-.791a1.704 1.704 0 0 0-.357-.623 1.518 1.518 0 0 0-.567-.406 1.888 1.888 0 0 0-.763-.147c-.598 0-1.071.175-1.421.525-.346.346-.56.826-.644 1.442h3.878Zm1.008 3.325a2.44 2.44 0 0 1-.553.49 3.47 3.47 0 0 1-.693.336 4.075 4.075 0 0 1-.756.196c-.262.047-.521.07-.777.07-.49 0-.943-.081-1.358-.245a3.06 3.06 0 0 1-1.071-.728 3.394 3.394 0 0 1-.7-1.19c-.168-.471-.252-1.012-.252-1.624 0-.494.074-.956.224-1.386.154-.429.373-.8.658-1.113a2.957 2.957 0 0 1 1.043-.742c.41-.182.872-.273 1.386-.273.424 0 .816.073 1.176.217.364.14.676.346.938.616.266.266.473.598.623.994.149.392.224.84.224 1.344 0 .196-.021.327-.063.392-.042.066-.122.098-.238.098h-4.739c.014.448.074.838.182 1.169.112.332.266.609.462.833.196.22.429.385.7.497.27.108.574.161.91.161.312 0 .581-.035.805-.105a4.019 4.019 0 0 0 .994-.469c.112-.074.207-.112.287-.112.102 0 .182.04.238.119l.35.455Zm7.695-2.471c.252 0 .474-.035.665-.105.191-.07.352-.168.483-.294.131-.126.229-.275.294-.448.065-.177.098-.371.098-.581 0-.434-.133-.779-.399-1.036-.261-.256-.642-.385-1.141-.385-.504 0-.889.129-1.155.385-.261.257-.392.602-.392 1.036 0 .21.033.404.098.581a1.278 1.278 0 0 0 .784.742c.191.07.413.105.665.105Zm2.247 3.85a.6.6 0 0 0-.147-.42.985.985 0 0 0-.399-.252 2.44 2.44 0 0 0-.574-.126 10.002 10.002 0 0 0-.7-.063l-.742-.042a8.602 8.602 0 0 1-.728-.07 1.989 1.989 0 0 0-.644.462.935.935 0 0 0-.126 1.085c.084.14.21.259.378.357.168.103.378.182.63.238.257.061.558.091.903.091.336 0 .637-.03.903-.091.266-.06.49-.147.672-.259a1.26 1.26 0 0 0 .427-.399.932.932 0 0 0 .147-.511Zm1.267-7.196v.462c0 .154-.098.252-.294.294l-.805.105c.159.308.238.649.238 1.022a2.173 2.173 0 0 1-.749 1.666 2.422 2.422 0 0 1-.84.462 3.37 3.37 0 0 1-1.064.161c-.331 0-.644-.039-.938-.119a1.245 1.245 0 0 0-.343.301.515.515 0 0 0-.119.315c0 .168.068.297.203.385.14.084.322.145.546.182.224.038.478.061.763.07.289.01.583.026.882.049.303.019.597.054.882.105.289.052.546.136.77.252.224.117.404.278.539.483.14.206.21.472.21.798 0 .304-.077.598-.231.882a2.296 2.296 0 0 1-.651.756 3.258 3.258 0 0 1-1.05.532 4.422 4.422 0 0 1-1.393.203c-.518 0-.971-.051-1.358-.154a3.17 3.17 0 0 1-.966-.413 1.813 1.813 0 0 1-.581-.602 1.42 1.42 0 0 1-.189-.707c0-.35.11-.646.329-.889.219-.242.52-.436.903-.581a1.336 1.336 0 0 1-.504-.371c-.121-.158-.182-.371-.182-.637a.97.97 0 0 1 .056-.315c.037-.112.093-.221.168-.329a1.795 1.795 0 0 1 .679-.574 2.189 2.189 0 0 1-.819-.777 2.158 2.158 0 0 1-.294-1.134c0-.345.065-.658.196-.938.135-.284.322-.525.56-.721.238-.2.52-.354.847-.462a3.512 3.512 0 0 1 1.085-.161c.308 0 .595.035.861.105.266.066.509.164.728.294h1.925Zm4.168-.392c.518 0 .985.087 1.4.259.415.173.77.418 1.064.735.294.318.518.703.672 1.155.159.448.238.95.238 1.505a4.5 4.5 0 0 1-.238 1.512 3.187 3.187 0 0 1-.672 1.148 2.986 2.986 0 0 1-1.064.735 3.703 3.703 0 0 1-1.4.252c-.523 0-.994-.084-1.414-.252a2.986 2.986 0 0 1-1.064-.735c-.294-.317-.52-.7-.679-1.148a4.634 4.634 0 0 1-.231-1.512c0-.555.077-1.057.231-1.505a3.28 3.28 0 0 1 .679-1.155 3.012 3.012 0 0 1 1.064-.735 3.7 3.7 0 0 1 1.414-.259Zm0 6.328c.7 0 1.223-.233 1.568-.7.345-.471.518-1.127.518-1.967 0-.844-.173-1.502-.518-1.974-.345-.471-.868-.707-1.568-.707-.355 0-.665.061-.931.182a1.772 1.772 0 0 0-.658.525 2.413 2.413 0 0 0-.392.847 4.602 4.602 0 0 0-.126 1.127c0 .84.173 1.496.518 1.967.35.467.88.7 1.589.7Zm7.943-6.328c.518 0 .985.087 1.4.259.416.173.77.418 1.064.735.294.318.518.703.672 1.155.159.448.238.95.238 1.505a4.5 4.5 0 0 1-.238 1.512 3.187 3.187 0 0 1-.672 1.148 2.977 2.977 0 0 1-1.064.735 3.703 3.703 0 0 1-1.4.252 3.78 3.78 0 0 1-1.414-.252 2.986 2.986 0 0 1-1.064-.735c-.294-.317-.52-.7-.679-1.148a4.634 4.634 0 0 1-.231-1.512c0-.555.077-1.057.231-1.505a3.28 3.28 0 0 1 .679-1.155 3.012 3.012 0 0 1 1.064-.735c.42-.172.892-.259 1.414-.259Zm0 6.328c.7 0 1.223-.233 1.568-.7.346-.471.518-1.127.518-1.967 0-.844-.172-1.502-.518-1.974-.345-.471-.868-.707-1.568-.707-.354 0-.665.061-.931.182a1.78 1.78 0 0 0-.658.525 2.43 2.43 0 0 0-.392.847 4.602 4.602 0 0 0-.126 1.127c0 .84.173 1.496.518 1.967.35.467.88.7 1.589.7Zm9.575-4.529c-.234-.312-.486-.529-.756-.651a2.132 2.132 0 0 0-.91-.189c-.658 0-1.165.236-1.519.707-.355.472-.532 1.144-.532 2.016 0 .462.039.859.119 1.19.079.327.196.598.35.812.154.21.343.364.567.462.224.098.478.147.763.147.41 0 .767-.093 1.071-.28.308-.186.59-.45.847-.791v-3.423Zm1.246-4.907v10.311h-.742c-.178 0-.29-.086-.336-.259l-.112-.861a3.876 3.876 0 0 1-1.036.882c-.388.224-.836.336-1.344.336-.406 0-.775-.077-1.106-.231a2.305 2.305 0 0 1-.847-.693c-.234-.303-.413-.681-.539-1.134a5.835 5.835 0 0 1-.189-1.561c0-.522.07-1.008.21-1.456.14-.452.34-.844.602-1.176.261-.331.581-.59.959-.777a2.842 2.842 0 0 1 1.288-.287c.434 0 .805.075 1.113.224.312.145.59.348.833.609v-3.927h1.246Zm7.727 10.423c-.56 0-.992-.156-1.295-.469-.299-.312-.448-.763-.448-1.351v-4.34h-.854a.287.287 0 0 1-.189-.063c-.052-.046-.077-.116-.077-.21v-.497l1.162-.147.287-2.191a.295.295 0 0 1 .091-.168.282.282 0 0 1 .196-.07h.63v2.443h2.051v.903H217.8v4.256c0 .299.072.521.217.665a.755.755 0 0 0 .56.217 1.018 1.018 0 0 0 .588-.168c.07-.042.128-.079.175-.112.051-.037.095-.056.133-.056.065 0 .123.04.175.119l.364.595c-.215.201-.474.36-.777.476a2.69 2.69 0 0 1-.938.168Zm5.788-7.315c.518 0 .985.087 1.4.259.416.173.77.418 1.064.735.294.318.518.703.672 1.155.159.448.238.95.238 1.505a4.5 4.5 0 0 1-.238 1.512 3.187 3.187 0 0 1-.672 1.148 2.977 2.977 0 0 1-1.064.735 3.703 3.703 0 0 1-1.4.252 3.78 3.78 0 0 1-1.414-.252 2.986 2.986 0 0 1-1.064-.735c-.294-.317-.52-.7-.679-1.148a4.634 4.634 0 0 1-.231-1.512c0-.555.077-1.057.231-1.505a3.28 3.28 0 0 1 .679-1.155 3.012 3.012 0 0 1 1.064-.735c.42-.172.892-.259 1.414-.259Zm0 6.328c.7 0 1.223-.233 1.568-.7.346-.471.518-1.127.518-1.967 0-.844-.172-1.502-.518-1.974-.345-.471-.868-.707-1.568-.707-.354 0-.665.061-.931.182a1.78 1.78 0 0 0-.658.525 2.43 2.43 0 0 0-.392.847 4.602 4.602 0 0 0-.126 1.127c0 .84.173 1.496.518 1.967.35.467.88.7 1.589.7Zm11.008-2.59c.252 0 .473-.035.665-.105.191-.07.352-.168.483-.294.13-.126.228-.275.294-.448.065-.177.098-.371.098-.581 0-.434-.133-.779-.399-1.036-.262-.256-.642-.385-1.141-.385-.504 0-.889.129-1.155.385-.262.257-.392.602-.392 1.036 0 .21.032.404.098.581a1.278 1.278 0 0 0 .784.742c.191.07.413.105.665.105Zm2.247 3.85a.6.6 0 0 0-.147-.42.985.985 0 0 0-.399-.252 2.452 2.452 0 0 0-.574-.126c-.22-.028-.453-.049-.7-.063l-.742-.042a8.602 8.602 0 0 1-.728-.07 1.978 1.978 0 0 0-.644.462.93.93 0 0 0-.245.644c0 .159.039.306.119.441.084.14.21.259.378.357.168.103.378.182.63.238.256.061.557.091.903.091.336 0 .637-.03.903-.091.266-.06.49-.147.672-.259.186-.112.329-.245.427-.399a.932.932 0 0 0 .147-.511Zm1.267-7.196v.462c0 .154-.098.252-.294.294l-.805.105c.158.308.238.649.238 1.022a2.173 2.173 0 0 1-.749 1.666 2.44 2.44 0 0 1-.84.462 3.375 3.375 0 0 1-1.064.161c-.332 0-.644-.039-.938-.119a1.23 1.23 0 0 0-.343.301.509.509 0 0 0-.119.315.43.43 0 0 0 .203.385c.14.084.322.145.546.182.224.038.478.061.763.07.289.01.583.026.882.049.303.019.597.054.882.105.289.052.546.136.77.252.224.117.403.278.539.483.14.206.21.472.21.798 0 .304-.077.598-.231.882a2.32 2.32 0 0 1-.651.756 3.258 3.258 0 0 1-1.05.532 4.422 4.422 0 0 1-1.393.203c-.518 0-.971-.051-1.358-.154a3.148 3.148 0 0 1-.966-.413 1.803 1.803 0 0 1-.581-.602 1.42 1.42 0 0 1-.189-.707c0-.35.109-.646.329-.889.219-.242.52-.436.903-.581a1.336 1.336 0 0 1-.504-.371c-.122-.158-.182-.371-.182-.637 0-.102.018-.207.056-.315.037-.112.093-.221.168-.329a1.795 1.795 0 0 1 .679-.574 2.189 2.189 0 0 1-.819-.777 2.158 2.158 0 0 1-.294-1.134c0-.345.065-.658.196-.938.135-.284.322-.525.56-.721.238-.2.52-.354.847-.462a3.512 3.512 0 0 1 1.085-.161c.308 0 .595.035.861.105.266.066.508.164.728.294h1.925Zm4.168-.392c.518 0 .984.087 1.4.259.415.173.77.418 1.064.735.294.318.518.703.672 1.155.158.448.238.95.238 1.505 0 .56-.08 1.064-.238 1.512a3.187 3.187 0 0 1-.672 1.148 2.986 2.986 0 0 1-1.064.735 3.707 3.707 0 0 1-1.4.252c-.523 0-.994-.084-1.414-.252a2.977 2.977 0 0 1-1.064-.735 3.26 3.26 0 0 1-.679-1.148 4.634 4.634 0 0 1-.231-1.512c0-.555.077-1.057.231-1.505.158-.452.385-.837.679-1.155a3.003 3.003 0 0 1 1.064-.735 3.7 3.7 0 0 1 1.414-.259Zm0 6.328c.7 0 1.222-.233 1.568-.7.345-.471.518-1.127.518-1.967 0-.844-.173-1.502-.518-1.974-.346-.471-.868-.707-1.568-.707-.355 0-.665.061-.931.182a1.764 1.764 0 0 0-.658.525 2.396 2.396 0 0 0-.392.847 4.602 4.602 0 0 0-.126 1.127c0 .84.172 1.496.518 1.967.35.467.879.7 1.589.7Zm6.452-9.156v4.004c0 .21-.004.416-.014.616-.009.201-.021.404-.035.609-.014.201-.032.409-.056.623-.018.21-.042.437-.07.679h-.84l-.077-.679a32.954 32.954 0 0 1-.084-1.232c-.009-.2-.014-.406-.014-.616v-4.004h1.19Zm-1.491 9.261c0-.121.021-.235.063-.343a.922.922 0 0 1 .462-.469.882.882 0 0 1 .966 1.435.789.789 0 0 1-.28.182.793.793 0 0 1-.336.07.865.865 0 0 1-.35-.07.827.827 0 0 1-.273-.182.927.927 0 0 1-.189-.273.95.95 0 0 1-.063-.35Z\" }),\n React.createElement(\"circle\", { cx: \"78.319\", cy: \"28.787\", r: \"6.319\", stroke: \"#EDF0F2\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: \"3.5\" }),\n React.createElement(\"circle\", { cx: \"172.511\", cy: \"34.064\", r: \"7.021\", stroke: \"#EDF0F2\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: \"3.5\" }),\n React.createElement(\"circle\", { cx: \"71.425\", cy: \"56.17\", r: \"4.213\", fill: \"#EDF0F2\" }),\n React.createElement(\"ellipse\", { cx: \"124.957\", cy: \"102.511\", fill: \"#EDF0F2\", rx: \"25.277\", ry: \"2.809\" }),\n React.createElement(\"path\", { fill: \"#EDF0F2\", d: \"M127.5 65a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15Z\" }),\n React.createElement(\"path\", { fill: \"#EDF0F2\", d: \"M146 65a4.124 4.124 0 0 0 .825 4.55l.15.15a4.988 4.988 0 0 1 1.466 3.537 4.993 4.993 0 0 1-1.466 3.538 4.996 4.996 0 0 1-5.452 1.085 4.996 4.996 0 0 1-1.623-1.085l-.15-.15a4.126 4.126 0 0 0-4.55-.825 4.126 4.126 0 0 0-2.5 3.775V80a5.002 5.002 0 0 1-5 5 5.002 5.002 0 0 1-5-5v-.225A4.12 4.12 0 0 0 120 76a4.123 4.123 0 0 0-4.55.825l-.15.15a4.996 4.996 0 0 1-5.452 1.085 4.996 4.996 0 0 1-2.708-2.708 4.993 4.993 0 0 1 0-3.83 4.988 4.988 0 0 1 1.085-1.622l.15-.15a4.127 4.127 0 0 0 .825-4.55 4.124 4.124 0 0 0-3.775-2.5H105a5.002 5.002 0 0 1-3.536-8.536A5.002 5.002 0 0 1 105 52.7h.225A4.125 4.125 0 0 0 109 50a4.124 4.124 0 0 0-.825-4.55l-.15-.15a4.988 4.988 0 0 1-1.466-3.537 4.993 4.993 0 0 1 1.466-3.538 4.996 4.996 0 0 1 5.452-1.085c.607.251 1.159.62 1.623 1.085l.15.15a4.126 4.126 0 0 0 4.55.825h.2a4.126 4.126 0 0 0 2.5-3.775V35a5.002 5.002 0 0 1 5-5 5.002 5.002 0 0 1 5 5v.225A4.125 4.125 0 0 0 135 39a4.123 4.123 0 0 0 4.55-.825l.15-.15a4.996 4.996 0 0 1 5.452-1.085 4.996 4.996 0 0 1 2.708 2.708 4.993 4.993 0 0 1 0 3.83 4.988 4.988 0 0 1-1.085 1.622l-.15.15a4.127 4.127 0 0 0-.825 4.55v.2a4.124 4.124 0 0 0 3.775 2.5H150a5.002 5.002 0 0 1 3.536 8.535A5.002 5.002 0 0 1 150 62.5h-.225A4.126 4.126 0 0 0 146 65Z\" }),\n React.createElement(\"path\", { stroke: \"#A1A1B3\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: \"3.5\", d: \"M125 44.47c-5.121 0-9.273 4.108-9.273 9.176 0 5.068 4.152 9.176 9.273 9.176 5.121 0 9.273-4.108 9.273-9.176a9.055 9.055 0 0 0-.682-3.46m-32.422 27.287a6.187 6.187 0 0 0 2.006 1.328 6.241 6.241 0 0 0 4.735 0 6.187 6.187 0 0 0 2.006-1.328l.186-.183a5.118 5.118 0 0 1 2.656-1.358 5.148 5.148 0 0 1 2.969.348 5.09 5.09 0 0 1 2.388 1.801c.595.824.927 1.805.95 2.818v.275c0 1.623.652 3.179 1.811 4.326a6.215 6.215 0 0 0 4.371 1.792c1.64 0 3.212-.645 4.371-1.792a6.083 6.083 0 0 0 1.811-4.326v-.52a5.011 5.011 0 0 1 .848-2.766 5.087 5.087 0 0 1 2.243-1.852 5.148 5.148 0 0 1 2.969-.35 5.114 5.114 0 0 1 2.656 1.359l.186.183a6.187 6.187 0 0 0 2.006 1.328 6.241 6.241 0 0 0 4.735 0 6.187 6.187 0 0 0 2.006-1.328 6.108 6.108 0 0 0 1.342-1.985 6.064 6.064 0 0 0-1.342-6.67l-.185-.184a5 5 0 0 1-1.02-5.567 5.061 5.061 0 0 1 1.871-2.22 5.14 5.14 0 0 1 2.796-.839h.278c1.64 0 3.212-.644 4.371-1.791A6.083 6.083 0 0 0 159 53.645a6.083 6.083 0 0 0-1.811-4.326 6.213 6.213 0 0 0-4.371-1.792h-.525a5.138 5.138 0 0 1-2.796-.839 5.064 5.064 0 0 1-1.872-2.22v-.244a5 5 0 0 1-.352-2.938 5.034 5.034 0 0 1 1.372-2.629l.186-.183a6.108 6.108 0 0 0 1.342-1.986 6.063 6.063 0 0 0-1.342-6.67 6.189 6.189 0 0 0-2.006-1.328 6.243 6.243 0 0 0-4.735 0c-.75.308-1.432.759-2.006 1.328l-.186.183a5.119 5.119 0 0 1-2.656 1.358 5.149 5.149 0 0 1-2.969-.349 5.088 5.088 0 0 1-2.243-1.852 5.003 5.003 0 0 1-.848-2.766v-.276a6.083 6.083 0 0 0-1.811-4.325A6.213 6.213 0 0 0 125 20c-1.64 0-3.212.645-4.371 1.792a6.083 6.083 0 0 0-1.811 4.325v.52a5.003 5.003 0 0 1-.848 2.767 5.088 5.088 0 0 1-2.243 1.852h-.247a5.149 5.149 0 0 1-2.969.349 5.115 5.115 0 0 1-2.656-1.358l-.186-.184a6.189 6.189 0 0 0-2.006-1.328 6.243 6.243 0 0 0-4.735 0c-.75.308-1.432.76-2.006 1.328a6.11 6.11 0 0 0-1.342 1.986 6.062 6.062 0 0 0 1.342 6.67l.185.184a5.001 5.001 0 0 1 1.02 5.567 5.053 5.053 0 0 1-1.819 2.363 5.138 5.138 0 0 1-2.848.94h-.278c-1.64 0-3.212.645-4.371 1.792A6.085 6.085 0 0 0 91 53.89c0 1.622.651 3.178 1.81 4.325a6.215 6.215 0 0 0 4.372 1.792h.525a5.14 5.14 0 0 1 2.796.839 5.063 5.063 0 0 1 1.872 2.22 5 5 0 0 1 .352 2.938\" })));\n};\n//# sourceMappingURL=NoSettings.js.map","import React, { useLayoutEffect } from 'react';\nimport { Accordion, ScrollArea } from '@mantine/core';\nimport { css, cx } from '@emotion/css';\nimport { useNovuTheme, useFetchUserPreferences, useNovuContext, useNotificationCenter } from '../../../../hooks';\nimport { accordionStyles } from './styles';\nimport { useStyles } from '../../../../store/styles';\nimport { UserPreferenceItem } from './UserPreferenceItem';\nimport { Loader } from '../Loader';\nimport { NoSettings } from '../../../../images/NoSettings';\nconst rootClassName = css `\n padding: 15px;\n`;\nexport function SubscriberPreference() {\n var _a;\n const { setFetchingStrategy } = useNovuContext();\n const { theme, common } = useNovuTheme();\n const { data, isLoading: arePreferencesLoading } = useFetchUserPreferences();\n const { preferenceFilter } = useNotificationCenter();\n const [rootStyles, accordionItemStyles, accordionContentStyles, accordionControlStyles, accordionChevronStyles] = useStyles(['preferences.root', 'accordion.item', 'accordion.content', 'accordion.control', 'accordion.chevron']);\n const baseTheme = theme === null || theme === void 0 ? void 0 : theme.userPreferences;\n let preferences = (_a = data === null || data === void 0 ? void 0 : data.filter((item) => !item.template.critical)) === null || _a === void 0 ? void 0 : _a.filter((pref) => Object.keys(pref.preference.channels).length > 0);\n if (preferenceFilter && preferences) {\n preferences = preferences.filter((pref) => preferenceFilter(pref));\n }\n const styles = accordionStyles(baseTheme, common.fontFamily);\n const accordionClassNames = {\n item: css(accordionItemStyles),\n content: css(accordionContentStyles),\n control: css(accordionControlStyles),\n chevron: css(accordionChevronStyles),\n };\n const showNoSettings = !arePreferencesLoading && (preferences === null || preferences === void 0 ? void 0 : preferences.length) === 0;\n useLayoutEffect(() => {\n setFetchingStrategy({ fetchUserPreferences: true });\n }, [setFetchingStrategy]);\n return arePreferencesLoading ? (React.createElement(Loader, null)) : (React.createElement(React.Fragment, null, showNoSettings ? (React.createElement(\"div\", { style: {\n textAlign: 'center',\n minHeight: 400,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n } },\n React.createElement(NoSettings, { style: { maxWidth: 300 } }))) : (React.createElement(ScrollArea, { style: { height: 400 } },\n React.createElement(\"div\", { className: cx('nc-preferences-root', rootClassName, css(rootStyles)) },\n React.createElement(Accordion, { chevronPosition: \"right\", styles: styles, classNames: accordionClassNames }, preferences === null || preferences === void 0 ? void 0 : preferences.map((preference) => (React.createElement(UserPreferenceItem, { key: preference.template._id, preferenceSettings: preference })))))))));\n}\n//# sourceMappingURL=SubscriberPreference.js.map","import React, { Component } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\nvar ThresholdUnits = {\r\n Pixel: 'Pixel',\r\n Percent: 'Percent',\r\n};\r\nvar defaultThreshold = {\r\n unit: ThresholdUnits.Percent,\r\n value: 0.8,\r\n};\r\nfunction parseThreshold(scrollThreshold) {\r\n if (typeof scrollThreshold === 'number') {\r\n return {\r\n unit: ThresholdUnits.Percent,\r\n value: scrollThreshold * 100,\r\n };\r\n }\r\n if (typeof scrollThreshold === 'string') {\r\n if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)px$/)) {\r\n return {\r\n unit: ThresholdUnits.Pixel,\r\n value: parseFloat(scrollThreshold),\r\n };\r\n }\r\n if (scrollThreshold.match(/^(\\d*(\\.\\d+)?)%$/)) {\r\n return {\r\n unit: ThresholdUnits.Percent,\r\n value: parseFloat(scrollThreshold),\r\n };\r\n }\r\n console.warn('scrollThreshold format is invalid. Valid formats: \"120px\", \"50%\"...');\r\n return defaultThreshold;\r\n }\r\n console.warn('scrollThreshold should be string or number');\r\n return defaultThreshold;\r\n}\n\nvar InfiniteScroll = /** @class */ (function (_super) {\r\n __extends(InfiniteScroll, _super);\r\n function InfiniteScroll(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.lastScrollTop = 0;\r\n _this.actionTriggered = false;\r\n // variables to keep track of pull down behaviour\r\n _this.startY = 0;\r\n _this.currentY = 0;\r\n _this.dragging = false;\r\n // will be populated in componentDidMount\r\n // based on the height of the pull down element\r\n _this.maxPullDownDistance = 0;\r\n _this.getScrollableTarget = function () {\r\n if (_this.props.scrollableTarget instanceof HTMLElement)\r\n return _this.props.scrollableTarget;\r\n if (typeof _this.props.scrollableTarget === 'string') {\r\n return document.getElementById(_this.props.scrollableTarget);\r\n }\r\n if (_this.props.scrollableTarget === null) {\r\n console.warn(\"You are trying to pass scrollableTarget but it is null. This might\\n happen because the element may not have been added to DOM yet.\\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\\n \");\r\n }\r\n return null;\r\n };\r\n _this.onStart = function (evt) {\r\n if (_this.lastScrollTop)\r\n return;\r\n _this.dragging = true;\r\n if (evt instanceof MouseEvent) {\r\n _this.startY = evt.pageY;\r\n }\r\n else if (evt instanceof TouchEvent) {\r\n _this.startY = evt.touches[0].pageY;\r\n }\r\n _this.currentY = _this.startY;\r\n if (_this._infScroll) {\r\n _this._infScroll.style.willChange = 'transform';\r\n _this._infScroll.style.transition = \"transform 0.2s cubic-bezier(0,0,0.31,1)\";\r\n }\r\n };\r\n _this.onMove = function (evt) {\r\n if (!_this.dragging)\r\n return;\r\n if (evt instanceof MouseEvent) {\r\n _this.currentY = evt.pageY;\r\n }\r\n else if (evt instanceof TouchEvent) {\r\n _this.currentY = evt.touches[0].pageY;\r\n }\r\n // user is scrolling down to up\r\n if (_this.currentY < _this.startY)\r\n return;\r\n if (_this.currentY - _this.startY >=\r\n Number(_this.props.pullDownToRefreshThreshold)) {\r\n _this.setState({\r\n pullToRefreshThresholdBreached: true,\r\n });\r\n }\r\n // so you can drag upto 1.5 times of the maxPullDownDistance\r\n if (_this.currentY - _this.startY > _this.maxPullDownDistance * 1.5)\r\n return;\r\n if (_this._infScroll) {\r\n _this._infScroll.style.overflow = 'visible';\r\n _this._infScroll.style.transform = \"translate3d(0px, \" + (_this.currentY -\r\n _this.startY) + \"px, 0px)\";\r\n }\r\n };\r\n _this.onEnd = function () {\r\n _this.startY = 0;\r\n _this.currentY = 0;\r\n _this.dragging = false;\r\n if (_this.state.pullToRefreshThresholdBreached) {\r\n _this.props.refreshFunction && _this.props.refreshFunction();\r\n _this.setState({\r\n pullToRefreshThresholdBreached: false,\r\n });\r\n }\r\n requestAnimationFrame(function () {\r\n // this._infScroll\r\n if (_this._infScroll) {\r\n _this._infScroll.style.overflow = 'auto';\r\n _this._infScroll.style.transform = 'none';\r\n _this._infScroll.style.willChange = 'unset';\r\n }\r\n });\r\n };\r\n _this.onScrollListener = function (event) {\r\n if (typeof _this.props.onScroll === 'function') {\r\n // Execute this callback in next tick so that it does not affect the\r\n // functionality of the library.\r\n setTimeout(function () { return _this.props.onScroll && _this.props.onScroll(event); }, 0);\r\n }\r\n var target = _this.props.height || _this._scrollableNode\r\n ? event.target\r\n : document.documentElement.scrollTop\r\n ? document.documentElement\r\n : document.body;\r\n // return immediately if the action has already been triggered,\r\n // prevents multiple triggers.\r\n if (_this.actionTriggered)\r\n return;\r\n var atBottom = _this.props.inverse\r\n ? _this.isElementAtTop(target, _this.props.scrollThreshold)\r\n : _this.isElementAtBottom(target, _this.props.scrollThreshold);\r\n // call the `next` function in the props to trigger the next data fetch\r\n if (atBottom && _this.props.hasMore) {\r\n _this.actionTriggered = true;\r\n _this.setState({ showLoader: true });\r\n _this.props.next && _this.props.next();\r\n }\r\n _this.lastScrollTop = target.scrollTop;\r\n };\r\n _this.state = {\r\n showLoader: false,\r\n pullToRefreshThresholdBreached: false,\r\n prevDataLength: props.dataLength,\r\n };\r\n _this.throttledOnScrollListener = throttle(150, _this.onScrollListener).bind(_this);\r\n _this.onStart = _this.onStart.bind(_this);\r\n _this.onMove = _this.onMove.bind(_this);\r\n _this.onEnd = _this.onEnd.bind(_this);\r\n return _this;\r\n }\r\n InfiniteScroll.prototype.componentDidMount = function () {\r\n if (typeof this.props.dataLength === 'undefined') {\r\n throw new Error(\"mandatory prop \\\"dataLength\\\" is missing. The prop is needed\" +\r\n \" when loading more content. Check README.md for usage\");\r\n }\r\n this._scrollableNode = this.getScrollableTarget();\r\n this.el = this.props.height\r\n ? this._infScroll\r\n : this._scrollableNode || window;\r\n if (this.el) {\r\n this.el.addEventListener('scroll', this\r\n .throttledOnScrollListener);\r\n }\r\n if (typeof this.props.initialScrollY === 'number' &&\r\n this.el &&\r\n this.el instanceof HTMLElement &&\r\n this.el.scrollHeight > this.props.initialScrollY) {\r\n this.el.scrollTo(0, this.props.initialScrollY);\r\n }\r\n if (this.props.pullDownToRefresh && this.el) {\r\n this.el.addEventListener('touchstart', this.onStart);\r\n this.el.addEventListener('touchmove', this.onMove);\r\n this.el.addEventListener('touchend', this.onEnd);\r\n this.el.addEventListener('mousedown', this.onStart);\r\n this.el.addEventListener('mousemove', this.onMove);\r\n this.el.addEventListener('mouseup', this.onEnd);\r\n // get BCR of pullDown element to position it above\r\n this.maxPullDownDistance =\r\n (this._pullDown &&\r\n this._pullDown.firstChild &&\r\n this._pullDown.firstChild.getBoundingClientRect()\r\n .height) ||\r\n 0;\r\n this.forceUpdate();\r\n if (typeof this.props.refreshFunction !== 'function') {\r\n throw new Error(\"Mandatory prop \\\"refreshFunction\\\" missing.\\n Pull Down To Refresh functionality will not work\\n as expected. Check README.md for usage'\");\r\n }\r\n }\r\n };\r\n InfiniteScroll.prototype.componentWillUnmount = function () {\r\n if (this.el) {\r\n this.el.removeEventListener('scroll', this\r\n .throttledOnScrollListener);\r\n if (this.props.pullDownToRefresh) {\r\n this.el.removeEventListener('touchstart', this.onStart);\r\n this.el.removeEventListener('touchmove', this.onMove);\r\n this.el.removeEventListener('touchend', this.onEnd);\r\n this.el.removeEventListener('mousedown', this.onStart);\r\n this.el.removeEventListener('mousemove', this.onMove);\r\n this.el.removeEventListener('mouseup', this.onEnd);\r\n }\r\n }\r\n };\r\n InfiniteScroll.prototype.componentDidUpdate = function (prevProps) {\r\n // do nothing when dataLength is unchanged\r\n if (this.props.dataLength === prevProps.dataLength)\r\n return;\r\n this.actionTriggered = false;\r\n // update state when new data was sent in\r\n this.setState({\r\n showLoader: false,\r\n });\r\n };\r\n InfiniteScroll.getDerivedStateFromProps = function (nextProps, prevState) {\r\n var dataLengthChanged = nextProps.dataLength !== prevState.prevDataLength;\r\n // reset when data changes\r\n if (dataLengthChanged) {\r\n return __assign(__assign({}, prevState), { prevDataLength: nextProps.dataLength });\r\n }\r\n return null;\r\n };\r\n InfiniteScroll.prototype.isElementAtTop = function (target, scrollThreshold) {\r\n if (scrollThreshold === void 0) { scrollThreshold = 0.8; }\r\n var clientHeight = target === document.body || target === document.documentElement\r\n ? window.screen.availHeight\r\n : target.clientHeight;\r\n var threshold = parseThreshold(scrollThreshold);\r\n if (threshold.unit === ThresholdUnits.Pixel) {\r\n return (target.scrollTop <=\r\n threshold.value + clientHeight - target.scrollHeight + 1);\r\n }\r\n return (target.scrollTop <=\r\n threshold.value / 100 + clientHeight - target.scrollHeight + 1);\r\n };\r\n InfiniteScroll.prototype.isElementAtBottom = function (target, scrollThreshold) {\r\n if (scrollThreshold === void 0) { scrollThreshold = 0.8; }\r\n var clientHeight = target === document.body || target === document.documentElement\r\n ? window.screen.availHeight\r\n : target.clientHeight;\r\n var threshold = parseThreshold(scrollThreshold);\r\n if (threshold.unit === ThresholdUnits.Pixel) {\r\n return (target.scrollTop + clientHeight >= target.scrollHeight - threshold.value);\r\n }\r\n return (target.scrollTop + clientHeight >=\r\n (threshold.value / 100) * target.scrollHeight);\r\n };\r\n InfiniteScroll.prototype.render = function () {\r\n var _this = this;\r\n var style = __assign({ height: this.props.height || 'auto', overflow: 'auto', WebkitOverflowScrolling: 'touch' }, this.props.style);\r\n var hasChildren = this.props.hasChildren ||\r\n !!(this.props.children &&\r\n this.props.children instanceof Array &&\r\n this.props.children.length);\r\n // because heighted infiniteScroll visualy breaks\r\n // on drag down as overflow becomes visible\r\n var outerDivStyle = this.props.pullDownToRefresh && this.props.height\r\n ? { overflow: 'auto' }\r\n : {};\r\n return (React.createElement(\"div\", { style: outerDivStyle, className: \"infinite-scroll-component__outerdiv\" },\r\n React.createElement(\"div\", { className: \"infinite-scroll-component \" + (this.props.className || ''), ref: function (infScroll) { return (_this._infScroll = infScroll); }, style: style },\r\n this.props.pullDownToRefresh && (React.createElement(\"div\", { style: { position: 'relative' }, ref: function (pullDown) { return (_this._pullDown = pullDown); } },\r\n React.createElement(\"div\", { style: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: -1 * this.maxPullDownDistance,\r\n } }, this.state.pullToRefreshThresholdBreached\r\n ? this.props.releaseToRefreshContent\r\n : this.props.pullDownToRefreshContent))),\r\n this.props.children,\r\n !this.state.showLoader &&\r\n !hasChildren &&\r\n this.props.hasMore &&\r\n this.props.loader,\r\n this.state.showLoader && this.props.hasMore && this.props.loader,\r\n !this.props.hasMore && this.props.endMessage)));\r\n };\r\n return InfiniteScroll;\r\n}(Component));\n\nexport default InfiniteScroll;\n//# sourceMappingURL=index.es.js.map\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","export const shadows = {\n light: '0px 5px 15px rgba(38, 68, 128, 0.05)',\n medium: '0px 5px 15px rgba(122, 133, 153, 0.25)',\n dark: '0px 5px 20px rgba(0, 0, 0, 0.2)',\n color: '0px 5px 20px -5px rgba(233, 52, 94, 0.5)',\n};\n//# sourceMappingURL=shadows.js.map","import { darkButtonStyle, lightButtonStyle } from '@novu/shared';\nimport { colors } from './colors';\nimport { shadows } from './shadows';\nconst defaultLightTheme = {\n layout: {\n background: colors.white,\n boxShadow: shadows.medium,\n wrapper: {\n secondaryFontColor: colors.B80,\n },\n },\n header: {\n fontColor: colors.B40,\n badgeColor: colors.vertical,\n badgeTextColor: colors.white,\n markAllAsReadButtonColor: colors.B60,\n },\n popover: { arrowColor: colors.white },\n actionsMenu: {\n dropdownColor: colors.white,\n hoverColor: colors.B98,\n fontColor: colors.B40,\n dotsButtonColor: colors.B70,\n },\n notificationItem: {\n read: { background: colors.B98, fontColor: colors.B60, timeMarkFontColor: colors.B80 },\n unread: {\n background: colors.white,\n fontColor: colors.B40,\n boxShadow: shadows.medium,\n notificationItemBeforeBrandColor: colors.vertical,\n timeMarkFontColor: colors.B60,\n },\n buttons: lightButtonStyle,\n },\n userPreferences: {\n settingsButtonColor: colors.B70,\n accordion: {\n background: colors.white,\n fontColor: colors.B40,\n secondaryFontColor: colors.B60,\n boxShadow: shadows.medium,\n arrowColor: colors.B60,\n dividerColor: colors.BGLight,\n },\n accordionItem: {\n fontColor: { active: colors.B40, inactive: colors.B80 },\n icon: { active: colors.B40, inactive: colors.B80 },\n switch: {\n backgroundChecked: colors.vertical,\n backgroundUnchecked: colors.B80,\n },\n },\n },\n footer: { logoTextColor: 'black', logoPrefixFontColor: colors.B70 },\n loaderColor: colors.loader,\n};\nconst defaultDarkTheme = {\n layout: {\n background: colors.B15,\n boxShadow: shadows.dark,\n wrapper: {\n secondaryFontColor: colors.B40,\n },\n },\n header: {\n fontColor: colors.white,\n badgeColor: colors.vertical,\n badgeTextColor: colors.white,\n markAllAsReadButtonColor: colors.B60,\n },\n popover: { arrowColor: colors.B15 },\n actionsMenu: {\n dropdownColor: colors.B20,\n hoverColor: colors.B30,\n fontColor: colors.white,\n dotsButtonColor: colors.B40,\n },\n notificationItem: {\n read: { background: colors.B17, fontColor: colors.white, timeMarkFontColor: colors.B40 },\n unread: {\n background: colors.B20,\n fontColor: colors.white,\n boxShadow: shadows.dark,\n notificationItemBeforeBrandColor: colors.vertical,\n timeMarkFontColor: colors.B60,\n },\n buttons: darkButtonStyle,\n },\n userPreferences: {\n settingsButtonColor: colors.B40,\n accordion: {\n background: colors.B20,\n fontColor: colors.white,\n secondaryFontColor: colors.B60,\n boxShadow: shadows.dark,\n arrowColor: colors.B60,\n dividerColor: colors.B30,\n },\n accordionItem: {\n fontColor: { active: colors.white, inactive: colors.B60 },\n icon: { active: colors.white, inactive: colors.B40 },\n switch: {\n backgroundChecked: colors.vertical,\n backgroundUnchecked: colors.B30,\n },\n },\n },\n footer: { logoTextColor: colors.white, logoPrefixFontColor: colors.B40 },\n loaderColor: colors.loader,\n};\nconst defaultCommonTheme = {\n fontFamily: 'inherit',\n};\nconst defaultNotificationBellLightTheme = {\n unseenBadgeColor: { stopColor: '#FF512F', stopColorOffset: '#DD2476' },\n unseenBadgeBackgroundColor: colors.white,\n};\nconst defaultNotificationBellDarkTheme = {\n unseenBadgeColor: { stopColor: '#FF512F', stopColorOffset: '#DD2476' },\n unseenBadgeBackgroundColor: colors.B15,\n};\nexport { defaultLightTheme, defaultDarkTheme, defaultCommonTheme, defaultNotificationBellLightTheme, defaultNotificationBellDarkTheme, };\n//# sourceMappingURL=themeDefaultValues.js.map","import merge from 'lodash.merge';\nimport cloneDeep from 'lodash.clonedeep';\nimport { defaultCommonTheme, defaultDarkTheme, defaultLightTheme, defaultNotificationBellDarkTheme, defaultNotificationBellLightTheme, } from '../shared/config/themeDefaultValues';\nexport function getDefaultTheme(props) {\n var _a, _b, _c;\n const theme = props.colorScheme === 'light'\n ? merge(cloneDeep(defaultLightTheme), (_a = props === null || props === void 0 ? void 0 : props.theme) === null || _a === void 0 ? void 0 : _a.light)\n : merge(cloneDeep(defaultDarkTheme), (_b = props === null || props === void 0 ? void 0 : props.theme) === null || _b === void 0 ? void 0 : _b.dark);\n const common = merge(cloneDeep(defaultCommonTheme), (_c = props === null || props === void 0 ? void 0 : props.theme) === null || _c === void 0 ? void 0 : _c.common);\n return {\n theme,\n common,\n };\n}\nexport function getDefaultBellColors(props) {\n const colorScheme = (props === null || props === void 0 ? void 0 : props.colorScheme) ? props === null || props === void 0 ? void 0 : props.colorScheme : 'light';\n const bellColors = colorScheme === 'light'\n ? Object.assign(Object.assign({}, cloneDeep(defaultNotificationBellLightTheme)), { bellColors: props === null || props === void 0 ? void 0 : props.bellColors }) : Object.assign(Object.assign({}, cloneDeep(defaultNotificationBellDarkTheme)), { bellColors: props === null || props === void 0 ? void 0 : props.bellColors });\n return {\n bellColors,\n };\n}\n//# sourceMappingURL=defaultTheme.js.map","import React from 'react';\nimport { Button } from '@mantine/core';\nimport { css, cx } from '@emotion/css';\nimport { useNovuTheme } from '../../../../hooks';\nexport function NotificationButton({ className, messageAction, buttonIndex, onActionClick }) {\n const { theme } = useNovuTheme();\n const button = messageAction.buttons[buttonIndex];\n const buttonStyle = theme.notificationItem.buttons[button.type];\n const buttonText = (button === null || button === void 0 ? void 0 : button.content) ? button.content : '';\n function handleOnclick(e) {\n e.stopPropagation();\n onActionClick(button.type);\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(Button, { onClick: (e) => handleOnclick(e), className: cx(actionButtonStyles(buttonStyle), className), fullWidth: true }, buttonText)));\n}\nexport const actionButtonStyles = (buttonStyle) => css `\n background: ${buttonStyle.backGroundColor};\n color: ${buttonStyle.fontColor};\n box-shadow: none;\n display: flex;\n justify-content: center;\n margin-left: 5px;\n margin-right: 5px;\n height: 30px;\n font-weight: 700;\n font-size: 12px;\n border-radius: 7px;\n border: 0;\n\n &:hover {\n background: ${buttonStyle.backGroundColor};\n }\n`;\n//# sourceMappingURL=NotificationItemButton.js.map","import React from 'react';\nimport { ButtonTypeEnum, MessageActionStatusEnum } from '@novu/shared';\nimport styled from '@emotion/styled';\nimport { cx, css } from '@emotion/css';\nimport { NotificationButton } from './NotificationItemButton';\nimport { useStyles } from '../../../../store/styles';\nexport function ActionContainer({ action, onActionClick }) {\n const status = action === null || action === void 0 ? void 0 : action.status;\n const buttons = action === null || action === void 0 ? void 0 : action.buttons;\n const [buttonsContainerStyles, primaryButtonStyles, secondaryButtonStyles] = useStyles([\n 'notifications.listItem.buttons.root',\n 'notifications.listItem.buttons.primary',\n 'notifications.listItem.buttons.secondary',\n ]);\n function handleOnClick(buttonType) {\n onActionClick(buttonType);\n }\n return (React.createElement(TemplateContainerWrap, null,\n React.createElement(TemplateContainer, { className: cx('nc-notifications-list-item-buttons', css(buttonsContainerStyles)) }, status === MessageActionStatusEnum.DONE\n ? null\n : buttons === null || buttons === void 0 ? void 0 : buttons.map((button, buttonIndex) => (React.createElement(NotificationButton, { key: button.type, className: cx('nc-notifications-list-item-button', css(button.type === ButtonTypeEnum.PRIMARY ? primaryButtonStyles : secondaryButtonStyles)), onActionClick: (buttonType) => handleOnClick(buttonType), messageAction: action, buttonIndex: buttonIndex }))))));\n}\nconst TemplateContainerWrap = styled.div `\n margin-left: 10px;\n margin-right: 10px;\n`;\nconst TemplateContainer = styled.div `\n display: flex;\n justify-content: space-between;\n cursor: pointer;\n max-height: 50px;\n margin-left: -15px;\n margin-right: -15px;\n`;\n//# sourceMappingURL=ActionContainer.js.map","export const When = ({ truthy, children, fallback = null }) => (truthy ? children : null);\n//# sourceMappingURL=When.js.map","const SECOND = 1000;\nconst MINUTE = SECOND * 60;\nconst HOUR = MINUTE * 60;\nconst DAY = HOUR * 24;\nconst YEAR = DAY * 365;\nconst UNITS = {\n year: YEAR,\n month: YEAR / 12,\n day: DAY,\n hour: HOUR,\n minute: MINUTE,\n second: SECOND,\n};\nconst DEFAULT_LOCALE = 'en';\nexport function formatRelativeTime({ fromDate, toDate = new Date(), locale = DEFAULT_LOCALE, }) {\n const elapsed = fromDate.getTime() - toDate.getTime();\n // \"Math.abs\" accounts for both \"past\" & \"future\" scenarios\n for (const unit in UNITS) {\n if (Math.abs(elapsed) > UNITS[unit] || unit === 'second') {\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n return rtf.format(Math.round(elapsed / UNITS[unit]), unit);\n }\n }\n return fromDate.toLocaleDateString(locale);\n}\n//# sourceMappingURL=date.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React from 'react';\nimport { Avatar as MAvatar, ActionIcon, Menu, createStyles } from '@mantine/core';\nimport { useHover } from '@mantine/hooks';\nimport { css, cx } from '@emotion/css';\nimport styled from '@emotion/styled';\nimport { MessageActionStatusEnum, ActorTypeEnum, SystemAvatarIconEnum, } from '@novu/shared';\nimport { useNovuTheme, useNotificationCenter, useTranslations, useNotifications } from '../../../../hooks';\nimport { getDefaultBellColors } from '../../../../utils/defaultTheme';\nimport { ActionContainer } from './ActionContainer';\nimport { When } from '../../../../shared/utils/When';\nimport { shadows } from '../../../../shared/config/shadows';\nimport { DotsHorizontal, ErrorIcon, Info, Success, Warning, Avatar, Up, Question, GradientDot, Trash, Read, } from '../../../../shared/icons';\nimport { colors } from '../../../../shared/config/colors';\nimport { useStyles } from '../../../../store/styles';\nimport { formatRelativeTime } from '../../../../utils/date';\nconst avatarSystemIcons = [\n {\n icon: React.createElement(Warning, null),\n type: SystemAvatarIconEnum.WARNING,\n iconColor: '#FFF000',\n containerBgColor: '#FFF00026',\n },\n {\n icon: React.createElement(Info, null),\n type: SystemAvatarIconEnum.INFO,\n iconColor: '#0000FF',\n containerBgColor: '#0000FF26',\n },\n {\n icon: React.createElement(Up, null),\n type: SystemAvatarIconEnum.UP,\n iconColor: colors.B70,\n containerBgColor: `${colors.B70}26`,\n },\n {\n icon: React.createElement(Question, null),\n type: SystemAvatarIconEnum.QUESTION,\n iconColor: colors.B70,\n containerBgColor: `${colors.B70}26`,\n },\n {\n icon: React.createElement(Success, null),\n type: SystemAvatarIconEnum.SUCCESS,\n iconColor: colors.success,\n containerBgColor: `${colors.success}26`,\n },\n {\n icon: React.createElement(ErrorIcon, null),\n type: SystemAvatarIconEnum.ERROR,\n iconColor: colors.error,\n containerBgColor: `${colors.error}26`,\n },\n];\nexport function NotificationListItem({ notification, onClick, }) {\n var _a, _b, _c;\n const { theme: novuTheme, colorScheme } = useNovuTheme();\n const { onActionClick, listItem, allowedNotificationActions } = useNotificationCenter();\n const { removeMessage, markNotificationAsRead, markNotificationAsUnRead } = useNotifications();\n const { t, lang } = useTranslations();\n const { hovered, ref } = useHover();\n const unread = readSupportAdded(notification) ? !notification.read : !notification.seen;\n const [listItemReadStyles, listItemUnreadStyles, listItemLayoutStyles, listItemContentLayoutStyles, listItemTitleStyles, listItemTimestampStyles, menuDotsButtonStyles, menuDropdownStyles, menuArrowStyles, menuItemStyles,] = useStyles([\n 'notifications.listItem.read',\n 'notifications.listItem.unread',\n 'notifications.listItem.layout',\n 'notifications.listItem.contentLayout',\n 'notifications.listItem.title',\n 'notifications.listItem.timestamp',\n 'notifications.listItem.dotsButton',\n 'actionsMenu.dropdown',\n 'actionsMenu.arrow',\n 'actionsMenu.item',\n ]);\n const { classes } = useDropdownStyles({ novuTheme });\n const overrideClasses = {\n arrow: cx(classes.arrow, css(menuArrowStyles)),\n dropdown: cx(classes.dropdown, css(menuDropdownStyles)),\n item: cx(classes.item, css(menuItemStyles)),\n itemIcon: classes.itemIcon,\n };\n function handleNotificationClick() {\n onClick(notification);\n }\n function handleActionButtonClick(actionButtonType) {\n return __awaiter(this, void 0, void 0, function* () {\n onActionClick(notification.templateIdentifier, actionButtonType, notification);\n });\n }\n function handleRemoveMessage(e) {\n e.stopPropagation();\n removeMessage(notification._id);\n }\n function handleToggleReadMessage(e) {\n e.stopPropagation();\n if (unread) {\n markNotificationAsRead(notification._id);\n }\n else {\n markNotificationAsUnRead(notification._id);\n }\n }\n if (listItem) {\n return listItem(notification, handleActionButtonClick, handleNotificationClick);\n }\n return (React.createElement(\"div\", { className: cx('nc-notifications-list-item', unread ? 'nc-notifications-list-item-unread' : 'nc-notifications-list-item-read', listItemClassName, unread ? unreadNotificationStyles(novuTheme) : readNotificationStyles(novuTheme), unread ? css(listItemUnreadStyles) : css(listItemReadStyles)), onClick: () => handleNotificationClick(), \"data-test-id\": \"notification-list-item\", role: \"button\", tabIndex: 0, ref: ref },\n React.createElement(NotificationItemContainer, { className: cx('nc-notifications-list-item-layout', css(listItemLayoutStyles)) },\n React.createElement(NotificationContentContainer, null,\n notification.actor && notification.actor.type !== ActorTypeEnum.NONE && (React.createElement(AvatarContainer, null,\n React.createElement(RenderAvatar, { actor: notification.actor }))),\n React.createElement(NotificationTextContainer, { className: cx('nc-notifications-list-item-content-layout', css(listItemContentLayoutStyles)) },\n React.createElement(TextContent, { className: cx('nc-notifications-list-item-title', css(listItemTitleStyles)), \"data-test-id\": \"notification-content\", dangerouslySetInnerHTML: {\n __html: notification.content,\n } }),\n React.createElement(\"div\", { className: cx('nc-notifications-list-item-timestamp', timeMarkClassName(novuTheme, unread), css(listItemTimestampStyles)) }, formatRelativeTime({ fromDate: new Date(notification.createdAt), locale: lang })))),\n React.createElement(ActionWrapper, { templateIdentifier: notification.templateIdentifier, actionStatus: (_b = (_a = notification === null || notification === void 0 ? void 0 : notification.cta) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.status, ctaAction: (_c = notification === null || notification === void 0 ? void 0 : notification.cta) === null || _c === void 0 ? void 0 : _c.action, handleActionButtonClick: handleActionButtonClick })),\n React.createElement(SettingsActionWrapper, { style: { display: allowedNotificationActions ? 'block' : 'none', opacity: hovered ? 1 : 0 }, novuTheme: novuTheme },\n React.createElement(Menu, { radius: 7, shadow: colorScheme === 'dark' ? shadows.dark : shadows.light, withArrow: true, classNames: overrideClasses },\n React.createElement(Menu.Target, null,\n React.createElement(ActionIcon, { onClick: (e) => e.stopPropagation(), variant: \"transparent\", \"data-test-id\": \"notification-dots-button\" },\n React.createElement(DotsHorizontal, { className: cx('nc-notifications-list-item-dots-button', dotsClassName(novuTheme), css(menuDotsButtonStyles)) }))),\n React.createElement(Menu.Dropdown, null,\n React.createElement(Menu.Item, { icon: React.createElement(Read, null), onClick: handleToggleReadMessage, \"data-test-id\": unread ? 'notification-mark-as-read' : 'notification-mark-as-unread' }, unread ? t('markAsRead') : t('markAsUnRead')),\n React.createElement(Menu.Item, { icon: React.createElement(Trash, null), onClick: handleRemoveMessage, \"data-test-id\": 'notification-remove-message' }, t('removeMessage'))))),\n React.createElement(When, { truthy: readSupportAdded(notification) },\n React.createElement(\"div\", { style: { opacity: !allowedNotificationActions || !hovered ? 1 : 0 } }, !notification.seen && React.createElement(GradientDotWrapper, { colorScheme: colorScheme })))));\n}\nfunction ActionWrapper({ actionStatus, templateIdentifier, ctaAction, handleActionButtonClick, }) {\n const { actionsResultBlock } = useNotificationCenter();\n return (React.createElement(React.Fragment, null, actionsResultBlock && actionStatus === MessageActionStatusEnum.DONE ? (actionsResultBlock(templateIdentifier, ctaAction)) : (React.createElement(ActionContainerOrNone, { handleActionButtonClick: handleActionButtonClick, action: ctaAction }))));\n}\nexport const readSupportAdded = (notification) => typeof (notification === null || notification === void 0 ? void 0 : notification.read) !== 'undefined';\nfunction ActionContainerOrNone({ action, handleActionButtonClick, }) {\n return React.createElement(React.Fragment, null, action ? React.createElement(ActionContainer, { onActionClick: handleActionButtonClick, action: action }) : null);\n}\nfunction GradientDotWrapper({ colorScheme }) {\n const { bellColors } = getDefaultBellColors({\n colorScheme: colorScheme,\n bellColors: {\n unseenBadgeBackgroundColor: 'transparent',\n },\n });\n const [bellDotStyles] = useStyles('bellButton.dot');\n return (React.createElement(GradientDot, { width: \"10px\", height: \"10px\", colors: bellColors, className: cx('nc-bell-button-dot', css(bellDotStyles)) }));\n}\nfunction RenderAvatar({ actor }) {\n if ([ActorTypeEnum.USER, ActorTypeEnum.SYSTEM_CUSTOM].includes(actor.type) && actor.data) {\n return (React.createElement(MAvatar, { src: actor.data, radius: \"xl\" },\n React.createElement(Avatar, null)));\n }\n if (actor.type === ActorTypeEnum.SYSTEM_ICON) {\n const selectedIcon = avatarSystemIcons.filter((data) => data.type === actor.data);\n return selectedIcon.length > 0 ? (React.createElement(SystemIconWrapper, { iconColor: selectedIcon[0].iconColor, containerBgColor: selectedIcon[0].containerBgColor }, selectedIcon[0].icon)) : (React.createElement(Avatar, null));\n }\n return React.createElement(Avatar, null);\n}\nconst NotificationItemContainer = styled.div `\n display: flex;\n flex-direction: column;\n gap: 5px;\n align-items: normal;\n width: 100%;\n`;\nconst TextContent = styled.div `\n line-height: 16px;\n overflow-wrap: anywhere;\n`;\nconst SettingsActionWrapper = styled.div `\n color: ${({ novuTheme }) => { var _a; return (_a = novuTheme.layout) === null || _a === void 0 ? void 0 : _a.wrapper.secondaryFontColor; }};\n`;\nconst unreadNotificationStyles = (novuTheme) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return css `\n background: ${(_b = (_a = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _a === void 0 ? void 0 : _a.unread) === null || _b === void 0 ? void 0 : _b.background};\n box-shadow: ${(_d = (_c = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _c === void 0 ? void 0 : _c.unread) === null || _d === void 0 ? void 0 : _d.boxShadow};\n color: ${(_f = (_e = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _e === void 0 ? void 0 : _e.unread) === null || _f === void 0 ? void 0 : _f.fontColor};\n font-weight: 700;\n\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 5px;\n border-radius: 7px 0 0 7px;\n background: ${(_h = (_g = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _g === void 0 ? void 0 : _g.unread) === null || _h === void 0 ? void 0 : _h.notificationItemBeforeBrandColor};\n }\n`;\n};\nconst readNotificationStyles = (novuTheme) => {\n var _a, _b, _c, _d;\n return css `\n color: ${(_b = (_a = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _a === void 0 ? void 0 : _a.read) === null || _b === void 0 ? void 0 : _b.fontColor};\n background: ${(_d = (_c = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _c === void 0 ? void 0 : _c.read) === null || _d === void 0 ? void 0 : _d.background};\n font-weight: 400;\n font-size: 14px;\n`;\n};\nconst listItemClassName = css `\n padding: 15px;\n position: relative;\n display: flex;\n line-height: 20px;\n justify-content: space-between;\n align-items: center;\n border-radius: 7px;\n margin: 10px 15px;\n\n &:hover {\n cursor: pointer;\n }\n`;\nconst timeMarkClassName = (novuTheme, unread) => {\n var _a, _b, _c, _d;\n return css `\n min-width: 55px;\n font-size: 12px;\n font-weight: 400;\n opacity: 0.5;\n line-height: 14.4px;\n color: ${unread\n ? (_b = (_a = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _a === void 0 ? void 0 : _a.unread) === null || _b === void 0 ? void 0 : _b.timeMarkFontColor\n : (_d = (_c = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.notificationItem) === null || _c === void 0 ? void 0 : _c.read) === null || _d === void 0 ? void 0 : _d.timeMarkFontColor};\n`;\n};\nconst NotificationContentContainer = styled.div `\n display: flex;\n align-items: center;\n gap: 10px;\n`;\nconst AvatarContainer = styled.div `\n width: 40px;\n min-width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 40px;\n border: 1px solid ${colors.B40};\n overflow: hidden;\n`;\nconst NotificationTextContainer = styled.div `\n display: flex;\n flex-direction: column;\n gap: 5px;\n`;\nconst SystemIconWrapper = styled.div `\n width: 100%;\n height: 100%;\n cursor: pointer;\n background-color: ${({ containerBgColor }) => containerBgColor};\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 20px;\n color: ${({ iconColor }) => iconColor};\n\n & > svg {\n width: 20px;\n height: 20px;\n }\n`;\nconst dotsClassName = (theme) => {\n var _a;\n return css `\n color: ${(_a = theme === null || theme === void 0 ? void 0 : theme.actionsMenu) === null || _a === void 0 ? void 0 : _a.dotsButtonColor};\n`;\n};\nconst useDropdownStyles = createStyles((theme, { novuTheme }) => {\n var _a, _b, _c, _d, _e;\n return {\n dropdown: {\n backgroundColor: (_a = novuTheme.actionsMenu) === null || _a === void 0 ? void 0 : _a.dropdownColor,\n border: 'none',\n },\n item: {\n borerRadius: '5px',\n color: (_b = novuTheme.actionsMenu) === null || _b === void 0 ? void 0 : _b.fontColor,\n fontWeight: 400,\n fontSize: '14px',\n '&:hover': {\n background: (_c = novuTheme.actionsMenu) === null || _c === void 0 ? void 0 : _c.hoverColor,\n },\n },\n arrow: {\n backgroundColor: (_d = novuTheme.actionsMenu) === null || _d === void 0 ? void 0 : _d.dropdownColor,\n borderColor: (_e = novuTheme.actionsMenu) === null || _e === void 0 ? void 0 : _e.dropdownColor,\n },\n itemIcon: { width: '20px', height: '20px' },\n };\n});\n//# sourceMappingURL=NotificationListItem.js.map","import React from 'react';\nimport styled from '@emotion/styled';\nimport { cx, css } from '@emotion/css';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { NotificationListItem } from './notification-item/NotificationListItem';\nimport { Loader } from './Loader';\nimport { useStyles } from '../../../store/styles';\nexport function NotificationsList({ notifications, onFetch, hasNextPage, onNotificationClicked, }) {\n const totalCount = notifications === null || notifications === void 0 ? void 0 : notifications.length;\n const [notificationsListStyles] = useStyles('notifications.root');\n return (React.createElement(ListWrapper, { className: cx('nc-notifications-list', css(notificationsListStyles)), \"data-test-id\": \"notifications-scroll-area\" },\n React.createElement(InfiniteScroll, { dataLength: totalCount, next: onFetch, hasMore: hasNextPage, height: 400, loader: React.createElement(Loader, null), endMessage: false }, notifications.map((notification) => {\n return (React.createElement(NotificationListItem, { key: notification._id, notification: notification, onClick: onNotificationClicked }));\n }))));\n}\nconst ListWrapper = styled.div ``;\n//# sourceMappingURL=NotificationsList.js.map","/* eslint-disable */\nimport React from 'react';\nexport const NoNewNotifications = (props) => {\n return (React.createElement(\"svg\", Object.assign({ width: \"120\", height: \"108\", viewBox: \"0 0 120 108\", fill: \"none\" }, props),\n React.createElement(\"circle\", { cx: \"11.3191\", cy: \"30.7872\", r: \"6.31915\", stroke: \"#3D3D4D\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"ellipse\", { cx: \"60.117\", cy: \"27.9787\", rx: \"5.96809\", ry: \"5.61702\", stroke: \"#828299\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M79.5424 49.4934C79.5424 44.1598 77.6437 39.0446 74.2641 35.2732C70.8844 31.5017 66.3006 29.3829 61.5211 29.3829C56.7415 29.3829 52.1578 31.5017 48.7781 35.2732C45.3985 39.0446 43.4998 44.1598 43.4998 49.4934C43.4998 72.9557 34.4892 79.6592 34.4892 79.6592H88.553C88.553 79.6592 79.5424 72.9557 79.5424 49.4934Z\", fill: \"#292933\" }),\n React.createElement(\"path\", { d: \"M68.8995 81.7552C68.1496 83.551 67.0731 85.0417 65.778 86.0779C64.4828 87.1141 63.0144 87.6595 61.5198 87.6595C60.0252 87.6595 58.5568 87.1141 57.2617 86.0779C55.9665 85.0417 54.8901 83.551 54.1401 81.7552\", fill: \"#292933\" }),\n React.createElement(\"path\", { d: \"M81.2976 50.2203C81.2976 68.2545 87.2222 76.7327 90.2814 79.9083C90.7671 80.4126 90.3802 81.4764 89.68 81.4764C88.0927 81.4764 86.5488 81.4764 85.0422 81.4764M68.5814 82.946C67.6854 84.8068 66.3993 86.3513 64.8518 87.425C63.3044 88.4987 61.5499 89.0638 59.7641 89.0638C57.9783 89.0638 56.2239 88.4987 54.6765 87.425C53.129 86.3513 51.8429 84.8068 50.9468 82.946M79.712 42.3723C78.6394 39.8192 77.0439 37.4727 74.991 35.4861C70.953 31.5783 65.4763 29.3829 59.7656 29.3829C54.055 29.3829 48.5783 31.5783 44.5403 35.4861C43.3681 36.6205 42.345 37.8722 41.4832 39.2127C40.4958 40.7487 39.7202 42.4013 39.1747 44.1276C38.5563 46.0847 38.2337 48.1364 38.2337 50.2203C38.2337 53.2503 38.0665 56.0106 37.7737 58.5212M34.8401 70.7608C32.9874 75.4551 30.7688 78.331 29.2526 79.9055C28.767 80.4099 29.155 81.4764 29.8551 81.4764C47.1962 81.4764 59.3571 81.4764 74.1593 81.4764\", stroke: \"#828299\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M55.6345 59.0737C55.1665 59.7144 54.4949 60.2462 53.6868 60.6159C52.8787 60.9855 51.9625 61.1801 51.0299 61.1801C50.0973 61.1801 49.1811 60.9855 48.373 60.6159C47.5649 60.2462 46.8933 59.7144 46.4254 59.0737\", stroke: \"#828299\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M73.1877 59.0737C72.7197 59.7144 72.0481 60.2462 71.24 60.6159C70.4319 60.9855 69.5157 61.1801 68.5831 61.1801C67.6506 61.1801 66.7344 60.9855 65.9263 60.6159C65.1182 60.2462 64.4465 59.7144 63.9786 59.0737\", stroke: \"#828299\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"circle\", { cx: \"107.511\", cy: \"56.0638\", r: \"7.02128\", stroke: \"#3D3D4D\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"circle\", { cx: \"16.4252\", cy: \"58.1703\", r: \"4.21277\", fill: \"#3D3D4D\" }),\n React.createElement(\"ellipse\", { cx: \"59.9573\", cy: \"104.511\", rx: \"25.2766\", ry: \"2.80851\", fill: \"#3D3D4D\" }),\n React.createElement(\"path\", { d: \"M81.5317 18.1489H88.553L81.5317 25.1702H88.553\", stroke: \"#828299\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n React.createElement(\"path\", { d: \"M96.6807 2H106.51L96.6807 11.8298H106.51\", stroke: \"#828299\", strokeWidth: \"3.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n};\n//# sourceMappingURL=NoNewNotifications.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React from 'react';\nimport { ChannelCTATypeEnum } from '@novu/shared';\nimport { useNotifications, useNotificationCenter, useNovuContext, useTranslations } from '../../../hooks';\nimport { NotificationsList } from './NotificationsList';\nimport { Loader } from './Loader';\nimport { colors } from '../../../shared/config/colors';\nimport { NoNewNotifications } from '../../../images/NoNewNotifications';\nexport function NotificationsListTab() {\n const { apiService } = useNovuContext();\n const { onNotificationClick, onUrlChange, emptyState } = useNotificationCenter();\n const { notifications, isLoading, hasNextPage, markNotificationAsRead, fetchNextPage } = useNotifications();\n const { t } = useTranslations();\n function fetchNext() {\n return __awaiter(this, void 0, void 0, function* () {\n yield fetchNextPage();\n });\n }\n function onNotificationClicked(notification) {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function* () {\n markNotificationAsRead(notification._id);\n if (onNotificationClick) {\n onNotificationClick(notification);\n }\n const hasCta = ((_a = notification.cta) === null || _a === void 0 ? void 0 : _a.type) === ChannelCTATypeEnum.REDIRECT && ((_c = (_b = notification.cta) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.url);\n apiService.postUsageLog('Notification Click', {\n notificationId: notification._id,\n hasCta,\n });\n if (hasCta && ((_e = (_d = notification.cta) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.url) && onUrlChange) {\n onUrlChange(notification.cta.data.url);\n }\n });\n }\n return isLoading ? (React.createElement(Loader, null)) : (React.createElement(React.Fragment, null, !isLoading && (notifications === null || notifications === void 0 ? void 0 : notifications.length) === 0 ? (React.createElement(React.Fragment, null, emptyState ? (emptyState) : (React.createElement(\"div\", { style: {\n textAlign: 'center',\n flexDirection: 'column',\n minHeight: 350,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n } },\n React.createElement(NoNewNotifications, { style: { maxWidth: 200, marginBottom: 15 } }),\n React.createElement(\"span\", { style: { color: colors.B70, fontSize: 15 } }, t('noNewNotification')))))) : (React.createElement(NotificationsList, { onNotificationClicked: onNotificationClicked, notifications: notifications || [], onFetch: fetchNext, hasNextPage: hasNextPage }))));\n}\n//# sourceMappingURL=NotificationsListTab.js.map","import { createStyles } from '@mantine/core';\nimport { colors } from '../../../../../shared/config/colors';\nexport default createStyles((theme, { novuTheme, common, colorScheme }, getRef) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const tabLabel = getRef('tabLabel');\n const tabIcon = getRef('tabIcon');\n return {\n tabsList: {\n gap: '30px',\n padding: '15px',\n paddingBottom: 0,\n borderBottom: `1px solid ${colorScheme === 'dark' ? colors.B20 : colors.B98}`,\n },\n tab: {\n display: 'block',\n cursor: 'pointer',\n borderBottom: 'none',\n marginBottom: '0',\n padding: '0px',\n height: '36px',\n [`.mantine-Badge-root`]: {\n background: 'transparent',\n border: `1px solid ${colors.B60}`,\n color: colors.B60,\n },\n '&:hover': {\n background: 'none',\n [`& .${tabIcon}`]: {\n color: (_a = novuTheme.header) === null || _a === void 0 ? void 0 : _a.fontColor,\n },\n [`& .${tabLabel}`]: {\n color: (_b = novuTheme.header) === null || _b === void 0 ? void 0 : _b.fontColor,\n },\n },\n ['&[data-active]']: {\n width: 'auto',\n [`.mantine-Badge-root`]: {\n background: (_c = novuTheme.header) === null || _c === void 0 ? void 0 : _c.badgeColor,\n border: 'none',\n color: (_d = novuTheme.header) === null || _d === void 0 ? void 0 : _d.badgeTextColor,\n },\n [`& .${tabLabel}`]: {\n color: (_e = novuTheme.header) === null || _e === void 0 ? void 0 : _e.fontColor,\n '&::after': {\n content: '\"\"',\n display: 'block',\n height: '2px',\n background: ((_f = novuTheme === null || novuTheme === void 0 ? void 0 : novuTheme.header) === null || _f === void 0 ? void 0 : _f.tabBorderColor) || ((_g = novuTheme.header) === null || _g === void 0 ? void 0 : _g.badgeColor),\n borderRadius: '10px',\n },\n },\n [`& .${tabIcon}`]: {\n color: 'red',\n background: (_h = novuTheme.header) === null || _h === void 0 ? void 0 : _h.badgeColor,\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n },\n },\n },\n tabLabel: {\n ref: tabLabel,\n fontFamily: common.fontFamily,\n fontSize: '14px',\n fontWeight: 700,\n color: colors.B60,\n textAlign: 'left',\n },\n tabIcon: {\n ref: tabIcon,\n display: 'block',\n fontSize: '26px',\n fontWeight: 700,\n marginBottom: '5px',\n color: colors.B60,\n textAlign: 'left',\n },\n };\n});\n//# sourceMappingURL=Tabs.styles.js.map","import React from 'react';\nimport { Tabs as MantineTabs } from '@mantine/core';\nimport { css, cx } from '@emotion/css';\nimport useTabStyles from './Tabs.styles';\nimport { useNovuTheme } from '../../../../../hooks';\nimport { useStyles } from '../../../../../store/styles';\nexport function Tabs({ children, onTabChange, value }) {\n const { theme: novuTheme, common, colorScheme } = useNovuTheme();\n const { classes } = useTabStyles({ novuTheme, common, colorScheme });\n const [tabsListStyles, tabStyles, tabLabelStyles, tabIconStyles] = useStyles([\n 'tabs.tabsList',\n 'tabs.tab',\n 'tabs.tabLabel',\n 'tabs.tabIcon',\n ]);\n const overrideClasses = {\n tabsList: cx(classes.tabsList, css(tabsListStyles)),\n tab: cx(classes.tab, css(tabStyles)),\n tabLabel: cx(classes.tabLabel, css(tabLabelStyles)),\n tabIcon: cx(classes.tabIcon, css(tabIconStyles)),\n };\n return (React.createElement(MantineTabs, { onTabChange: onTabChange, defaultValue: value, keepMounted: false, variant: \"default\", classNames: overrideClasses }, children));\n}\n//# sourceMappingURL=Tabs.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport React, { useMemo, useLayoutEffect } from 'react';\nimport { Tabs as MantineTabs } from '@mantine/core';\nimport styled from '@emotion/styled';\nimport { NotificationsListTab } from './NotificationsListTab';\nimport { UnseenBadge } from './UnseenBadge';\nimport { Tabs } from './layout/tabs/Tabs';\nimport { useNotificationCenter, useNotifications, useFeedUnseenCount, useNovuContext } from '../../../hooks';\nexport function FeedsTabs() {\n const { tabs, onTabClick } = useNotificationCenter();\n const { storeId, setStore, markFetchedNotificationsAsSeen } = useNotifications();\n const { setFetchingStrategy } = useNovuContext();\n function handleOnTabChange(newStoreId) {\n return __awaiter(this, void 0, void 0, function* () {\n markFetchedNotificationsAsSeen();\n setStore(newStoreId);\n });\n }\n useLayoutEffect(() => {\n setFetchingStrategy({ fetchNotifications: true });\n }, [setFetchingStrategy]);\n return (React.createElement(React.Fragment, null, (tabs === null || tabs === void 0 ? void 0 : tabs.length) ? (React.createElement(Tabs, { value: storeId, onTabChange: handleOnTabChange },\n React.createElement(MantineTabs.List, null, tabs.map((tab, index) => (React.createElement(MantineTabs.Tab, { onClick: () => {\n onTabClick(tab);\n }, key: index, \"data-test-id\": `tab-${tab.storeId}`, value: tab.storeId },\n React.createElement(TabLabelWrapper, null,\n tab.name,\n React.createElement(UnseenBadgeContainer, { storeId: tab.storeId })))))),\n tabs.map((tab, index) => (React.createElement(MantineTabs.Panel, { value: tab.storeId, key: index },\n React.createElement(NotificationsListTab, null)))))) : (React.createElement(NotificationsListTab, null))));\n}\nconst TabLabelWrapper = styled.div `\n margin-bottom: 13px;\n min-height: 22px;\n line-height: 19px;\n`;\nfunction UnseenBadgeContainer({ storeId }) {\n var _a;\n const { stores } = useNotifications();\n const query = useMemo(() => {\n var _a;\n const foundQuery = ((_a = stores === null || stores === void 0 ? void 0 : stores.find((i) => i.storeId === storeId)) === null || _a === void 0 ? void 0 : _a.query) || {};\n return Object.assign({}, foundQuery, { seen: false, limit: 100 });\n }, [stores]);\n const { data } = useFeedUnseenCount({ query });\n const unseenCount = query.seen ? 0 : (_a = data === null || data === void 0 ? void 0 : data.count) !== null && _a !== void 0 ? _a : 0;\n return React.createElement(UnseenBadge, { unseenCount: unseenCount });\n}\n//# sourceMappingURL=FeedsTabs.js.map","export { ActorTypeEnum, } from '@novu/shared';\nexport var ScreensEnum;\n(function (ScreensEnum) {\n ScreensEnum[\"NOTIFICATIONS\"] = \"notifications\";\n ScreensEnum[\"SETTINGS\"] = \"settings\";\n})(ScreensEnum || (ScreensEnum = {}));\n//# sourceMappingURL=index.js.map","import React, { useState } from 'react';\nimport styled from '@emotion/styled';\nimport { css, cx } from '@emotion/css';\nimport { Header } from './header/Header';\nimport { UserPreferenceHeader } from './header/UserPreferenceHeader';\nimport { FooterContainer as Footer } from './footer/FooterContainer';\nimport { Loader } from '../Loader';\nimport { useNotificationCenter, useNovuContext, useNovuTheme } from '../../../../hooks';\nimport { SubscriberPreference } from '../user-preference/SubscriberPreference';\nimport { FeedsTabs } from '../FeedsTabs';\nimport { useStyles } from '../../../../store/styles';\nimport { ScreensEnum } from '../../../../shared/interfaces';\nexport function Layout() {\n const { header } = useNotificationCenter();\n const { isSessionInitialized } = useNovuContext();\n const { theme } = useNovuTheme();\n const [layoutStyles] = useStyles(['layout.root']);\n const [screen, setScreen] = useState(ScreensEnum.NOTIFICATIONS);\n return (React.createElement(\"div\", { className: cx('nc-layout-wrapper', layoutWrapperCss(theme), css(layoutStyles)), \"data-test-id\": \"layout-wrapper\" },\n screen === ScreensEnum.SETTINGS && (React.createElement(React.Fragment, null,\n header ? (header({ setScreen })) : (React.createElement(UserPreferenceHeader, { onBackClick: () => setScreen(ScreensEnum.NOTIFICATIONS) })),\n React.createElement(ContentWrapper, null,\n React.createElement(SubscriberPreference, null)))),\n screen === ScreensEnum.NOTIFICATIONS && (React.createElement(React.Fragment, null,\n header ? header({ setScreen }) : React.createElement(Header, { onCogClick: () => setScreen(ScreensEnum.SETTINGS) }),\n React.createElement(ContentWrapper, null, isSessionInitialized ? (React.createElement(MainWrapper, { \"data-test-id\": \"main-wrapper\" },\n React.createElement(FeedsTabs, null))) : (React.createElement(Loader, null))))),\n React.createElement(Footer, null)));\n}\nconst ContentWrapper = styled.div `\n overflow: auto;\n min-height: 400px;\n`;\nconst layoutWrapperCss = (novuTheme) => css `\n padding: 15px 0;\n height: auto;\n border-radius: 7px;\n box-shadow: ${novuTheme.layout.boxShadow};\n background: ${novuTheme.layout.background};\n`;\nconst MainWrapper = styled.div ``;\n//# sourceMappingURL=Layout.js.map","import React from 'react';\nimport { MantineProvider } from '@mantine/core';\nimport { css } from '@emotion/css';\nimport { Layout } from './layout/Layout';\nimport { useNovuTheme } from '../../../hooks';\nimport { useFetchOrganization } from '../../../hooks';\nexport function AppContent() {\n var _a, _b, _c, _d;\n const { theme, common } = useNovuTheme();\n const { data: organization } = useFetchOrganization();\n const primaryColor = (_b = (_a = organization === null || organization === void 0 ? void 0 : organization.branding) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : theme.loaderColor;\n const fontFamily = common.fontFamily || ((_c = organization === null || organization === void 0 ? void 0 : organization.branding) === null || _c === void 0 ? void 0 : _c.fontFamily);\n const dir = (((_d = organization === null || organization === void 0 ? void 0 : organization.branding) === null || _d === void 0 ? void 0 : _d.direction) === 'rtl' ? 'rtl' : 'ltr');\n const themeConfig = {\n fontFamily,\n dir,\n };\n return (React.createElement(MantineProvider, { theme: themeConfig },\n React.createElement(\"div\", { className: wrapperClassName(primaryColor, fontFamily, dir) },\n React.createElement(Layout, null))));\n}\nconst wrapperClassName = (primaryColor, fontFamily, dir) => css `\n margin: 0;\n font-family: ${fontFamily === 'inherit' ? fontFamily : `${fontFamily}, Helvetica, sans-serif`};\n color: #333737;\n direction: ${dir};\n width: 420px;\n z-index: 999;\n\n ::-moz-selection {\n background: ${primaryColor};\n }\n\n *::selection {\n background: ${primaryColor};\n }\n`;\n//# sourceMappingURL=AppContent.js.map","import React from 'react';\nimport { ThemeContext } from './novu-theme.context';\nimport { getDefaultTheme } from '../utils/defaultTheme';\nexport function NovuThemeProvider(props) {\n const { theme, common } = getDefaultTheme({ colorScheme: props.colorScheme, theme: props.theme });\n return (React.createElement(ThemeContext.Provider, { value: { colorScheme: props.colorScheme, theme: Object.assign({}, theme), common: Object.assign({}, common) } }, props.children));\n}\n//# sourceMappingURL=novu-theme-provider.context.js.map","import React, { useEffect, useRef } from 'react';\nimport { AppContent } from './components';\nimport { useNotifications, useNovuContext } from '../../hooks';\nimport { NotificationCenterContext } from '../../store/notification-center.context';\nimport { NovuThemeProvider } from '../../store/novu-theme-provider.context';\nexport function NotificationCenter({ onUnseenCountChanged, onUrlChange, onNotificationClick, onActionClick, preferenceFilter, header, footer, emptyState, listItem, actionsResultBlock, tabs, showUserPreferences, allowedNotificationActions, onTabClick, colorScheme, theme, }) {\n const { applicationIdentifier } = useNovuContext();\n const { unseenCount } = useNotifications();\n const onUnseenCountChangedRef = useRef(onUnseenCountChanged);\n onUnseenCountChangedRef.current = onUnseenCountChanged;\n useEffect(() => {\n if (onUnseenCountChangedRef.current) {\n onUnseenCountChangedRef.current(unseenCount);\n }\n }, [unseenCount, window.parentIFrame, onUnseenCountChangedRef]);\n return (React.createElement(NotificationCenterContext.Provider, { value: {\n onUrlChange: onUrlChange,\n onNotificationClick: onNotificationClick,\n onActionClick: onActionClick,\n onTabClick: onTabClick ? onTabClick : () => { },\n preferenceFilter: preferenceFilter,\n isLoading: !applicationIdentifier,\n header: header,\n footer: footer,\n emptyState: emptyState,\n listItem: listItem,\n actionsResultBlock: actionsResultBlock,\n tabs: tabs,\n showUserPreferences: showUserPreferences !== null && showUserPreferences !== void 0 ? showUserPreferences : true,\n allowedNotificationActions: allowedNotificationActions !== null && allowedNotificationActions !== void 0 ? allowedNotificationActions : true,\n } },\n React.createElement(NovuThemeProvider, { colorScheme: colorScheme, theme: theme },\n React.createElement(AppContent, null))));\n}\n//# sourceMappingURL=NotificationCenter.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { HttpClient, } from '@novu/shared';\nexport class ApiService {\n constructor(backendUrl) {\n this.backendUrl = backendUrl;\n this.isAuthenticated = false;\n this.httpClient = new HttpClient(backendUrl);\n }\n setAuthorizationToken(token) {\n this.httpClient.setAuthorizationToken(token);\n this.isAuthenticated = true;\n }\n disposeAuthorizationToken() {\n this.httpClient.disposeAuthorizationToken();\n this.isAuthenticated = false;\n }\n updateAction(messageId, executedType, status, payload) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.post(`/widgets/messages/${messageId}/actions/${executedType}`, {\n executedType,\n status,\n payload,\n });\n });\n }\n markMessageAs(messageId, mark) {\n return __awaiter(this, void 0, void 0, function* () {\n const markPayload = mark.seen === undefined && mark.read === undefined\n ? { seen: true }\n : mark;\n return yield this.httpClient.post(`/widgets/messages/markAs`, {\n messageId,\n mark: markPayload,\n });\n });\n }\n removeMessage(messageId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.delete(`/widgets/messages/${messageId}`, {});\n });\n }\n removeAllMessages(feedId) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = feedId\n ? `/widgets/messages?feedId=${feedId}`\n : `/widgets/messages`;\n return yield this.httpClient.delete(url);\n });\n }\n markAllMessagesAsRead(feedId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.post(`/widgets/messages/read`, {\n feedId,\n });\n });\n }\n markAllMessagesAsSeen(feedId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.post(`/widgets/messages/seen`, {\n feedId,\n });\n });\n }\n getNotificationsList(page, _a = {}) {\n var { payload } = _a, rest = __rest(_a, [\"payload\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const payloadString = payload ? btoa(JSON.stringify(payload)) : undefined;\n return yield this.httpClient.getFullResponse(`/widgets/notifications/feed`, Object.assign({ page, payload: payloadString }, rest));\n });\n }\n initializeSession(appId, subscriberId, hmacHash = null) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.post(`/widgets/session/initialize`, {\n applicationIdentifier: appId,\n subscriberId: subscriberId,\n hmacHash,\n });\n });\n }\n postUsageLog(name, payload) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.post('/widgets/usage/log', {\n name: `[Widget] - ${name}`,\n payload,\n });\n });\n }\n getUnseenCount(query = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.get('/widgets/notifications/unseen', query);\n });\n }\n getUnreadCount(query = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.get('/widgets/notifications/unread', query);\n });\n }\n getTabCount(query = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.get('/widgets/notifications/count', query);\n });\n }\n getOrganization() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.httpClient.get('/widgets/organization');\n });\n }\n getUserPreference() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.httpClient.get('/widgets/preferences');\n });\n }\n updateSubscriberPreference(templateId, channelType, enabled) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.httpClient.patch(`/widgets/preferences/${templateId}`, {\n channel: { type: channelType, enabled },\n });\n });\n }\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFetchNotificationsQueryKey } from './useFetchNotificationsQueryKey';\nexport const useMarkNotificationsAsRead = (_a = {}) => {\n var { onSuccess } = _a, options = __rest(_a, [\"onSuccess\"]);\n const queryClient = useQueryClient();\n const { apiService } = useNovuContext();\n const fetchNotificationsQueryKey = useFetchNotificationsQueryKey();\n const _b = useMutation(({ feedId }) => apiService.markAllMessagesAsRead(feedId), Object.assign(Object.assign({}, options), { onSuccess: (responseData, variables, context) => {\n queryClient.setQueriesData({ queryKey: fetchNotificationsQueryKey, exact: false }, (infiniteData) => {\n const pages = infiniteData.pages.map((page) => {\n const data = page.data.map((message) => {\n return Object.assign(Object.assign({}, message), { read: true, seen: true });\n });\n return Object.assign(Object.assign({}, page), { data });\n });\n return {\n pageParams: infiniteData.pageParams,\n pages,\n };\n });\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(responseData, variables, context);\n } })), { mutate } = _b, result = __rest(_b, [\"mutate\"]);\n return Object.assign(Object.assign({}, result), { markNotificationsAsRead: mutate });\n};\n//# sourceMappingURL=useMarkNotificationAsRead.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useNovuContext } from './useNovuContext';\nimport { useFetchNotificationsQueryKey } from './useFetchNotificationsQueryKey';\nexport const useMarkNotificationsAsSeen = (_a = {}) => {\n var { onSuccess, query } = _a, options = __rest(_a, [\"onSuccess\", \"query\"]);\n const queryClient = useQueryClient();\n const { apiService } = useNovuContext();\n const fetchNotificationsQueryKey = useFetchNotificationsQueryKey();\n const _b = useMutation(({ feedId }) => apiService.markAllMessagesAsSeen(feedId), Object.assign(Object.assign({}, options), { onSuccess: (responseData, variables, context) => {\n queryClient.setQueriesData({ queryKey: fetchNotificationsQueryKey, exact: false }, (infiniteData) => {\n const pages = infiniteData.pages.map((page) => {\n const data = page.data.map((message) => {\n return Object.assign(Object.assign({}, message), { read: false, seen: true });\n });\n return Object.assign(Object.assign({}, page), { data });\n });\n return {\n pageParams: infiniteData.pageParams,\n pages,\n };\n });\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(responseData, variables, context);\n } })), { mutate } = _b, result = __rest(_b, [\"mutate\"]);\n return Object.assign(Object.assign({}, result), { markNotificationsAsSeen: mutate });\n};\n//# sourceMappingURL=useMarkNotificationAsSeen.js.map","import React, { useState, useCallback, useMemo } from 'react';\nimport { StoreContext } from './store.context';\nexport const StoreProvider = ({ children, stores }) => {\n var _a;\n const firstStore = stores[0];\n const [storeQuery, setStoreQuery] = useState(() => { var _a; return (_a = firstStore.query) !== null && _a !== void 0 ? _a : {}; });\n const [storeId, setStoreId] = useState((_a = firstStore.storeId) !== null && _a !== void 0 ? _a : 'default_store');\n const setStore = useCallback((newStoreId) => {\n var _a;\n const foundQuery = ((_a = stores === null || stores === void 0 ? void 0 : stores.find((store) => store.storeId === newStoreId)) === null || _a === void 0 ? void 0 : _a.query) || {};\n setStoreId(newStoreId);\n setStoreQuery(foundQuery);\n }, [stores, setStoreId, setStoreQuery]);\n const contextValue = useMemo(() => ({\n storeQuery,\n storeId,\n stores,\n setStore,\n }), [storeQuery, storeId, stores, setStore]);\n return React.createElement(StoreContext.Provider, { value: contextValue }, children);\n};\n//# sourceMappingURL=store-provider.context.js.map","import React, { useCallback, useMemo } from 'react';\nimport { NotificationsContext } from './notifications.context';\nimport { useFetchNotifications, useRemoveNotification, useRemoveAllNotifications, useUnseenCount } from '../hooks';\nimport { useMarkNotificationsAs } from '../hooks';\nimport { useMarkNotificationsAsRead } from '../hooks/useMarkNotificationAsRead';\nimport { useMarkNotificationsAsSeen } from '../hooks/useMarkNotificationAsSeen';\nimport { useStore } from '../hooks/useStore';\nimport { StoreProvider } from './store-provider.context';\nconst DEFAULT_STORES = [{ storeId: 'default_store' }];\nexport function NotificationsProvider({ children, stores = DEFAULT_STORES, }) {\n return (React.createElement(StoreProvider, { stores: stores },\n React.createElement(NotificationsProviderInternal, null, children)));\n}\nfunction NotificationsProviderInternal({ children }) {\n const { storeQuery, storeId, stores, setStore } = useStore();\n const { data: notificationsPages, hasNextPage, isLoading, isFetching, isFetchingNextPage, fetchNextPage, refetch, } = useFetchNotifications({ query: storeQuery });\n const { data: unseenCountData } = useUnseenCount();\n const { markNotificationsAs } = useMarkNotificationsAs();\n const { removeNotification } = useRemoveNotification();\n const { removeAllNotifications } = useRemoveAllNotifications();\n const { markNotificationsAsRead } = useMarkNotificationsAsRead();\n const { markNotificationsAsSeen } = useMarkNotificationsAsSeen();\n const markNotificationAsRead = useCallback((messageId) => markNotificationsAs({ messageId, seen: true, read: true }), [markNotificationsAs]);\n const markNotificationAsUnRead = useCallback((messageId) => markNotificationsAs({ messageId, seen: true, read: false }), [markNotificationsAs]);\n const removeMessage = useCallback((messageId) => removeNotification({ messageId }), [removeNotification]);\n const removeAllMessages = useCallback((feedId) => removeAllNotifications({ feedId }), [removeAllNotifications]);\n const markAllNotificationsAsRead = useCallback(() => {\n markNotificationsAsRead({ feedId: storeQuery === null || storeQuery === void 0 ? void 0 : storeQuery.feedIdentifier });\n }, [markNotificationsAsRead, storeQuery === null || storeQuery === void 0 ? void 0 : storeQuery.feedIdentifier]);\n const markAllNotificationsAsSeen = useCallback(() => {\n markNotificationsAsSeen({ feedId: storeQuery === null || storeQuery === void 0 ? void 0 : storeQuery.feedIdentifier });\n }, [markNotificationsAsSeen, storeQuery === null || storeQuery === void 0 ? void 0 : storeQuery.feedIdentifier]);\n const markNotificationAsSeen = useCallback((messageId) => markNotificationsAs({ messageId, seen: true, read: false }), [markNotificationsAs]);\n const markFetchedNotificationsAsRead = useCallback(() => {\n if (!notificationsPages) {\n return;\n }\n const messageIds = notificationsPages.pages.reduce((acc, paginatedResponse) => {\n const pageMessageIds = paginatedResponse.data.filter((message) => !message.read).map((message) => message._id);\n return [...acc, ...pageMessageIds];\n }, []);\n if (messageIds.length > 0) {\n markNotificationsAs({ messageId: messageIds, seen: true, read: true });\n }\n }, [markNotificationsAs, notificationsPages]);\n const markFetchedNotificationsAsSeen = useCallback(() => {\n if (!notificationsPages) {\n return;\n }\n const messageIds = notificationsPages.pages.reduce((acc, paginatedResponse) => {\n const pageMessagesIds = paginatedResponse.data\n .filter((message) => !message.seen && !message.read)\n .map((message) => message._id);\n return [...acc, ...pageMessagesIds];\n }, []);\n if (messageIds.length > 0) {\n markNotificationsAs({ messageId: messageIds, seen: true, read: false });\n }\n }, [markNotificationsAs, notificationsPages]);\n const notifications = useMemo(() => notificationsPages === null || notificationsPages === void 0 ? void 0 : notificationsPages.pages.reduce((acc, paginatedResponse) => [...acc, ...paginatedResponse.data], []), [notificationsPages]);\n const contextValue = useMemo(() => {\n var _a;\n return ({\n storeQuery,\n storeId,\n stores,\n unseenCount: (_a = unseenCountData === null || unseenCountData === void 0 ? void 0 : unseenCountData.count) !== null && _a !== void 0 ? _a : 0,\n notifications,\n hasNextPage,\n isLoading,\n isFetching,\n isFetchingNextPage,\n setStore,\n fetchNextPage,\n refetch,\n markNotificationAsSeen,\n markNotificationAsRead,\n markNotificationAsUnRead,\n markFetchedNotificationsAsRead,\n markFetchedNotificationsAsSeen,\n removeMessage,\n removeAllMessages,\n markAllNotificationsAsRead,\n markAllNotificationsAsSeen,\n });\n }, [\n storeQuery,\n storeId,\n stores,\n unseenCountData === null || unseenCountData === void 0 ? void 0 : unseenCountData.count,\n notifications,\n hasNextPage,\n isLoading,\n isFetching,\n isFetchingNextPage,\n setStore,\n fetchNextPage,\n refetch,\n markNotificationAsSeen,\n markNotificationAsRead,\n markNotificationAsUnRead,\n markFetchedNotificationsAsRead,\n markFetchedNotificationsAsSeen,\n removeMessage,\n removeAllMessages,\n markAllNotificationsAsRead,\n markAllNotificationsAsSeen,\n ]);\n return React.createElement(NotificationsContext.Provider, { value: contextValue }, children);\n}\n//# sourceMappingURL=notifications-provider.context.js.map","const NOTIFICATION_CENTER_TOKEN_KEY = 'widget_user_auth_token';\nconst isBrowser = typeof window !== 'undefined';\nexport const getToken = () => {\n if (isBrowser) {\n return localStorage.getItem(NOTIFICATION_CENTER_TOKEN_KEY);\n }\n return null;\n};\nexport const removeToken = (apiService) => {\n isBrowser && localStorage.removeItem(NOTIFICATION_CENTER_TOKEN_KEY);\n apiService.disposeAuthorizationToken();\n};\nexport const applyToken = ({ token = getToken(), apiService }) => {\n if (token) {\n isBrowser && localStorage.setItem(NOTIFICATION_CENTER_TOKEN_KEY, token);\n apiService.setAuthorizationToken(token);\n }\n else {\n removeToken(apiService);\n }\n};\n//# sourceMappingURL=token.js.map","import { useQuery } from '@tanstack/react-query';\nimport { SESSION_QUERY_KEY } from './queryKeys';\nimport { useNovuContext } from './useNovuContext';\nexport const useSession = ({ onSuccess }) => {\n const { apiService, applicationIdentifier, subscriberId, subscriberHash } = useNovuContext();\n const result = useQuery([...SESSION_QUERY_KEY, applicationIdentifier, subscriberId, subscriberHash], () => apiService.initializeSession(applicationIdentifier, subscriberId, subscriberHash), {\n enabled: !!applicationIdentifier && !!subscriberId,\n cacheTime: Infinity,\n staleTime: Infinity,\n onSuccess,\n onError: (error) => {\n // eslint-disable-next-line no-console\n console.error('Failed to initialize the session', error.message);\n },\n });\n return result;\n};\n//# sourceMappingURL=useSession.js.map","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data\n .arrayBuffer()\n .then(toArray)\n .then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, encoded => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, encodedPacket => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n }\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* READ_PAYLOAD */;\n }\n else if (state === 2 /* READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n }\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port !== 443)) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\nexport function createCookieJar() { }\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { createCookieJar, XHR as XMLHttpRequest, } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false,\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n if (this.opts.withCredentials) {\n this.cookieJar = createCookieJar();\n }\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, cookieJar: this.cookieJar }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n create() {\n var _a;\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, true);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this.opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(xhr);\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { nextTick, usingBrowserWebSocket, WebSocket, } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @param {Object} opts - connection options\n * @protected\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n get name() {\n return \"websocket\";\n }\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @private\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"./websocket-constructor.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n // @ts-ignore\n if (typeof WebTransport !== \"function\") {\n return;\n }\n // @ts-ignore\n this.transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n this.transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this.transport.ready.then(() => {\n this.transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this.writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this.writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this.writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this.transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: Polling,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { defaultBinaryType } from \"./transports/websocket-constructor.js\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts = {}) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\n \"polling\",\n \"websocket\",\n \"webtransport\",\n ];\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", (reason) => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this.upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState && this.opts.upgrade) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n this.resetPingTimeout();\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n // the timeout flag is optional\n const withErr = this.flags.timeout !== undefined || this._opts.ackTimeout !== undefined;\n return new Promise((resolve, reject) => {\n args.push((arg1, arg2) => {\n if (withErr) {\n return arg1 ? reject(arg1) : resolve(arg2);\n }\n else {\n return resolve(arg1);\n }\n });\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n this._drainQueue(true);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { useRef, useCallback } from 'react';\nimport { io } from 'socket.io-client';\nexport const useInitializeSocket = ({ socketUrl }) => {\n const socketRef = useRef(null);\n const disconnectSocket = useCallback(() => {\n if (socketRef.current) {\n if (socketRef.current.disconnect) {\n socketRef.current.disconnect();\n }\n socketRef.current = null;\n }\n }, [socketRef]);\n const initializeSocket = useCallback(({ token }) => {\n if (socketRef.current) {\n disconnectSocket();\n }\n if (token) {\n socketRef.current = io(socketUrl, {\n reconnectionDelayMax: 10000,\n transports: ['websocket'],\n auth: {\n token: `${token}`,\n },\n });\n socketRef.current.on('connect_error', (error) => {\n // eslint-disable-next-line no-console\n console.error(error.message);\n });\n }\n }, [socketRef, disconnectSocket]);\n return {\n socket: socketRef.current,\n initializeSocket,\n disconnectSocket,\n };\n};\n//# sourceMappingURL=useInitializeSocket.js.map","import React, { useEffect, useState, useMemo, useCallback } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { ApiService } from '@novu/client';\nimport { NotificationsProvider } from '../../store/notifications-provider.context';\nimport { NovuContext } from '../../store/novu-provider.context';\nimport { NovuI18NProvider } from '../../store/i18n.context';\nimport { StylesProvider } from '../../store/styles';\nimport { applyToken, removeToken } from '../../utils/token';\nimport { useSession } from '../../hooks/useSession';\nimport { useInitializeSocket } from '../../hooks/useInitializeSocket';\nimport { useFetchOrganization, useNovuContext } from '../../hooks';\nimport { SESSION_QUERY_KEY } from '../../hooks/queryKeys';\nexport const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n },\n },\n});\nconst DEFAULT_FETCHING_STRATEGY = {\n fetchUnseenCount: true,\n fetchOrganization: true,\n fetchNotifications: false,\n fetchUserPreferences: false,\n};\nexport function NovuProvider({ backendUrl: initialBackendUrl, socketUrl: initialSocketUrl, applicationIdentifier, subscriberId, subscriberHash, stores: initialStores, i18n, styles, initialFetchingStrategy = DEFAULT_FETCHING_STRATEGY, children, onLoad, }) {\n const backendUrl = initialBackendUrl !== null && initialBackendUrl !== void 0 ? initialBackendUrl : 'https://api.novu.co';\n const socketUrl = initialSocketUrl !== null && initialSocketUrl !== void 0 ? initialSocketUrl : 'https://ws.novu.co';\n const stores = initialStores !== null && initialStores !== void 0 ? initialStores : [{ storeId: 'default_store' }];\n const [fetchingStrategy, setFetchingStrategyState] = useState(Object.assign(Object.assign({}, DEFAULT_FETCHING_STRATEGY), initialFetchingStrategy));\n const [sessionInfo, setSessionInfo] = useState({\n isSessionInitialized: false,\n applicationIdentifier,\n subscriberId,\n subscriberHash,\n });\n const apiService = useMemo(() => {\n queryClient.clear();\n const service = new ApiService(backendUrl);\n applyToken({ apiService: service });\n return service;\n }, [backendUrl]);\n const { socket, initializeSocket, disconnectSocket } = useInitializeSocket({ socketUrl });\n const onSuccessfulSession = useCallback((newSession) => {\n applyToken({ apiService, token: newSession.token });\n initializeSocket(newSession);\n setSessionInfo((old) => (Object.assign(Object.assign({}, old), { isSessionInitialized: true })));\n }, [apiService, setSessionInfo, initializeSocket]);\n const setFetchingStrategy = useCallback((strategy) => setFetchingStrategyState((old) => (Object.assign(Object.assign({}, old), strategy))), [setFetchingStrategyState]);\n const logout = useCallback(() => {\n removeToken(apiService);\n disconnectSocket();\n setSessionInfo((old) => (Object.assign(Object.assign({}, old), { isSessionInitialized: false })));\n }, [setSessionInfo, disconnectSocket, apiService]);\n const contextValue = useMemo(() => ({\n backendUrl,\n socketUrl,\n applicationIdentifier: sessionInfo.applicationIdentifier,\n subscriberId: sessionInfo.subscriberId,\n subscriberHash: sessionInfo.subscriberHash,\n isSessionInitialized: sessionInfo.isSessionInitialized,\n apiService,\n socket,\n fetchingStrategy,\n setFetchingStrategy,\n onLoad,\n logout,\n }), [backendUrl, socketUrl, sessionInfo, apiService, socket, fetchingStrategy, setFetchingStrategy, onLoad, logout]);\n useEffect(() => disconnectSocket, [disconnectSocket]);\n useEffect(() => {\n setSessionInfo((old) => (Object.assign(Object.assign({}, old), { isSessionInitialized: false, applicationIdentifier,\n subscriberId,\n subscriberHash })));\n logout();\n queryClient.refetchQueries([...SESSION_QUERY_KEY, applicationIdentifier, subscriberId, subscriberHash]);\n }, [logout, subscriberId, applicationIdentifier, subscriberHash]);\n return (React.createElement(QueryClientProvider, { client: queryClient },\n React.createElement(NovuContext.Provider, { value: contextValue },\n React.createElement(SessionInitializer, { onSuccess: onSuccessfulSession },\n React.createElement(NotificationsProvider, { stores: stores },\n React.createElement(NovuI18NProvider, { i18n: i18n },\n React.createElement(StylesProvider, { styles: styles }, children)))))));\n}\nconst SessionInitializer = ({ children, onSuccess, }) => {\n const { onLoad } = useNovuContext();\n useSession({ onSuccess });\n useFetchOrganization({\n onSuccess: (organization) => {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad({ organization });\n },\n });\n useEffect(() => {\n if ('parentIFrame' in window) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n window.parentIFrame.autoResize(true);\n }\n }, []);\n return children;\n};\n//# sourceMappingURL=NovuProvider.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { ActionIcon } from '@mantine/core';\nimport styled from '@emotion/styled';\nimport { cx, css } from '@emotion/css';\nimport { colors } from '../../shared/config/colors';\nimport { Bell as BellIcon, GradientDot } from '../../shared/icons';\nimport { useNotifications } from '../../hooks';\nimport { getDefaultBellColors } from '../../utils/defaultTheme';\nimport { useStyles } from '../../store/styles';\nconst headerIconsSettings = { color: colors.B60, width: 30, height: 30 };\nexport function NotificationBell(props) {\n const { unseenCount } = useNotifications();\n const { bellColors } = getDefaultBellColors({\n bellColors: {\n unseenBadgeColor: props === null || props === void 0 ? void 0 : props.unseenBadgeColor,\n unseenBadgeBackgroundColor: props === null || props === void 0 ? void 0 : props.unseenBadgeBackgroundColor,\n },\n colorScheme: props === null || props === void 0 ? void 0 : props.colorScheme,\n });\n const [bellButtonStyles, bellDotStyles] = useStyles(['bellButton.root', 'bellButton.dot']);\n return (React.createElement(ActionIcon, { variant: \"transparent\", className: cx('nc-bell-button', css(bellButtonStyles)), \"data-test-id\": \"notification-bell\" },\n React.createElement(BellIcon, Object.assign({}, headerIconsSettings)),\n unseenCount > 0 ? (React.createElement(StyledGradientDot, { bellColors: bellColors, className: cx('nc-bell-button-dot', css(bellDotStyles)) })) : null));\n}\nexport function GradientDotWrap(_a) {\n var { bellColors } = _a, props = __rest(_a, [\"bellColors\"]);\n return React.createElement(GradientDot, Object.assign({}, props, { colors: bellColors }));\n}\nconst StyledGradientDot = styled(GradientDotWrap) `\n position: absolute;\n top: -3%;\n right: 10%;\n width: 12px;\n height: 12px;\n`;\n//# sourceMappingURL=NotificationBell.js.map","import { useSelector } from '@datagrid/state';\n\nimport { appStore } from '@/core/stores';\n\nexport const useAppInstanceId = () => {\n\treturn useSelector(() => appStore.appMeta.id.get());\n};\n\nexport const useClusterId = () => {\n\treturn useSelector(() => appStore.appMeta.clusterId.get());\n};\n","import { forwardRef, useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport type { ColorScheme, IMessage, INotificationCenterStyles } from '@novu/notification-center';\nimport {\n\tNotificationBell as NovuNotificationBell,\n\tNotificationCenter as NovuNotificationCenter,\n\tNovuProvider,\n\tuseNotifications,\n} from '@novu/notification-center';\nimport { useNavigate } from 'react-router-dom';\n\nimport { createStyles, Popover, useMantineTheme } from '@tf/ui';\n\nimport { useAppInstanceId } from '@/core/appMeta';\nimport { useCurrentUser } from '@/core/hooks';\nimport { appStore, configStore } from '@/core/stores';\n\nconst useNovuStyles = () => {\n\tconst theme = useMantineTheme();\n\n\tconst styles: INotificationCenterStyles = {\n\t\tbellButton: {\n\t\t\tdot: {\n\t\t\t\t'& > rect': {\n\t\t\t\t\tfill: theme.colors.brand[7],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tunseenBadge: {\n\t\t\troot: {\n\t\t\t\tbackground: theme.colors.brand[7],\n\t\t\t},\n\t\t},\n\t\tloader: {\n\t\t\troot: {\n\t\t\t\tstroke: theme.colors.brand[7],\n\t\t\t},\n\t\t},\n\t\tlayout: {\n\t\t\troot: {\n\t\t\t\tpaddingBottom: 0,\n\t\t\t\tborder: 0,\n\t\t\t\tborderRadius: 0,\n\t\t\t\tboxShadow: 'none',\n\t\t\t},\n\t\t},\n\t\theader: {\n\t\t\ttitle: {\n\t\t\t\tfontWeight: theme.headings.fontWeight,\n\t\t\t\tcolor: theme.colors.gray[8],\n\t\t\t},\n\t\t},\n\t\tswitch: {\n\t\t\tinput: {\n\t\t\t\tbackground: theme.colors.gray[3],\n\t\t\t\t'&:checked ~ label': {\n\t\t\t\t\tbackground: theme.colors.brand[7],\n\t\t\t\t},\n\t\t\t\t'&:not(checked) ~ label': {\n\t\t\t\t\tbackground: theme.colors.gray[3],\n\t\t\t\t},\n\t\t\t\t'&:disabled:not(:checked) ~ label': {\n\t\t\t\t\tbackground: theme.colors.gray[3],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tnotifications: {\n\t\t\tlistItem: {\n\t\t\t\tunread: {\n\t\t\t\t\t'&::before': {\n\t\t\t\t\t\tbackground: theme.colors.brand[7],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n\n\treturn { styles, colorScheme: 'light' };\n};\n\nconst usePopoverStyles = createStyles(() => ({\n\tdropdown: {\n\t\tpadding: 0,\n\t},\n}));\n\nconst NotificationBell = forwardRef void }>(({ onClick }, ref) => {\n\tconst { unseenCount } = useNotifications();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n});\n\nexport const NotificationCenter = () => {\n\tconst [isOpened, setIsOpened] = useState(false);\n\n\tconst onClose = () => setIsOpened(false);\n\n\tconst onToggle = () => setIsOpened((v) => !v);\n\n\tconst navigate = useNavigate();\n\n\tconst handleNotificationClick = (notification: IMessage) => {\n\t\tconst link = notification.cta.data.url;\n\n\t\tif (link) {\n\t\t\tnavigate(link);\n\t\t}\n\n\t\tonClose();\n\t};\n\n\tconst { styles, colorScheme } = useNovuStyles();\n\tconst { classes } = usePopoverStyles();\n\n\tconst config = useSelector(() => configStore.get());\n\tconst appInstanceId = useAppInstanceId();\n\tconst currentUserId = useCurrentUser().userId;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t
}\n\t\t\t\t\t\tonNotificationClick={handleNotificationClick}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport { SignOutButton, UserProfile } from '@clerk/clerk-react';\nimport { useSelector } from '@datagrid/state';\nimport * as Sentry from '@sentry/react';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { AppShell, Box, Button, createStyles, Icon, Menu, Modal } from '@tf/ui';\n\nimport { useCurrentUser } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { getDisplayName, useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { AppMenu } from '@/components/shared/AppLayout/AppMenu';\nimport { UserAvatar } from '@/components/shared/UserAvatar';\n\nimport { NotificationCenter } from '../NotificationCenter';\n\nconst useStyles = createStyles(({ breakpoints, colors }) => ({\n\troot: {\n\t\theight: 44,\n\t\tpadding: '0 1rem',\n\t\tborder: '1px solid #EAECF0',\n\t},\n\tinner: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmaxWidth: breakpoints.xl,\n\t\tmargin: '0 auto',\n\t},\n\tuserToolbar: {\n\t\theight: 44,\n\t\tfontWeight: 500,\n\t\tpadding: '0 1rem',\n\t\tmarginLeft: '1.2rem',\n\t\tcolor: colors.gray[6],\n\t\t'&:hover': {\n\t\t\tbackgroundColor: 'transparent !important',\n\t\t\tcolor: colors.dark[7],\n\t\t},\n\t},\n\tuserMenuItem: {\n\t\tfontSize: '.8rem',\n\t\theight: 36,\n\t},\n}));\n\nexport const AppHeader = () => {\n\tconst { classes } = useStyles();\n\tconst navigate = useNavigate();\n\tconst canManageUsers = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_USERS);\n\tconst canReviewAccount = useCurrentUserCapabilityCheck(UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA);\n\tconst canExportData = useCurrentUserCapabilityCheck(UserCapabilities.CAN_EXPORT_ACCOUNT_DATA);\n\tconst canManageApiTokens = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_API_TOKENS);\n\tconst user = useCurrentUser();\n\n\t// TODO: Remove ' ?? []' when CRA goes to prod; added as a safety measure if new frontend version will be deployed with old defs\n\tconst paletteItems = useSelector(() => appStore.defs.paletteItems.get()) ?? [];\n\n\tconst [isProfileOpen, setIsProfileOpen] = useState(false);\n\n\tconst logout = () => {\n\t\tSentry.setUser(null);\n\t\tnavigate('/');\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{getDisplayName(user)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{canManageUsers && (\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tto=\"/settings/users\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tWorkspace settings\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{canReviewAccount && paletteItems.includes('cra_calculation') ? (\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tto=\"/settings/cra\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tCRA settings\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\n\t\t\t\t\t\t{canManageApiTokens && (\n\t\t\t\t\t\t\t} to=\"/settings/tokens\">\n\t\t\t\t\t\t\t\tManage API tokens\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{canExportData && (\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tto=\"data-export\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tData export\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={() => setIsProfileOpen(!isProfileOpen)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tProfile settings\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={() => logout()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSign out\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t setIsProfileOpen(!isProfileOpen)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { SignedIn } from '@clerk/clerk-react';\nimport { Outlet } from 'react-router-dom';\n\nimport { AppShell } from '@tf/ui';\n\nimport { Affix } from './Affix';\nimport { AppHeader } from './AppHeader';\n\nexport const AppLayout = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\nimport { Avatar, TFText } from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { useOverviewData } from '@/core/api/overview';\n\ntype UserInfoWithId = BackendTypes.UserInfo & { id: string };\n\ninterface AssignManagerInput {\n\taccountId: number;\n\tselectedIds: string[];\n}\n\nconst ManagerAvatar = ({ item }: { item: UserInfoWithId }) => {\n\treturn (\n\t\t\n\t\t\t{S.abbreviate(item.username)}\n\t\t\n\t);\n};\n\nexport const AssignedManagersView: React.FC = (props) => {\n\tconst { data } = useOverviewData();\n\tconst listUsers = data?.listUsers;\n\n\tconst managers = listUsers ? [...listUsers.map((u) => ({ ...u, id: u.userId }))] : [];\n\tconst selectedManagers = managers.filter((m) => props.selectedIds.includes(m.userId));\n\n\tif (!selectedManagers.length) {\n\t\treturn (\n\t\t\t\n\t\t\t\tNot assigned\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{selectedManagers.map((manager) => (\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport type { FC } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, createStyles } from '@tf/ui';\nimport { fmt } from '@tf/utils';\n\nimport { getDisplayName } from '@/core/utils';\n\nconst useStyles = createStyles(({ radius, colors }) => ({\n\troot: {},\n\theader: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tpadding: '.25rem 1rem',\n\t\tfontSize: '.75rem',\n\t\tbackgroundColor: colors.gray[2],\n\t\tfontWeight: 500,\n\t},\n\tcontent: {\n\t\tpadding: '.75rem 1rem',\n\t},\n\tauthor: {\n\t\tflex: 1,\n\t},\n\tuserAvatar: {\n\t\tradius: radius.xl,\n\t\tmarginRight: '0.5rem',\n\t},\n\tname: {\n\t\tmarginRight: '0.5rem',\n\t\tcolor: colors.blue[8],\n\t\tfontWeight: 700,\n\t},\n}));\n\ninterface CommentItemProps {\n\tauthor?: BackendTypes.UserInfo;\n\tcreatedAt: string;\n\tbody: string;\n}\n\nexport const CommentItem: FC = ({ author, createdAt, body }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{author && {getDisplayName(author)}}\n\t\t\t\t{fmt.toDate(createdAt, { preset: 'full_date_with_time' })}\n\t\t\t\n\t\t\t\n\t\t\t\t{body}\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useRef, useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tButton,\n\tGroup,\n\tIcon,\n\tLoader,\n\tScrollArea,\n\tStack,\n\tTextInput,\n\tTFText,\n\tuseViewportSize,\n} from '@tf/ui';\n\nimport { CommentItem } from './CommentItem';\n\ninterface CommentsListProps {\n\tcomments: BackendTypes.ReviewFormComment[];\n\tisSubmitting: boolean;\n\tsendComment: (comment: string) => Promise;\n}\n\nexport const CommentsList: React.FC = ({ comments, isSubmitting, sendComment }) => {\n\tconst [comment, setComment] = useState('');\n\tconst viewport = useRef(null);\n\tconst { height } = useViewportSize();\n\tconst hasComments = comments?.length > 0;\n\n\tconst onSendComment = async () => {\n\t\ttry {\n\t\t\tawait sendComment(comment);\n\t\t\tsetComment('');\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{hasComments ? (\n\t\t\t\t 5 ? height / 1.5 : 'auto'}\n\t\t\t\t\tviewportRef={viewport}\n\t\t\t\t\ttype=\"always\"\n\t\t\t\t\tscrollbarSize={8}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{comments?.map((c) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\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\t\t ({\n\t\t\t\t\t\tcolor: colors.dark[2],\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tNo comments for this form\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t ({\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tpadding: '.75rem',\n\t\t\t\t\tborderTopStyle: 'solid',\n\t\t\t\t\tborderTopWidth: 1,\n\t\t\t\t\tborderTopColor: colors.gray[2],\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t setComment(e.currentTarget.value)}\n\t\t\t\t\tonKeyDown={async (e) => {\n\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tawait onSendComment();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tstyles={{\n\t\t\t\t\t\troot: { flex: 1 },\n\t\t\t\t\t\tinput: { borderRadius: '.25rem 0 0 .25rem' },\n\t\t\t\t\t}}\n\t\t\t\t\tradius=\"lg\"\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\t{isSubmitting ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tSending...\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t'Send'\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport { Box, Button, createStyles, Space, TFModals, TFText, Title } from '@tf/ui';\n\nexport interface ConfirmationModalProps extends Record {\n\tchildren?: React.ReactNode;\n\ttitle?: string;\n\tmessage?: string;\n\tconfirmText?: string;\n\tonConfirm: () => Promise | void;\n\tonCancel?: () => void;\n\tisSubmitDisabled?: boolean;\n\tconfirmButtonColor?: string;\n\taccountNameConfirmText?: string;\n}\n\nconst useStyles = createStyles((theme) => ({\n\theader: {\n\t\tpadding: '.75rem 1rem',\n\t\tborderBottomStyle: 'solid',\n\t\tborderBottomWidth: 1,\n\t\tborderBottomColor: theme.colors.gray[2],\n\t},\n\ttitle: {\n\t\tfontSize: '1.2rem',\n\t\tcolor: theme.colors.gray[7],\n\t\tfontWeight: 500,\n\t},\n\tcontent: {\n\t\tfontSize: '.875rem',\n\t\tpadding: '1rem',\n\t},\n\tfooter: {\n\t\tdisplay: 'flex',\n\t\tpadding: '.75rem',\n\t\tborderTopStyle: 'solid',\n\t\tborderTopWidth: 1,\n\t\tborderTopColor: theme.colors.gray[2],\n\t},\n\tbutton: {\n\t\tflex: 1,\n\t},\n}));\n\nexport const ConfirmationModal = ({\n\tchildren,\n\ttitle,\n\tconfirmText,\n\tonConfirm,\n\tonCancel,\n\tmessage,\n\tisSubmitDisabled,\n\tconfirmButtonColor,\n}: ConfirmationModalProps) => {\n\tconst { classes } = useStyles();\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t{message ?? 'Please confirm action'}\n\t\t\t\t{children}\n\t\t\t\n\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tonCancel?.();\n\t\t\t\t\t\tTFModals.closeAll();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tCancel\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\t\t\tawait onConfirm();\n\t\t\t\t\t\t\tTFModals.closeAll();\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{confirmText || 'Confirm'}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { createStyles, Icon, Menu, TFNotifier, TFText, UnstyledButton } from '@tf/ui';\n\nimport { useDisconnectEntityMutation } from '@/core/api/connections';\n\ninterface Props {\n\tparentEntityId: number;\n\tconnectionKind: string;\n\tentityId: number;\n}\n\nconst useStyles = createStyles(({ colors, radius }) => ({\n\tactionButton: {\n\t\twidth: 24,\n\t\theight: 24,\n\t\tmarginRight: '.1rem',\n\t\tborderRadius: radius.xl,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\t'&:hover': {\n\t\t\tbackgroundColor: colors.brand[0],\n\t\t},\n\t},\n}));\n\nexport const ConnectionMenu: React.FC = ({ parentEntityId, connectionKind, entityId }) => {\n\tconst { classes } = useStyles();\n\n\tconst disconnectEntityMutation = useDisconnectEntityMutation();\n\tconst handleRemoveConnection = () => {\n\t\tdisconnectEntityMutation.mutate(\n\t\t\t{\n\t\t\t\tparentEntityId,\n\t\t\t\tconnectionKind,\n\t\t\t\tentityId,\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tTFNotifier.success('Connection removed');\n\t\t\t\t},\n\t\t\t\tonError: () => {\n\t\t\t\t\tTFNotifier.error('Connection removing failed');\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t}\n\t\t\t\t\tp=\".375rem 1.5rem\"\n\t\t\t\t\tcolor=\"red\"\n\t\t\t\t\tonClick={handleRemoveConnection}\n\t\t\t\t>\n\t\t\t\t\tRemove connection\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { Badge, createStyles } from '@tf/ui';\n\nconst useStyles = createStyles({\n\twrapper: {\n\t\twidth: '16px',\n\t\theight: '16px',\n\t\tpadding: 0,\n\t\tfontSize: '.625rem',\n\t\tfontWeight: 600,\n\t\tcolor: 'white',\n\t\tbackground: '#1b63ee',\n\t},\n});\n\nexport const CounterBadge: React.FC<{ value: number }> = ({ value }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t{value}\n\t\t\n\t);\n};\n","import { Box, Stack, TFCard, Title } from '@tf/ui';\n\nimport { useAccountParams, useEntityConnectionLabels, useSelectedAccount } from '@/core/hooks';\nimport { AddConnectionButton } from '@/components/shared';\n\nexport const EmptyConnectionScreen = () => {\n\tconst { connectionKind } = useAccountParams();\n\tconst { meta } = useSelectedAccount();\n\n\tconst connectionLabels = useEntityConnectionLabels(meta.entityKind);\n\tconst label = connectionLabels[connectionKind].singular;\n\n\treturn (\n\t\t ({ margin: '.75rem auto', maxWidth: breakpoints.xl })}>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{label} not specified\n\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);\n};\n","import React from 'react';\n\nimport { Box, createStyles, TFText } from '@tf/ui';\n\nconst useStyles = createStyles(({ colors }) => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t\tmargin: '0 .5rem .5rem',\n\t},\n\tlabel: {\n\t\tcursor: 'default',\n\t\tuserSelect: 'none',\n\t\tfontSize: '.7rem',\n\t\tletterSpacing: '.04rem',\n\t\ttextTransform: 'uppercase',\n\t\tfontWeight: 600,\n\t\tcolor: colors.gray[4],\n\t},\n\trequiredMark: {\n\t\tmarginLeft: '.125rem',\n\t},\n}));\n\ninterface Props {\n\tlabel: string;\n\tisRequired: boolean;\n\tactions?: React.ReactNode;\n}\n\nexport const GroupLabel: React.FC = ({ label, isRequired, actions }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\t{isRequired ? (\n\t\t\t\t\t\n\t\t\t\t\t\t*\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\t{actions}\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport {\n\textractForms,\n\tgetFormHash,\n\tgetFormStatuses,\n\tgetOwnershipInfo,\n\tisFormDecisionRequired,\n} from '@tf/shared';\nimport { S } from '@tf/utils';\n\nimport { useAccountParams } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport {\n\tConnectionMenu,\n\tEntityKindIcon,\n\tFormStatusIndicator,\n\tSideMenu,\n\tSideMenuItem,\n} from '@/components/shared';\n\ninterface Props {\n\titem: BackendTypes.EntityConnectionData;\n\treview: ExtendedReviewContainer;\n\tparentEntity: BackendTypes.Entity;\n\tconnectionKind: string;\n\tisExternal: boolean;\n}\n\nexport const Item: React.FC = ({ item, review, parentEntity, connectionKind, isExternal }) => {\n\tconst params = useAccountParams();\n\tconst navigate = useNavigate();\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\n\tconst identities = [...item.listSegments, ...parentEntity.listSegments]\n\t\t.map((e) => e.SegmentIdentity)\n\t\t.filter((i) => i.graphId === item.graphNodeId || i.graphId === item.graphLinkId);\n\tconst forms = extractForms({ formDefs, segmentIdentities: identities });\n\tconst { name, entityKind } = review.listEntities.find((e) => e.graphNodeId === item.graphNodeId)!;\n\n\tconst basePath = [\n\t\t'/accounts',\n\t\tparams.accountId,\n\t\tS.slugify(params.connectionKind),\n\t\treview.graphLinkId,\n\t].join('/');\n\tconst navigateToForm = (form: ExtendedFormDefinition) => {\n\t\twindow.scrollTo(0, 0);\n\t\tconst hash = getFormHash(form);\n\t\tif (isExternal) {\n\t\t\treturn navigate(`${basePath}/entity/${parentEntity.graphNodeId}/${form.name}?hash=${hash}`);\n\t\t}\n\t\treturn navigate(`${basePath}/${form.name}?hash=${hash}`);\n\t};\n\tconst navigateToEntity = () => {\n\t\twindow.scrollTo(0, 0);\n\t\treturn navigate(`${basePath}/entity/${item.graphNodeId}`);\n\t};\n\n\tconst ownershipInfo = getOwnershipInfo(connectionKind, review.data, item.graphLinkId);\n\n\tconst label = `${name || 'Unknown'}${ownershipInfo ? ` (${ownershipInfo.OwnershipPercentage}%)` : ''}`;\n\n\treturn (\n\t\t\n\t\t\t}\n\t\t\t\tonClick={navigateToEntity}\n\t\t\t\trightSection={\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{forms.map((f) => {\n\t\t\t\tconst status = getFormStatuses({\n\t\t\t\t\tcontainers: review.listSegmentReviewContainers,\n\t\t\t\t\tsegmentIdentities: f.segmentIdentities,\n\t\t\t\t});\n\n\t\t\t\tlet isSelected = false;\n\t\t\t\tif (params.formKind === f.name && params.searchParams.hash) {\n\t\t\t\t\tconst hashIds = params.searchParams.hash.split('-').map(Number);\n\t\t\t\t\tconst graphIds = f.segmentIdentities.map((e) => e.graphId);\n\t\t\t\t\tisSelected = hashIds.every((e) => graphIds.includes(e));\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t navigateToForm(f)}\n\t\t\t\t\t\trightSection={\n\t\t\t\t\t\t\t\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);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, Stack } from '@tf/ui';\n\nimport { useEntityConnectionLabels } from '@/core/hooks';\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport { AddConnectionButton } from '@/components/shared';\n\nimport { GroupLabel } from '../GroupLabel';\n\nimport { Item } from './Item';\n\ninterface Props {\n\treview: ExtendedReviewContainer;\n\tfromEntity: BackendTypes.Entity;\n\tisExternal?: boolean;\n}\n\nexport const EntityConnections: React.FC = ({ fromEntity, review, isExternal }) => {\n\tconst connectionLabels = useEntityConnectionLabels(fromEntity.entityKind);\n\n\treturn (\n\t\t\n\t\t\t{fromEntity.listConnections\n\t\t\t\t.sort((a, b) => a.connectionKind.localeCompare(b.connectionKind))\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst count = item.listFromEntities.length;\n\t\t\t\t\tconst hasConnections = count > 0;\n\n\t\t\t\t\tconst { singular: label, plural: groupLabel } = connectionLabels[item.connectionKind];\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\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/>\n\t\t\t\t\t\t\t{hasConnections ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.listFromEntities.map((e) => {\n\t\t\t\t\t\t\t\t\t\tconst key = `${item.connectionKind}.${e.graphNodeId}`;\n\t\t\t\t\t\t\t\t\t\treturn (\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})}\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\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\n\t);\n};\n","import { Icon } from '@tf/ui';\n\ninterface Props {\n\tkind: string;\n\tsize?: number;\n}\n\nexport const EntityKindIcon: React.FC = ({ kind, size = 14 }) => {\n\tif (kind === 'INDIVIDUAL_ENTITY') {\n\t\treturn ;\n\t}\n\n\treturn ;\n};\n","import { TFCard, TFLoadingOverlay } from '@tf/ui';\n\ninterface Props {\n\ttext?: string;\n}\n\nexport const FormLoader: React.FC = ({ text }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { FormStatuses } from '@tf/shared';\nimport { Center, Icon, type Sx, Tooltip } from '@tf/ui';\n\ninterface Props {\n\treviewState: BackendTypes.ReviewState;\n\tisDecisionRequired: boolean;\n\tstatus: FormStatuses;\n\tsx?: Sx;\n}\n\nexport const FormStatusIndicator: React.FC = ({\n\tstatus,\n\treviewState,\n\tisDecisionRequired,\n\tsx,\n}) => {\n\tconst baseSx: Sx = sx || {\n\t\tcursor: 'default',\n\t\theight: 40,\n\t\tpadding: '0 .35rem',\n\t};\n\n\tif (reviewState !== 'DRAFT') {\n\t\tswitch (status.review) {\n\t\t\tcase 'ACCEPTED':\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t...baseSx,\n\t\t\t\t\t\t\t\tcolor: colors.green[8],\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase 'REJECTED':\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t...baseSx,\n\t\t\t\t\t\t\t\tcolor: colors.red[5],\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn isDecisionRequired ? (\n\t\t\t\t\t\n\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t...baseSx,\n\t\t\t\t\t\t\t\tcolor: colors.brand[4],\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : null;\n\t\t}\n\t}\n\n\treturn ;\n};\n\nexport const FormStatusIndicatorBase: React.FC<{\n\tstatus?: BackendTypes.FieldValidationStatus;\n\tsx?: Sx;\n}> = ({ status, sx }) => {\n\tconst baseSx: Sx = sx || {\n\t\tcursor: 'default',\n\t\theight: 40,\n\t\tpadding: '0 .35rem',\n\t};\n\tswitch (status) {\n\t\tcase 'OK':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t ({\n\t\t\t\t\t\t\t...baseSx,\n\t\t\t\t\t\t\tcolor: colors.brand[4],\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'VALIDATION_ERRORS':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t ({\n\t\t\t\t\t\t\t...baseSx,\n\t\t\t\t\t\t\tcolor: colors.red[5],\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'PENDING_FILL':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t ({\n\t\t\t\t\t\t\t...baseSx,\n\t\t\t\t\t\t\tcolor: colors.gray[4],\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import React from 'react';\n\nimport { createStyles, Flex, Icon, TFText, UnstyledButton } from '@tf/ui';\n\nconst useStyles = createStyles(({ colors }) => ({\n\taccountName: {\n\t\tfontSize: 13,\n\t\theight: 30,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.gray[9],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\ninterface Props {\n\ttextSize: string;\n\tonClick: () => void;\n\twithIcon?: boolean;\n}\n\nexport const HiddenAccountsNotice: React.FC = ({ textSize, onClick, withIcon = false }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t{withIcon && }\n\t\t\t\n\t\t\t\tSome accounts may be hidden in\n\t\t\t\n\t\t\t\n\t\t\t\tArchived status\n\t\t\t\n\t\t\n\t);\n};\n","import { Button, createStyles, Group } from '@tf/ui';\n\ninterface Props {\n\tonCancel?: () => void;\n\tonSubmit?: () => void;\n\tisDisabled?: boolean;\n\tisLoading?: boolean;\n\tisSticky?: boolean;\n\tcancelText?: string;\n\tsubmitText?: string;\n}\n\nconst useStyles = createStyles(({ colors }) => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\tmargin: '.5rem 0',\n\t\tpadding: '.75rem .75rem .25rem',\n\t\tborderTopStyle: 'solid',\n\t\tborderTopWidth: 1,\n\t\tborderTopColor: colors.gray[2],\n\t\tbackgroundColor: 'white',\n\t},\n\tsticky: {\n\t\tposition: 'sticky',\n\t\tbottom: 0,\n\t\tmargin: 0,\n\t\tpadding: '.75rem',\n\t\tzIndex: 100,\n\t},\n\tbutton: {\n\t\tflex: 1,\n\t},\n}));\n\nexport const ModalFooter: React.FC = ({\n\tonCancel,\n\tisDisabled,\n\tisLoading,\n\tonSubmit,\n\tsubmitText,\n\tcancelText,\n\tisSticky,\n}) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t{onCancel ? (\n\t\t\t\t\n\t\t\t) : null}\n\n\t\t\t\n\t\t\t\t{submitText || 'Submit'}\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { DateInput as DatePickerInput, Icon } from '@tf/ui';\nimport { D, fmt } from '@tf/utils';\n\nexport interface DateFieldProps {\n\tvalue?: string;\n\tlabel?: string;\n\tonChange: (value: string) => void;\n\tisReadOnly?: boolean;\n}\n\nexport const DateField: React.FC = ({ value, label, onChange, isReadOnly }) => {\n\tconst [date, setDate] = useState('');\n\n\tuseEffect(() => {\n\t\tif (value) {\n\t\t\tsetDate(value);\n\t\t}\n\t}, [value]);\n\n\treturn (\n\t\t {\n\t\t\t\tconst nextValue = v ? fmt.toDate(v, { preset: 'date_struct' }) : undefined;\n\t\t\t\tif (!nextValue) return;\n\t\t\t\tsetDate(nextValue);\n\t\t\t\tonChange(nextValue);\n\t\t\t}}\n\t\t\tpopoverProps={{ position: 'top-start', withinPortal: true }}\n\t\t\tleftSection={!isReadOnly && }\n\t\t/>\n\t);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { Select } from '@tf/ui';\n\nexport interface SelectFieldProps {\n\tvalue?: string;\n\tlabel?: string;\n\tonChange: (value: string) => void;\n\tisReadOnly?: boolean;\n\tisSearchable?: boolean;\n\toptions?: {\n\t\tvalue: string;\n\t\tlabel: string;\n\t}[];\n}\n\nexport const SelectField = ({\n\tvalue,\n\tlabel,\n\tonChange,\n\tisReadOnly,\n\tisSearchable,\n\toptions = [],\n}: SelectFieldProps) => {\n\tconst [selectedValue, setSelectedValue] = useState(null);\n\n\tuseEffect(() => {\n\t\tif (value) {\n\t\t\tsetSelectedValue(value);\n\t\t}\n\t}, [value]);\n\n\treturn (\n\t\t {\n\t\t\t\tsetSelectedValue(value);\n\t\t\t\tonChange(value as string);\n\t\t\t}}\n\t\t\tlabel={label}\n\t\t\tplaceholder={isReadOnly ? 'Selected nothing' : 'Select...'}\n\t\t\tdata={options}\n\t\t\treadOnly={isReadOnly}\n\t\t\tdata-readonly={isReadOnly}\n\t\t\tsearchable={isSearchable || options?.length > 5}\n\t\t/>\n\t);\n};\n","import React from 'react';\n\nimport { createStyles, Input, lighten, TextInput as MTextInput } from '@tf/ui';\n\nconst useStyles = createStyles(({ colors }) => ({\n\tdisabled: {\n\t\tinput: {\n\t\t\tcolor: colors.dark[9] + ' !important',\n\t\t\tcursor: 'text !important',\n\t\t\tborderRadius: '0',\n\t\t\tbackgroundColor: lighten(colors.gray[0], 0.2) + ' !important',\n\t\t\tborderColor: colors.gray[2],\n\t\t\tborderWidth: '0 0 1px 0',\n\t\t\topacity: '1 !important',\n\t\t\t'&:hover': {\n\t\t\t\tborderColor: colors.gray[2],\n\t\t\t\tborderWidth: '0 0 1px 0',\n\t\t\t},\n\t\t},\n\t},\n}));\n\nexport interface TextFieldProps {\n\tvalue?: string;\n\tlabel?: string;\n\tonChange: (value: string) => void;\n\tisReadOnly?: boolean;\n\tdisabled?: boolean;\n}\n\nexport const TextField: React.FC = ({\n\tvalue,\n\tlabel,\n\tonChange,\n\tisReadOnly,\n\tdisabled,\n}) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t onChange(event.target.value)}\n\t\t\t\treadOnly={isReadOnly}\n\t\t\t/>\n\t\t\n\t);\n};\n","import { DateField, SelectField, TextField } from './Fields';\n\nexport const ComponentsMap = {\n\tDateField,\n\tTextField,\n\tSelectField,\n};\n","import React from 'react';\n\nimport { Box, Stack } from '@tf/ui';\n\nimport { ComponentsMap } from './constants';\nimport type { FieldName, PrimitiveField } from './types';\n\ninterface Props {\n\tfields: PrimitiveField[];\n\tvalues?: Record;\n\tonChange: (fields: Record) => void;\n}\n\nexport const PrimitiveFormBuilder: React.FC = ({ fields, values, onChange }) => {\n\treturn (\n\t\t\n\t\t\t{fields?.map((field: PrimitiveField) => {\n\t\t\t\tconst Component = ComponentsMap[field.component as FieldName];\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tonChange({ ...values, [field.name]: value });\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdisabled={field.disabled}\n\t\t\t\t\t\t\t{...field.props}\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);\n};\n","export interface PrimitiveField {\n\tname: string;\n\tcomponent: FieldName;\n\tlabel?: string;\n\tdisabled?: boolean;\n\tprops?: {\n\t\toptions: { value: string; label: string }[];\n\t\tisSearchable?: boolean;\n\t\t[key: string]: any;\n\t};\n}\n\nexport enum FieldName {\n\tTextField = 'TextField',\n\tDateField = 'DateField',\n\tSelectField = 'SelectField',\n}\n","import { Box, Center, Icon, TFText } from '@tf/ui';\nimport { S } from '@tf/utils';\n\ninterface Props {\n\tvalue: string;\n}\n\nexport const PriorityView: React.FC = ({ value }) => {\n\treturn (\n\t\t ({\n\t\t\t\tdisplay: 'flex',\n\t\t\t\talignItems: 'center',\n\t\t\t\twidth: '4.5rem',\n\t\t\t\theight: '1.8rem',\n\t\t\t\t...(value === 'LOW' && { color: colors.gray[5] }),\n\t\t\t\t...(value === 'MEDIUM' && { color: colors.orange[5] }),\n\t\t\t\t...(value === 'HIGH' && { color: colors.red[5] }),\n\t\t\t})}\n\t\t>\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\n\t\t\t ({\n\t\t\t\t\tflex: 1,\n\t\t\t\t\tfontSize: 13,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{S.prettify(value)}\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { Box, type BoxProps, createStyles, TFCard, TFText } from '@tf/ui';\n\ninterface Props extends React.PropsWithChildren, BoxProps {\n\ttitle?: React.ReactNode;\n\tactions?: React.ReactNode;\n}\n\nconst useStyles = createStyles(() => ({\n\theader: {\n\t\tpadding: '.5em .25rem .5em 1.25rem',\n\t\tcursor: 'default',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport const SideMenu: React.FC = ({ children, title, actions, ...boxProps }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{title && (\n\t\t\t\t\t\n\t\t\t\t\t\t{title}\n\t\t\t\t\t\t{actions}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport {\n\tBox,\n\tcreateStyles,\n\tlighten,\n\tTFText,\n\tTooltip,\n\tUnstyledButton,\n\ttype UnstyledButtonProps,\n} from '@tf/ui';\n\ninterface Props extends UnstyledButtonProps {\n\tlabel: React.ReactNode;\n\tisSelected?: boolean;\n\tleftSection?: React.ReactNode;\n\trightSection?: React.ReactNode;\n\tonClick?: () => void;\n\ttooltip?: string;\n\tdisabled?: boolean;\n}\n\nconst useStyles = createStyles(({ colors }) => ({\n\troot: {\n\t\twidth: '100%',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tpadding: '0 .25rem 0 .75rem',\n\t\theight: 40,\n\t\tcolor: colors.brand[5],\n\n\t\tborderTopWidth: 1,\n\t\tborderTopStyle: 'solid',\n\t\tborderTopColor: colors.gray[2],\n\n\t\tborderLeftWidth: 2,\n\t\tborderLeftStyle: 'solid',\n\t\tborderLeftColor: 'transparent',\n\n\t\tborderCollapse: 'separate',\n\n\t\t'&:hover': {\n\t\t\tbackgroundColor: lighten(colors.brand[1], 0.9),\n\t\t\tborderLeftColor: lighten(colors.brand[6], 0.6),\n\t\t\tcolor: lighten(colors.brand[5], 0.2),\n\t\t},\n\n\t\t'&[data-selected=\"true\"]': {\n\t\t\tcursor: 'default',\n\t\t\tbackgroundColor: lighten(colors.brand[1], 0.7),\n\t\t\tborderLeftColor: lighten(colors.brand[6], 0.05),\n\t\t},\n\n\t\t'&:first-of-type': {\n\t\t\tborderTopWidth: 0,\n\t\t\tborderTopRightRadius: 8,\n\t\t\tborderTopLeftRadius: 8,\n\t\t},\n\n\t\t'&:last-of-type': {\n\t\t\tborderBottomRightRadius: 8,\n\t\t\tborderBottomLeftRadius: 8,\n\t\t},\n\t},\n\n\tbutton: {\n\t\theight: 40,\n\t\tflex: 1,\n\t\tfontSize: '.8rem',\n\t\tpadding: '0 0 0 .5rem !important',\n\t\tcolor: colors.gray[9],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t},\n\t\t'&[data-selected=\"true\"]': {\n\t\t\tcursor: 'default',\n\t\t\tcolor: `${colors.brand[6]} !important`,\n\t\t},\n\t},\n}));\n\nexport const SideMenuItem: React.FC = ({\n\tlabel,\n\tisSelected,\n\tleftSection,\n\trightSection,\n\ttooltip,\n\t...props\n}) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{leftSection}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{label}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{rightSection}\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate } from 'react-router-dom';\n\nimport { extractForms, getFormHash, getFormStatuses, isFormDecisionRequired } from '@tf/shared';\nimport { Box, Stack } from '@tf/ui';\nimport { S, T } from '@tf/utils';\n\nimport { useAccountParams, useEntityConnectionLabels, useSelectedAccount } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport { AddConnectionButton } from '@/components/shared/AddConnectionButton';\nimport { ConnectionMenu } from '@/components/shared/ConnectionMenu';\nimport { FormStatusIndicator } from '@/components/shared/FormStatusIndicator';\nimport { SideMenu, SideMenuItem } from '@/components/shared/SideMenu';\n\nimport { GroupLabel } from './GroupLabel';\n\nexport const ReviewGroupConnections: React.FC<{ review: ExtendedReviewContainer }> = ({ review }) => {\n\tconst { meta } = useSelectedAccount();\n\n\tconst params = useAccountParams();\n\tconst navigate = useNavigate();\n\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\tconst connectionLabels = useEntityConnectionLabels(meta.entityKind);\n\n\tconst accountEntity = review.listEntities.find((e) => e.graphNodeId === meta.graphNodeId);\n\tconst reviewGroup = accountEntity?.listConnections.find(\n\t\t(c) => c.isReview && c.connectionKind === review.connectionKind\n\t)?.reviewGroup;\n\tconst reviewGroupConnections = accountEntity?.listConnections.filter(\n\t\t(c) => !c.isReview && c.connectionKind !== review.connectionKind && c.reviewGroup === reviewGroup\n\t);\n\n\treturn (\n\t\t\n\t\t\t{reviewGroupConnections?.map((connection) => {\n\t\t\t\tconst { singular: label, plural: groupLabel } = connectionLabels[connection.connectionKind];\n\t\t\t\tconst hasConnections = connection.listFromEntities.length > 0;\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\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/>\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{connection.listFromEntities.map((connectionData) => {\n\t\t\t\t\t\t\t\tconst entity = review.listEntities.find(\n\t\t\t\t\t\t\t\t\t(e) => e.graphNodeId === connectionData.graphNodeId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tT.assertNotNullish(entity, 'entity not found in review');\n\n\t\t\t\t\t\t\t\tconst forms = extractForms({\n\t\t\t\t\t\t\t\t\tformDefs,\n\t\t\t\t\t\t\t\t\tsegmentIdentities: [\n\t\t\t\t\t\t\t\t\t\t...entity.listSegments.map((s) => s.SegmentIdentity),\n\t\t\t\t\t\t\t\t\t\t...review.listSegmentReviewContainers\n\t\t\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\ts.identity.graphId === connectionData.graphNodeId ||\n\t\t\t\t\t\t\t\t\t\t\t\t\ts.identity.graphId === connectionData.graphLinkId\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.map((s) => s.identity),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treturn (\n\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\t{forms.map((form) => (\n\t\t\t\t\t\t\t\t\t\t\t\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\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigate(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`/accounts/${meta.graphNodeId}/${S.slugify(review.connectionKind)}/${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treview.graphLinkId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}/${form.name}?hash=${getFormHash(form)}`\n\t\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}}\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\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t{!hasConnections ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : null}\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);\n};\n","import { Link } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Alert, Anchor, Box, List, Popover, TFText } from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { getLabel } from '@/core/utils';\n\ninterface Props {\n\taccount?: BackendTypes.OverviewAccount;\n\tchildren?: React.ReactNode;\n}\n\nconst colors: Record = {\n\tDRAFT: 'dimmed',\n\tREADY_TO_REVIEW: 'brand',\n\tUNDER_REVIEW: 'brand',\n\tUPDATE_REQUIRED: 'orange',\n\tVERIFIED: 'green',\n};\n\nexport const ReviewState: React.FC = (props) => {\n\tif (!props.account) {\n\t\treturn null;\n\t}\n\n\tconst { reviewStates, ...account } = props.account;\n\tconst mainReview = reviewStates.find((r) => r.connectionKind === 'APPLICANT');\n\tconst additionalReviews = reviewStates.filter((r) => r.connectionKind !== 'APPLICANT');\n\n\tif (!mainReview) {\n\t\treturn null;\n\t}\n\n\tconst label = getLabel(mainReview.state, { kind: 'reviewState' });\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{props.children ? (\n\t\t\t\t\t\tprops.children\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tApplicant review: {label}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{additionalReviews.length > 0 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tOther reviews:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{additionalReviews.map(({ connectionKind, connectionId, state, name }, index) => {\n\t\t\t\t\t\t\t\t\tconst key = `${connectionId}.${index}`;\n\t\t\t\t\t\t\t\t\tconst path = ['/accounts', account.nodeId, S.slugify(connectionKind)].join('/');\n\n\t\t\t\t\t\t\t\t\treturn (\n\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\t{name || 'Unknown entity'} ({getLabel(state, { kind: 'reviewState' })})\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);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\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);\n};\n","import { Box, createStyles } from '@tf/ui';\n\nconst useStyles = createStyles(({ breakpoints }) => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\tmaxWidth: breakpoints.xl,\n\t\tmargin: '.75rem auto',\n\t},\n\tcontent: {\n\t\tflex: 1,\n\t},\n}));\n\ninterface Props {\n\tmenu: React.ReactNode;\n\tchildren: React.ReactNode;\n}\n\nexport const SideMenuLayout: React.FC = ({ children, menu }) => {\n\tconst { classes } = useStyles();\n\treturn (\n\t\t\n\t\t\t{menu}\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport type { ReactElement } from 'react';\n\nimport { Box, createStyles, Flex, lighten, TFText, UnstyledButton } from '@tf/ui';\n\nconst useStyles = createStyles(({ colors, radius }) => ({\n\tbutton: {\n\t\tminWidth: '100px',\n\t\tborderRadius: radius.sm,\n\t\tfontSize: '0.75rem',\n\t\tpadding: '0.25rem 0.35rem',\n\t\ttransition: 'background-color 0.3s ease',\n\t},\n\n\tbuttonDisabled: {\n\t\tcursor: 'default !important',\n\t},\n\n\tbadge: {\n\t\tcolor: colors.gray[6],\n\t\twidth: '100%',\n\t\t'&::before': {\n\t\t\tcontent: '\"\"',\n\t\t\twidth: '0.5rem',\n\t\t\theight: '0.5rem',\n\t\t\tborderRadius: '50%',\n\t\t\tverticalAlign: 'middle',\n\t\t},\n\t},\n\n\tred: { background: colors.red[1] },\n\tredHover: { '&:hover': { background: lighten(colors.red[2], 0.3) } },\n\tredBadge: { '&::before': { background: colors.red[5] } },\n\torange: { background: colors.orange[1] },\n\torangeHover: { '&:hover': { background: colors.orange[2] } },\n\torangeBadge: { '&::before': { background: colors.orange[5] } },\n\tyellow: { background: colors.yellow[1], '&:hover': { background: colors.yellow[2] } },\n\tyellowHover: { '&:hover': { background: colors.yellow[2] } },\n\tyellowBadge: { '&::before': { background: colors.yellow[5] } },\n\tgreen: { background: colors.green[1] },\n\tgreenHover: { '&:hover': { background: colors.green[2] } },\n\tgreenBadge: { '&::before': { background: colors.green[5] } },\n\tblue: { background: colors.blue[1] },\n\tblueHover: { '&:hover': { background: colors.blue[2] } },\n\tblueBadge: { '&::before': { background: colors.blue[5] } },\n\tindigo: { background: colors.indigo[1] },\n\tindigoHover: { '&:hover': { background: lighten(colors.indigo[2], 0.3) } },\n\tindigoBadge: { '&::before': { background: colors.indigo[5] } },\n\tdimmed: { background: colors.gray[2] },\n\tdimmedHover: { '&:hover': { background: lighten(colors.gray[3], 0.4) } },\n\tdimmedBadge: { '&::before': { background: colors.gray[4] } },\n}));\n\nexport enum TFBadgeColors {\n\tRED = 'red',\n\tORANGE = 'orange',\n\tYELLOW = 'yellow',\n\tGREEN = 'green',\n\tBLUE = 'blue',\n\tINDIGO = 'indigo',\n\tDIMMED = 'dimmed',\n}\n\ninterface Props {\n\ttext: ReactElement | string;\n\tcolor: TFBadgeColors;\n\ticon?: ReactElement | string;\n\tonClick?: () => void;\n\tisBackground?: boolean;\n\twithBackground?: boolean;\n\tdisabled?: boolean;\n}\n\nexport const TFBadge: React.FC = ({\n\ttext,\n\tcolor,\n\ticon,\n\tonClick,\n\tdisabled,\n\tisBackground = true,\n\twithBackground = true,\n}) => {\n\tconst { classes } = useStyles();\n\n\tconst content = (\n\t\t\n\t\t\t{color ? (\n\t\t\t\t// eslint-disable-next-line sonarjs/no-nested-template-literals\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{text}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t{text}\n\t\t\t)}\n\t\t\t\n\t\t\t\t{icon ? icon : null}\n\t\t\t\n\t\t\n\t);\n\n\tif (!withBackground) {\n\t\treturn content;\n\t}\n\n\tif (onClick) {\n\t\treturn (\n\t\t\t\n\t\t\t\t{content}\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{content}\n\t\t\n\t);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\n\nimport { BackendClient } from '@tf/api';\nimport { Box, Modal, TFText } from '@tf/ui';\n\nimport { GraphQLClient } from '@/core/api/client/graphql';\nimport { useGetTenantToken } from '@/core/hooks';\nimport { configStore } from '@/core/stores';\nimport { ModalFooter } from '@/components/shared';\n\ninterface Props {\n\tdefinitionsRevision: string;\n}\n\nexport const BackendClientInitialization: React.FC = ({ definitionsRevision }) => {\n\tconst config = useSelector(() => configStore.get());\n\n\tconst getTenantToken = useGetTenantToken();\n\n\tconst [isModalOpened, setModalOpened] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst fetchWithStatusCheck = async (input: RequestInfo | URL, init?: RequestInit) => {\n\t\t\tconst token = await getTenantToken();\n\t\t\tconst response = await fetch(input, {\n\t\t\t\t...init,\n\t\t\t\theaders: {\n\t\t\t\t\t...init?.headers,\n\t\t\t\t\tAuthorization: `Bearer ${token?.value}`,\n\t\t\t\t\t'Configuration-Revision': definitionsRevision,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (response.status === 409) {\n\t\t\t\tsetModalOpened(true);\n\t\t\t}\n\n\t\t\treturn response;\n\t\t};\n\n\t\tBackendClient.init(config.urls.backend, fetchWithStatusCheck);\n\n\t\tGraphQLClient.init(\n\t\t\t`${config.urls.api}/graphql`,\n\t\t\tasync (input: RequestInfo | URL, init?: RequestInit) => {\n\t\t\t\tconst token = await getTenantToken();\n\t\t\t\treturn fetch(input, {\n\t\t\t\t\t...init,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t...init?.headers,\n\t\t\t\t\t\tAuthorization: `Bearer ${token?.value}`,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}, [config.urls.backend, config.urls.api, definitionsRevision, getTenantToken]);\n\n\tconst onReload = async () => {\n\t\twindow.location.reload();\n\t};\n\n\treturn (\n\t\t {}}>\n\t\t\t\n\t\t\t\tPlease reload page to get new version\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n","import { useEffect } from 'react';\n\nimport { useAuth } from '@clerk/clerk-react';\nimport { useSelector } from '@datagrid/state';\nimport type React from 'react';\n\nimport { PublicApiClient } from '@tf/api';\n\nimport { configStore } from '@/core/stores';\n\nexport const PublicApiClientInitialization: React.FC = () => {\n\tconst config = useSelector(() => configStore.get());\n\tconst { getToken } = useAuth();\n\n\tuseEffect(() => {\n\t\tconst fetchWithStatusCheck = async (input: RequestInfo | URL, init?: RequestInit) => {\n\t\t\tconst token = await getToken({ template: 'trustform' });\n\t\t\treturn await fetch(input, {\n\t\t\t\t...init,\n\t\t\t\theaders: {\n\t\t\t\t\t...init?.headers,\n\t\t\t\t\tAuthorization: `Bearer ${token}`,\n\t\t\t\t},\n\t\t\t});\n\t\t};\n\n\t\tPublicApiClient.init(config.urls.api, fetchWithStatusCheck);\n\t}, [config.urls.api, getToken]);\n\n\treturn null;\n};\n","import type { CSTypes } from '@tf/api';\n\ntype VisualModifierField = {\n\tlabel: string;\n\torder?: number;\n\tpreset?: string;\n\tvalue?: string;\n};\n\ntype VisualModifier = {\n\t[key: string]: VisualModifierField;\n};\n\nconst visualModifiers: Record = {\n\tAdhocSearchPersonParams: {\n\t\tfirstName: {\n\t\t\tlabel: 'First name',\n\t\t\torder: 1,\n\t\t},\n\t\tmiddleName: {\n\t\t\tlabel: 'Middle name',\n\t\t\torder: 2,\n\t\t},\n\t\tlastName: {\n\t\t\tlabel: 'Last name',\n\t\t\torder: 3,\n\t\t},\n\t\tbirthDate: {\n\t\t\tlabel: 'Birth date',\n\t\t\torder: 4,\n\t\t\tpreset: 'date',\n\t\t},\n\t},\n\tOverviewAccountPepStatus: {\n\t\tPEP: {\n\t\t\tlabel: 'PEP',\n\t\t\tvalue: 'PEP',\n\t\t},\n\t\tNOT_PEP: {\n\t\t\tlabel: 'Not PEP',\n\t\t\tvalue: 'NOT_PEP',\n\t\t},\n\t\tFAMILY_MEMBER: {\n\t\t\tlabel: 'Family member',\n\t\t\tvalue: 'FAMILY_MEMBER',\n\t\t},\n\t\tCLOSE_ASSOCIATE: {\n\t\t\tlabel: 'Close associate',\n\t\t\tvalue: 'CLOSE_ASSOCIATE',\n\t\t},\n\t\tDEPEPED: {\n\t\t\tlabel: 'De-PEPed',\n\t\t\tvalue: 'DEPEPED',\n\t\t},\n\t\tDONT_KNOW: {\n\t\t\tlabel: \"Don't know\",\n\t\t\tvalue: 'DONT_KNOW',\n\t\t},\n\t},\n\tAdhocSearchEntityParams: {\n\t\tentityName: {\n\t\t\tlabel: 'Entity name',\n\t\t},\n\t},\n};\n\nexport const applyVisualModifierPatches = (definitions: CSTypes.GetFrontendIrResponse) => {\n\tconst defs = structuredClone(definitions);\n\n\tconst structs = defs.structs;\n\tconst options = defs.options;\n\tfor (const modifierKey of Object.keys(visualModifiers)) {\n\t\tconst structure = structs[modifierKey];\n\t\tconst optionsToModify = options[modifierKey];\n\n\t\tif (structure) {\n\t\t\tconst { fields } = structure;\n\n\t\t\tfor (const field of fields) {\n\t\t\t\tfield.visual = {\n\t\t\t\t\t...field.visual,\n\t\t\t\t\t...visualModifiers[modifierKey][field.name],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfields.sort((a, b) => {\n\t\t\t\tconst weightA = a.visual?.order || 0;\n\t\t\t\tconst weightB = b.visual?.order || 0;\n\t\t\t\treturn weightA - weightB;\n\t\t\t});\n\t\t}\n\n\t\tconst modifiedOptions: any[] = [];\n\t\tif (optionsToModify) {\n\t\t\tfor (const option of optionsToModify) {\n\t\t\t\tif (visualModifiers[modifierKey][option.value]) {\n\t\t\t\t\tmodifiedOptions.push(visualModifiers[modifierKey][option.value]);\n\t\t\t\t} else {\n\t\t\t\t\tmodifiedOptions.push(option);\n\t\t\t\t}\n\t\t\t}\n\t\t\toptions[modifierKey] = [...modifiedOptions];\n\t\t}\n\t}\n\n\treturn defs;\n};\n","import React, { useEffect } from 'react';\n\nimport { useAuth } from '@clerk/clerk-react';\nimport { observer, useSelector } from '@datagrid/state';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { BackendNoAuthClient, type BackendTypes, CSClient, TDMClient } from '@tf/api';\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { useGetTenantToken } from '@/core/hooks';\nimport { getDefinitionsQuery, getProcessingScriptsQuery, getTenantConfigQuery } from '@/core/queries';\nimport type { AppStoreType } from '@/core/stores';\nimport { appStore, configStore } from '@/core/stores';\n\nimport { BackendClientInitialization } from './BackendClientInitialization';\nimport { PublicApiClientInitialization } from './PublicApiClientInitialization';\nimport { applyVisualModifierPatches } from './visualModifiers';\n\nconst useInitialDataQuery = () => {\n\tconst config = useSelector(() => configStore.get());\n\tconst getTenantToken = useGetTenantToken({ withLogger: true });\n\n\treturn useQuery({\n\t\tqueryKey: ['initialData'],\n\t\tenabled: false,\n\t\tqueryFn: async () => {\n\t\t\tTDMClient.init(config.urls.tdm);\n\t\t\tCSClient.init(config.urls.cs);\n\t\t\tBackendNoAuthClient.init(config.urls.backend);\n\n\t\t\tconst token = await getTenantToken();\n\t\t\tif (!token) {\n\t\t\t\tappStore.set((prev: AppStoreType) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tstate: 'no_permissions',\n\t\t\t\t}));\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst tenantConfig = await getTenantConfigQuery(token.tenant);\n\n\t\t\tconst [appMeta, defs, processingScripts] = await Promise.all([\n\t\t\t\tBackendNoAuthClient.getInstance()\n\t\t\t\t\t.appMeta({\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\tAuthorization: `Bearer ${token?.value}`,\n\t\t\t\t\t\t\t'Configuration-Revision': tenantConfig.revision,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.then((res: any) => res.json()) as Promise,\n\t\t\t\tgetDefinitionsQuery(tenantConfig.revision, tenantConfig.default_locale),\n\t\t\t\tgetProcessingScriptsQuery(tenantConfig.revision),\n\t\t\t]);\n\n\t\t\tconst modifiedDefs = applyVisualModifierPatches(defs);\n\n\t\t\treturn {\n\t\t\t\ttenant: token.tenant,\n\t\t\t\tcurrency: tenantConfig.currency,\n\t\t\t\tdefaultLocale: tenantConfig.default_locale,\n\t\t\t\tappMeta,\n\t\t\t\tdefs: modifiedDefs,\n\t\t\t\tdefsRevision: tenantConfig.revision,\n\t\t\t\tprocessingScripts,\n\t\t\t};\n\t\t},\n\t});\n};\n\nexport const StateProvider: React.FC = observer(function StateProvider({\n\tchildren,\n}) {\n\tconst { isSignedIn } = useAuth();\n\tconst initialDataQuery = useInitialDataQuery();\n\n\tuseEffect(() => {\n\t\tif (isSignedIn) {\n\t\t\tinitialDataQuery.refetch().then((result) => {\n\t\t\t\tif (!result.data) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { tenant, appMeta, defs, processingScripts, currency, defaultLocale } = result.data;\n\n\t\t\t\tappStore.set((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tstate: 'authorized',\n\t\t\t\t\tappMeta,\n\t\t\t\t\ttenant,\n\t\t\t\t\tcurrency,\n\t\t\t\t\tdefaultLocale,\n\t\t\t\t\tdefs,\n\t\t\t\t\tprocessingScripts,\n\t\t\t\t}));\n\t\t\t});\n\t\t} else {\n\t\t\tappStore.set((prev) => ({ ...prev, state: 'unauthorized' }));\n\t\t}\n\t\t// Extra deps cause more refetches\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [isSignedIn]);\n\n\tif (!isSignedIn) {\n\t\treturn <>{children};\n\t}\n\n\tif (initialDataQuery.status === 'error') {\n\t\treturn
Error, please reload the page
;\n\t}\n\n\tif (initialDataQuery.isPending) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n});\n","import React from 'react';\n\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\n\nimport { DatesProvider } from '@tf/ui';\n\nimport { AuthProvider } from './AuthProvider';\nimport { ConfigProvider } from './ConfigProvider';\nimport { I18nProvider } from './I18nProvider';\nimport { StateProvider } from './StateProvider';\n\nconst queryClient = new QueryClient({\n\tdefaultOptions: {\n\t\tqueries: {\n\t\t\tretry: false,\n\t\t\trefetchOnWindowFocus: false,\n\t\t},\n\t},\n});\n\nexport const AppProvider: React.FC = ({ children }) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{/* TODO: update order after splitting StateProvider */}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{children}\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);\n};\n","export var SUCCESS_MESSAGE = 'Event tracked successfully';\nexport var UNEXPECTED_ERROR_MESSAGE = 'Unexpected error occurred';\nexport var MAX_RETRIES_EXCEEDED_MESSAGE = 'Event rejected due to exceeded retry count';\nexport var OPT_OUT_MESSAGE = 'Event skipped due to optOut config';\nexport var MISSING_API_KEY_MESSAGE = 'Event rejected due to missing API key';\nexport var INVALID_API_KEY = 'Invalid API key';\nexport var CLIENT_NOT_INITIALIZED = 'Client not initialized';\n//# sourceMappingURL=messages.js.map","export var IdentifyOperation;\n(function (IdentifyOperation) {\n // Base Operations to set values\n IdentifyOperation[\"SET\"] = \"$set\";\n IdentifyOperation[\"SET_ONCE\"] = \"$setOnce\";\n // Operations around modifying existing values\n IdentifyOperation[\"ADD\"] = \"$add\";\n IdentifyOperation[\"APPEND\"] = \"$append\";\n IdentifyOperation[\"PREPEND\"] = \"$prepend\";\n IdentifyOperation[\"REMOVE\"] = \"$remove\";\n // Operations around appending values *if* they aren't present\n IdentifyOperation[\"PREINSERT\"] = \"$preInsert\";\n IdentifyOperation[\"POSTINSERT\"] = \"$postInsert\";\n // Operations around removing properties/values\n IdentifyOperation[\"UNSET\"] = \"$unset\";\n IdentifyOperation[\"CLEAR_ALL\"] = \"$clearAll\";\n})(IdentifyOperation || (IdentifyOperation = {}));\nexport var RevenueProperty;\n(function (RevenueProperty) {\n RevenueProperty[\"REVENUE_PRODUCT_ID\"] = \"$productId\";\n RevenueProperty[\"REVENUE_QUANTITY\"] = \"$quantity\";\n RevenueProperty[\"REVENUE_PRICE\"] = \"$price\";\n RevenueProperty[\"REVENUE_TYPE\"] = \"$revenueType\";\n RevenueProperty[\"REVENUE\"] = \"$revenue\";\n})(RevenueProperty || (RevenueProperty = {}));\n/**\n * Strings that have special meaning when used as an event's type\n * and have different specifications.\n */\nexport var SpecialEventType;\n(function (SpecialEventType) {\n SpecialEventType[\"IDENTIFY\"] = \"$identify\";\n SpecialEventType[\"GROUP_IDENTIFY\"] = \"$groupidentify\";\n SpecialEventType[\"REVENUE\"] = \"revenue_amount\";\n})(SpecialEventType || (SpecialEventType = {}));\n//# sourceMappingURL=event.js.map","export var LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"None\"] = 0] = \"None\";\n LogLevel[LogLevel[\"Error\"] = 1] = \"Error\";\n LogLevel[LogLevel[\"Warn\"] = 2] = \"Warn\";\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\n LogLevel[LogLevel[\"Debug\"] = 4] = \"Debug\";\n})(LogLevel || (LogLevel = {}));\n//# sourceMappingURL=logger.js.map","/** The status of an event. */\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent successfully. */\n Status[\"Success\"] = \"success\";\n /** A user or device in the payload is currently rate limited and should try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The sent payload was too large to be processed. */\n Status[\"PayloadTooLarge\"] = \"payload_too_large\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n /** a server or client side error occuring when a request takes too long and is cancelled */\n Status[\"Timeout\"] = \"Timeout\";\n /** NodeJS runtime environment error.. E.g. disconnected from network */\n Status[\"SystemError\"] = \"SystemError\";\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map","export var OfflineDisabled = null;\n//# sourceMappingURL=offline.js.map","import { Status } from '@amplitude/analytics-types';\nexport var buildResult = function (event, code, message) {\n if (code === void 0) { code = 0; }\n if (message === void 0) { message = Status.Unknown; }\n return { event: event, code: code, message: message };\n};\n//# sourceMappingURL=result-builder.js.map","/**\n * Source: [jed's gist]{@link https://gist.github.com/982883}.\n * Returns a random v4 UUID of the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,\n * where each x is replaced with a random hexadecimal digit from 0 to f, and\n * y is replaced with a random hexadecimal digit from 8 to b.\n * Used to generate UUIDs for deviceIds.\n * @private\n */\nexport var UUID = function (a) {\n return a // if the placeholder was passed, return\n ? // a random number from 0 to 15\n (a ^ // unless b is 8,\n ((Math.random() * // in which case\n 16) >> // a random number from\n (a / 4))) // 8 to 11\n .toString(16) // in hexadecimal\n : // or otherwise a concatenated string:\n (String(1e7) + // 10000000 +\n String(-1e3) + // -1000 +\n String(-4e3) + // -4000 +\n String(-8e3) + // -80000000 +\n String(-1e11)) // -100000000000,\n .replace(\n // replacing\n /[018]/g, // zeroes, ones, and eights with\n UUID);\n};\n//# sourceMappingURL=uuid.js.map","import { __assign, __awaiter, __generator, __read, __values } from \"tslib\";\nimport { buildResult } from './utils/result-builder';\nimport { UUID } from './utils/uuid';\nvar Timeline = /** @class */ (function () {\n function Timeline(client) {\n this.client = client;\n this.queue = [];\n // Flag to guarantee one schedule apply is running\n this.applying = false;\n // Flag indicates whether timeline is ready to process event\n // Events collected before timeline is ready will stay in the queue to be processed later\n this.plugins = [];\n }\n Timeline.prototype.register = function (plugin, config) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n plugin.name = (_a = plugin.name) !== null && _a !== void 0 ? _a : UUID();\n plugin.type = (_b = plugin.type) !== null && _b !== void 0 ? _b : 'enrichment';\n return [4 /*yield*/, ((_c = plugin.setup) === null || _c === void 0 ? void 0 : _c.call(plugin, config, this.client))];\n case 1:\n _d.sent();\n this.plugins.push(plugin);\n return [2 /*return*/];\n }\n });\n });\n };\n Timeline.prototype.deregister = function (pluginName) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var index, plugin;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n index = this.plugins.findIndex(function (plugin) { return plugin.name === pluginName; });\n plugin = this.plugins[index];\n this.plugins.splice(index, 1);\n return [4 /*yield*/, ((_a = plugin.teardown) === null || _a === void 0 ? void 0 : _a.call(plugin))];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Timeline.prototype.reset = function (client) {\n this.applying = false;\n var plugins = this.plugins;\n plugins.map(function (plugin) { var _a; return (_a = plugin.teardown) === null || _a === void 0 ? void 0 : _a.call(plugin); });\n this.plugins = [];\n this.client = client;\n };\n Timeline.prototype.push = function (event) {\n var _this = this;\n return new Promise(function (resolve) {\n _this.queue.push([event, resolve]);\n _this.scheduleApply(0);\n });\n };\n Timeline.prototype.scheduleApply = function (timeout) {\n var _this = this;\n if (this.applying)\n return;\n this.applying = true;\n setTimeout(function () {\n void _this.apply(_this.queue.shift()).then(function () {\n _this.applying = false;\n if (_this.queue.length > 0) {\n _this.scheduleApply(0);\n }\n });\n }, timeout);\n };\n Timeline.prototype.apply = function (item) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, event, _b, resolve, before, before_1, before_1_1, plugin, e, e_1_1, enrichment, enrichment_1, enrichment_1_1, plugin, e, e_2_1, destination, executeDestinations;\n var e_1, _c, e_2, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!item) {\n return [2 /*return*/];\n }\n _a = __read(item, 1), event = _a[0];\n _b = __read(item, 2), resolve = _b[1];\n before = this.plugins.filter(function (plugin) { return plugin.type === 'before'; });\n _e.label = 1;\n case 1:\n _e.trys.push([1, 6, 7, 8]);\n before_1 = __values(before), before_1_1 = before_1.next();\n _e.label = 2;\n case 2:\n if (!!before_1_1.done) return [3 /*break*/, 5];\n plugin = before_1_1.value;\n /* istanbul ignore if */\n if (!plugin.execute) {\n // do nothing\n return [3 /*break*/, 4];\n }\n return [4 /*yield*/, plugin.execute(__assign({}, event))];\n case 3:\n e = _e.sent();\n if (e === null) {\n resolve({ event: event, code: 0, message: '' });\n return [2 /*return*/];\n }\n else {\n event = e;\n }\n _e.label = 4;\n case 4:\n before_1_1 = before_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_1_1 = _e.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (before_1_1 && !before_1_1.done && (_c = before_1.return)) _c.call(before_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 8:\n enrichment = this.plugins.filter(function (plugin) { return plugin.type === 'enrichment' || plugin.type === undefined; });\n _e.label = 9;\n case 9:\n _e.trys.push([9, 14, 15, 16]);\n enrichment_1 = __values(enrichment), enrichment_1_1 = enrichment_1.next();\n _e.label = 10;\n case 10:\n if (!!enrichment_1_1.done) return [3 /*break*/, 13];\n plugin = enrichment_1_1.value;\n /* istanbul ignore if */\n if (!plugin.execute) {\n // do nothing\n return [3 /*break*/, 12];\n }\n return [4 /*yield*/, plugin.execute(__assign({}, event))];\n case 11:\n e = _e.sent();\n if (e === null) {\n resolve({ event: event, code: 0, message: '' });\n return [2 /*return*/];\n }\n else {\n event = e;\n }\n _e.label = 12;\n case 12:\n enrichment_1_1 = enrichment_1.next();\n return [3 /*break*/, 10];\n case 13: return [3 /*break*/, 16];\n case 14:\n e_2_1 = _e.sent();\n e_2 = { error: e_2_1 };\n return [3 /*break*/, 16];\n case 15:\n try {\n if (enrichment_1_1 && !enrichment_1_1.done && (_d = enrichment_1.return)) _d.call(enrichment_1);\n }\n finally { if (e_2) throw e_2.error; }\n return [7 /*endfinally*/];\n case 16:\n destination = this.plugins.filter(function (plugin) { return plugin.type === 'destination'; });\n executeDestinations = destination.map(function (plugin) {\n var eventClone = __assign({}, event);\n return plugin.execute(eventClone).catch(function (e) { return buildResult(eventClone, 0, String(e)); });\n });\n void Promise.all(executeDestinations).then(function (_a) {\n var _b = __read(_a, 1), result = _b[0];\n var resolveResult = result || buildResult(event, 100, 'Event not tracked, no destination plugins on the instance');\n resolve(resolveResult);\n });\n return [2 /*return*/];\n }\n });\n });\n };\n Timeline.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var queue, destination, executeDestinations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n queue = this.queue;\n this.queue = [];\n return [4 /*yield*/, Promise.all(queue.map(function (item) { return _this.apply(item); }))];\n case 1:\n _a.sent();\n destination = this.plugins.filter(function (plugin) { return plugin.type === 'destination'; });\n executeDestinations = destination.map(function (plugin) {\n return plugin.flush && plugin.flush();\n });\n return [4 /*yield*/, Promise.all(executeDestinations)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return Timeline;\n}());\nexport { Timeline };\n//# sourceMappingURL=timeline.js.map","export var UNSET_VALUE = '-';\nexport var AMPLITUDE_PREFIX = 'AMP';\nexport var STORAGE_PREFIX = \"\".concat(AMPLITUDE_PREFIX, \"_unsent\");\nexport var AMPLITUDE_SERVER_URL = 'https://api2.amplitude.com/2/httpapi';\nexport var EU_AMPLITUDE_SERVER_URL = 'https://api.eu.amplitude.com/2/httpapi';\nexport var AMPLITUDE_BATCH_SERVER_URL = 'https://api2.amplitude.com/batch';\nexport var EU_AMPLITUDE_BATCH_SERVER_URL = 'https://api.eu.amplitude.com/batch';\n//# sourceMappingURL=constants.js.map","import { __values } from \"tslib\";\nvar MAX_PROPERTY_KEYS = 1000;\nexport var isValidObject = function (properties) {\n if (Object.keys(properties).length > MAX_PROPERTY_KEYS) {\n return false;\n }\n for (var key in properties) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var value = properties[key];\n if (!isValidProperties(key, value))\n return false;\n }\n return true;\n};\nexport var isValidProperties = function (property, value) {\n var e_1, _a;\n if (typeof property !== 'string')\n return false;\n if (Array.isArray(value)) {\n var isValid = true;\n try {\n for (var value_1 = __values(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {\n var valueElement = value_1_1.value;\n if (Array.isArray(valueElement)) {\n return false;\n }\n else if (typeof valueElement === 'object') {\n isValid = isValid && isValidObject(valueElement);\n }\n else if (!['number', 'string'].includes(typeof valueElement)) {\n return false;\n }\n if (!isValid) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (value_1_1 && !value_1_1.done && (_a = value_1.return)) _a.call(value_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else if (value === null || value === undefined) {\n return false;\n }\n else if (typeof value === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return isValidObject(value);\n }\n else if (!['number', 'string', 'boolean'].includes(typeof value)) {\n return false;\n }\n return true;\n};\n//# sourceMappingURL=valid-properties.js.map","import { __assign } from \"tslib\";\nimport { IdentifyOperation, } from '@amplitude/analytics-types';\nimport { UNSET_VALUE } from './constants';\nimport { isValidProperties } from './utils/valid-properties';\nvar Identify = /** @class */ (function () {\n function Identify() {\n this._propertySet = new Set();\n this._properties = {};\n }\n Identify.prototype.getUserProperties = function () {\n return __assign({}, this._properties);\n };\n Identify.prototype.set = function (property, value) {\n this._safeSet(IdentifyOperation.SET, property, value);\n return this;\n };\n Identify.prototype.setOnce = function (property, value) {\n this._safeSet(IdentifyOperation.SET_ONCE, property, value);\n return this;\n };\n Identify.prototype.append = function (property, value) {\n this._safeSet(IdentifyOperation.APPEND, property, value);\n return this;\n };\n Identify.prototype.prepend = function (property, value) {\n this._safeSet(IdentifyOperation.PREPEND, property, value);\n return this;\n };\n Identify.prototype.postInsert = function (property, value) {\n this._safeSet(IdentifyOperation.POSTINSERT, property, value);\n return this;\n };\n Identify.prototype.preInsert = function (property, value) {\n this._safeSet(IdentifyOperation.PREINSERT, property, value);\n return this;\n };\n Identify.prototype.remove = function (property, value) {\n this._safeSet(IdentifyOperation.REMOVE, property, value);\n return this;\n };\n Identify.prototype.add = function (property, value) {\n this._safeSet(IdentifyOperation.ADD, property, value);\n return this;\n };\n Identify.prototype.unset = function (property) {\n this._safeSet(IdentifyOperation.UNSET, property, UNSET_VALUE);\n return this;\n };\n Identify.prototype.clearAll = function () {\n // When clear all happens, all properties are unset. Reset the entire object.\n this._properties = {};\n this._properties[IdentifyOperation.CLEAR_ALL] = UNSET_VALUE;\n return this;\n };\n // Returns whether or not this set actually worked.\n Identify.prototype._safeSet = function (operation, property, value) {\n if (this._validate(operation, property, value)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var userPropertyMap = this._properties[operation];\n if (userPropertyMap === undefined) {\n userPropertyMap = {};\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._properties[operation] = userPropertyMap;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n userPropertyMap[property] = value;\n this._propertySet.add(property);\n return true;\n }\n return false;\n };\n Identify.prototype._validate = function (operation, property, value) {\n if (this._properties[IdentifyOperation.CLEAR_ALL] !== undefined) {\n // clear all already set. Skipping operation;\n return false;\n }\n if (this._propertySet.has(property)) {\n // Property already used. Skipping operation\n return false;\n }\n if (operation === IdentifyOperation.ADD) {\n return typeof value === 'number';\n }\n if (operation !== IdentifyOperation.UNSET && operation !== IdentifyOperation.REMOVE) {\n return isValidProperties(property, value);\n }\n return true;\n };\n return Identify;\n}());\nexport { Identify };\n//# sourceMappingURL=identify.js.map","import { __assign } from \"tslib\";\nimport { SpecialEventType, } from '@amplitude/analytics-types';\nimport { Identify } from '../identify';\nexport var createTrackEvent = function (eventInput, eventProperties, eventOptions) {\n var baseEvent = typeof eventInput === 'string' ? { event_type: eventInput } : eventInput;\n return __assign(__assign(__assign({}, baseEvent), eventOptions), (eventProperties && { event_properties: eventProperties }));\n};\nexport var createIdentifyEvent = function (identify, eventOptions) {\n var identifyEvent = __assign(__assign({}, eventOptions), { event_type: SpecialEventType.IDENTIFY, user_properties: identify.getUserProperties() });\n return identifyEvent;\n};\nexport var createGroupIdentifyEvent = function (groupType, groupName, identify, eventOptions) {\n var _a;\n var groupIdentify = __assign(__assign({}, eventOptions), { event_type: SpecialEventType.GROUP_IDENTIFY, group_properties: identify.getUserProperties(), groups: (_a = {},\n _a[groupType] = groupName,\n _a) });\n return groupIdentify;\n};\nexport var createGroupEvent = function (groupType, groupName, eventOptions) {\n var _a;\n var identify = new Identify();\n identify.set(groupType, groupName);\n var groupEvent = __assign(__assign({}, eventOptions), { event_type: SpecialEventType.IDENTIFY, user_properties: identify.getUserProperties(), groups: (_a = {},\n _a[groupType] = groupName,\n _a) });\n return groupEvent;\n};\nexport var createRevenueEvent = function (revenue, eventOptions) {\n return __assign(__assign({}, eventOptions), { event_type: SpecialEventType.REVENUE, event_properties: revenue.getEventProperties() });\n};\n//# sourceMappingURL=event-builder.js.map","export var returnWrapper = function (awaitable) { return ({\n promise: awaitable || Promise.resolve(),\n}); };\n//# sourceMappingURL=return-wrapper.js.map","import { __awaiter, __generator, __values } from \"tslib\";\nimport { CLIENT_NOT_INITIALIZED, OPT_OUT_MESSAGE } from './messages';\nimport { Timeline } from './timeline';\nimport { createGroupEvent, createGroupIdentifyEvent, createIdentifyEvent, createRevenueEvent, createTrackEvent, } from './utils/event-builder';\nimport { buildResult } from './utils/result-builder';\nimport { returnWrapper } from './utils/return-wrapper';\nvar AmplitudeCore = /** @class */ (function () {\n function AmplitudeCore(name) {\n if (name === void 0) { name = '$default'; }\n this.initializing = false;\n this.isReady = false;\n this.q = [];\n this.dispatchQ = [];\n this.logEvent = this.track.bind(this);\n this.timeline = new Timeline(this);\n this.name = name;\n }\n AmplitudeCore.prototype._init = function (config) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.config = config;\n this.timeline.reset(this);\n return [4 /*yield*/, this.runQueuedFunctions('q')];\n case 1:\n _a.sent();\n this.isReady = true;\n return [2 /*return*/];\n }\n });\n });\n };\n AmplitudeCore.prototype.runQueuedFunctions = function (queueName) {\n return __awaiter(this, void 0, void 0, function () {\n var queuedFunctions, queuedFunctions_1, queuedFunctions_1_1, queuedFunction, val, e_1_1;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n queuedFunctions = this[queueName];\n this[queueName] = [];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 8, 9, 10]);\n queuedFunctions_1 = __values(queuedFunctions), queuedFunctions_1_1 = queuedFunctions_1.next();\n _b.label = 2;\n case 2:\n if (!!queuedFunctions_1_1.done) return [3 /*break*/, 7];\n queuedFunction = queuedFunctions_1_1.value;\n val = queuedFunction();\n if (!(val && 'promise' in val)) return [3 /*break*/, 4];\n return [4 /*yield*/, val.promise];\n case 3:\n _b.sent();\n return [3 /*break*/, 6];\n case 4: return [4 /*yield*/, val];\n case 5:\n _b.sent();\n _b.label = 6;\n case 6:\n queuedFunctions_1_1 = queuedFunctions_1.next();\n return [3 /*break*/, 2];\n case 7: return [3 /*break*/, 10];\n case 8:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 10];\n case 9:\n try {\n if (queuedFunctions_1_1 && !queuedFunctions_1_1.done && (_a = queuedFunctions_1.return)) _a.call(queuedFunctions_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 10:\n if (!this[queueName].length) return [3 /*break*/, 12];\n return [4 /*yield*/, this.runQueuedFunctions(queueName)];\n case 11:\n _b.sent();\n _b.label = 12;\n case 12: return [2 /*return*/];\n }\n });\n });\n };\n AmplitudeCore.prototype.track = function (eventInput, eventProperties, eventOptions) {\n var event = createTrackEvent(eventInput, eventProperties, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.identify = function (identify, eventOptions) {\n var event = createIdentifyEvent(identify, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.groupIdentify = function (groupType, groupName, identify, eventOptions) {\n var event = createGroupIdentifyEvent(groupType, groupName, identify, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.setGroup = function (groupType, groupName, eventOptions) {\n var event = createGroupEvent(groupType, groupName, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.revenue = function (revenue, eventOptions) {\n var event = createRevenueEvent(revenue, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.add = function (plugin) {\n if (!this.isReady) {\n this.q.push(this._addPlugin.bind(this, plugin));\n return returnWrapper();\n }\n return this._addPlugin(plugin);\n };\n AmplitudeCore.prototype._addPlugin = function (plugin) {\n return returnWrapper(this.timeline.register(plugin, this.config));\n };\n AmplitudeCore.prototype.remove = function (pluginName) {\n if (!this.isReady) {\n this.q.push(this._removePlugin.bind(this, pluginName));\n return returnWrapper();\n }\n return this._removePlugin(pluginName);\n };\n AmplitudeCore.prototype._removePlugin = function (pluginName) {\n return returnWrapper(this.timeline.deregister(pluginName));\n };\n AmplitudeCore.prototype.dispatchWithCallback = function (event, callback) {\n if (!this.isReady) {\n return callback(buildResult(event, 0, CLIENT_NOT_INITIALIZED));\n }\n void this.process(event).then(callback);\n };\n AmplitudeCore.prototype.dispatch = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (!this.isReady) {\n return [2 /*return*/, new Promise(function (resolve) {\n _this.dispatchQ.push(_this.dispatchWithCallback.bind(_this, event, resolve));\n })];\n }\n return [2 /*return*/, this.process(event)];\n });\n });\n };\n AmplitudeCore.prototype.process = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n var result, e_2, message, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n // skip event processing if opt out\n if (this.config.optOut) {\n return [2 /*return*/, buildResult(event, 0, OPT_OUT_MESSAGE)];\n }\n return [4 /*yield*/, this.timeline.push(event)];\n case 1:\n result = _a.sent();\n result.code === 200\n ? this.config.loggerProvider.log(result.message)\n : result.code === 100\n ? this.config.loggerProvider.warn(result.message)\n : this.config.loggerProvider.error(result.message);\n return [2 /*return*/, result];\n case 2:\n e_2 = _a.sent();\n message = String(e_2);\n this.config.loggerProvider.error(message);\n result = buildResult(event, 0, message);\n return [2 /*return*/, result];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AmplitudeCore.prototype.setOptOut = function (optOut) {\n if (!this.isReady) {\n this.q.push(this._setOptOut.bind(this, Boolean(optOut)));\n return;\n }\n this._setOptOut(optOut);\n };\n AmplitudeCore.prototype._setOptOut = function (optOut) {\n this.config.optOut = Boolean(optOut);\n };\n AmplitudeCore.prototype.flush = function () {\n return returnWrapper(this.timeline.flush());\n };\n return AmplitudeCore;\n}());\nexport { AmplitudeCore };\n//# sourceMappingURL=core-client.js.map","import { __assign } from \"tslib\";\nimport { RevenueProperty, } from '@amplitude/analytics-types';\nimport { isValidObject } from './utils/valid-properties';\nvar Revenue = /** @class */ (function () {\n function Revenue() {\n this.productId = '';\n this.quantity = 1;\n this.price = 0.0;\n }\n Revenue.prototype.setProductId = function (productId) {\n this.productId = productId;\n return this;\n };\n Revenue.prototype.setQuantity = function (quantity) {\n if (quantity > 0) {\n this.quantity = quantity;\n }\n return this;\n };\n Revenue.prototype.setPrice = function (price) {\n this.price = price;\n return this;\n };\n Revenue.prototype.setRevenueType = function (revenueType) {\n this.revenueType = revenueType;\n return this;\n };\n Revenue.prototype.setRevenue = function (revenue) {\n this.revenue = revenue;\n return this;\n };\n Revenue.prototype.setEventProperties = function (properties) {\n if (isValidObject(properties)) {\n this.properties = properties;\n }\n return this;\n };\n Revenue.prototype.getEventProperties = function () {\n var eventProperties = this.properties ? __assign({}, this.properties) : {};\n eventProperties[RevenueProperty.REVENUE_PRODUCT_ID] = this.productId;\n eventProperties[RevenueProperty.REVENUE_QUANTITY] = this.quantity;\n eventProperties[RevenueProperty.REVENUE_PRICE] = this.price;\n eventProperties[RevenueProperty.REVENUE_TYPE] = this.revenueType;\n eventProperties[RevenueProperty.REVENUE] = this.revenue;\n return eventProperties;\n };\n return Revenue;\n}());\nexport { Revenue };\n//# sourceMappingURL=revenue.js.map","// Creates an array of elements split into groups the length of size.\n// If array can't be split evenly, the final chunk will be the remaining elements.\n// Works similary as https://lodash.com/docs/4.17.15#chunk\nexport var chunk = function (arr, size) {\n var chunkSize = Math.max(size, 1);\n return arr.reduce(function (chunks, element, index) {\n var chunkIndex = Math.floor(index / chunkSize);\n if (!chunks[chunkIndex]) {\n chunks[chunkIndex] = [];\n }\n chunks[chunkIndex].push(element);\n return chunks;\n }, []);\n};\n//# sourceMappingURL=chunk.js.map","import { LogLevel } from '@amplitude/analytics-types';\nvar PREFIX = 'Amplitude Logger ';\nvar Logger = /** @class */ (function () {\n function Logger() {\n this.logLevel = LogLevel.None;\n }\n Logger.prototype.disable = function () {\n this.logLevel = LogLevel.None;\n };\n Logger.prototype.enable = function (logLevel) {\n if (logLevel === void 0) { logLevel = LogLevel.Warn; }\n this.logLevel = logLevel;\n };\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Verbose) {\n return;\n }\n console.log(\"\".concat(PREFIX, \"[Log]: \").concat(args.join(' ')));\n };\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Warn) {\n return;\n }\n console.warn(\"\".concat(PREFIX, \"[Warn]: \").concat(args.join(' ')));\n };\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Error) {\n return;\n }\n console.error(\"\".concat(PREFIX, \"[Error]: \").concat(args.join(' ')));\n };\n Logger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Debug) {\n return;\n }\n // console.debug output is hidden by default in chrome\n console.log(\"\".concat(PREFIX, \"[Debug]: \").concat(args.join(' ')));\n };\n return Logger;\n}());\nexport { Logger };\n//# sourceMappingURL=logger.js.map","import { LogLevel, } from '@amplitude/analytics-types';\nimport { AMPLITUDE_SERVER_URL, AMPLITUDE_BATCH_SERVER_URL, EU_AMPLITUDE_SERVER_URL, EU_AMPLITUDE_BATCH_SERVER_URL, } from './constants';\nimport { Logger } from './logger';\nexport var getDefaultConfig = function () { return ({\n flushMaxRetries: 12,\n flushQueueSize: 200,\n flushIntervalMillis: 10000,\n instanceName: '$default_instance',\n logLevel: LogLevel.Warn,\n loggerProvider: new Logger(),\n offline: false,\n optOut: false,\n serverUrl: AMPLITUDE_SERVER_URL,\n serverZone: 'US',\n useBatch: false,\n}); };\nvar Config = /** @class */ (function () {\n function Config(options) {\n var _a, _b, _c, _d;\n this._optOut = false;\n var defaultConfig = getDefaultConfig();\n this.apiKey = options.apiKey;\n this.flushIntervalMillis = (_a = options.flushIntervalMillis) !== null && _a !== void 0 ? _a : defaultConfig.flushIntervalMillis;\n this.flushMaxRetries = options.flushMaxRetries || defaultConfig.flushMaxRetries;\n this.flushQueueSize = options.flushQueueSize || defaultConfig.flushQueueSize;\n this.instanceName = options.instanceName || defaultConfig.instanceName;\n this.loggerProvider = options.loggerProvider || defaultConfig.loggerProvider;\n this.logLevel = (_b = options.logLevel) !== null && _b !== void 0 ? _b : defaultConfig.logLevel;\n this.minIdLength = options.minIdLength;\n this.plan = options.plan;\n this.ingestionMetadata = options.ingestionMetadata;\n this.offline = options.offline !== undefined ? options.offline : defaultConfig.offline;\n this.optOut = (_c = options.optOut) !== null && _c !== void 0 ? _c : defaultConfig.optOut;\n this.serverUrl = options.serverUrl;\n this.serverZone = options.serverZone || defaultConfig.serverZone;\n this.storageProvider = options.storageProvider;\n this.transportProvider = options.transportProvider;\n this.useBatch = (_d = options.useBatch) !== null && _d !== void 0 ? _d : defaultConfig.useBatch;\n this.loggerProvider.enable(this.logLevel);\n var serverConfig = createServerConfig(options.serverUrl, options.serverZone, options.useBatch);\n this.serverZone = serverConfig.serverZone;\n this.serverUrl = serverConfig.serverUrl;\n }\n Object.defineProperty(Config.prototype, \"optOut\", {\n get: function () {\n return this._optOut;\n },\n set: function (optOut) {\n this._optOut = optOut;\n },\n enumerable: false,\n configurable: true\n });\n return Config;\n}());\nexport { Config };\nexport var getServerUrl = function (serverZone, useBatch) {\n if (serverZone === 'EU') {\n return useBatch ? EU_AMPLITUDE_BATCH_SERVER_URL : EU_AMPLITUDE_SERVER_URL;\n }\n return useBatch ? AMPLITUDE_BATCH_SERVER_URL : AMPLITUDE_SERVER_URL;\n};\nexport var createServerConfig = function (serverUrl, serverZone, useBatch) {\n if (serverUrl === void 0) { serverUrl = ''; }\n if (serverZone === void 0) { serverZone = getDefaultConfig().serverZone; }\n if (useBatch === void 0) { useBatch = getDefaultConfig().useBatch; }\n if (serverUrl) {\n return { serverUrl: serverUrl, serverZone: undefined };\n }\n var _serverZone = ['US', 'EU'].includes(serverZone) ? serverZone : getDefaultConfig().serverZone;\n return {\n serverZone: _serverZone,\n serverUrl: getServerUrl(_serverZone, useBatch),\n };\n};\n//# sourceMappingURL=config.js.map","import { __awaiter, __generator, __read, __rest, __spreadArray } from \"tslib\";\nimport { Status, } from '@amplitude/analytics-types';\nimport { INVALID_API_KEY, MAX_RETRIES_EXCEEDED_MESSAGE, MISSING_API_KEY_MESSAGE, SUCCESS_MESSAGE, UNEXPECTED_ERROR_MESSAGE, } from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\nimport { UUID } from '../utils/uuid';\nfunction getErrorMessage(error) {\n if (error instanceof Error)\n return error.message;\n return String(error);\n}\nexport function getResponseBodyString(res) {\n var responseBodyString = '';\n try {\n if ('body' in res) {\n responseBodyString = JSON.stringify(res.body, null, 2);\n }\n }\n catch (_a) {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n return responseBodyString;\n}\nvar Destination = /** @class */ (function () {\n function Destination() {\n this.name = 'amplitude';\n this.type = 'destination';\n this.retryTimeout = 1000;\n this.throttleTimeout = 30000;\n this.storageKey = '';\n this.scheduled = null;\n this.queue = [];\n }\n Destination.prototype.setup = function (config) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var unsent;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.config = config;\n this.storageKey = \"\".concat(STORAGE_PREFIX, \"_\").concat(this.config.apiKey.substring(0, 10));\n return [4 /*yield*/, ((_a = this.config.storageProvider) === null || _a === void 0 ? void 0 : _a.get(this.storageKey))];\n case 1:\n unsent = _b.sent();\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map(function (event) { return _this.execute(event); })).catch();\n }\n return [2 /*return*/, Promise.resolve(undefined)];\n }\n });\n });\n };\n Destination.prototype.execute = function (event) {\n var _this = this;\n // Assign insert_id for dropping invalid event later\n if (!event.insert_id) {\n event.insert_id = UUID();\n }\n return new Promise(function (resolve) {\n var context = {\n event: event,\n attempts: 0,\n callback: function (result) { return resolve(result); },\n timeout: 0,\n };\n void _this.addToQueue(context);\n });\n };\n Destination.prototype.getTryableList = function (list) {\n var _this = this;\n return list.filter(function (context) {\n if (context.attempts < _this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void _this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n };\n Destination.prototype.scheduleTryable = function (list, shouldAddToQueue) {\n var _this = this;\n if (shouldAddToQueue === void 0) { shouldAddToQueue = false; }\n list.forEach(function (context) {\n // Only need to concat the queue for the first time\n if (shouldAddToQueue) {\n _this.queue = _this.queue.concat(context);\n }\n if (context.timeout === 0) {\n _this.schedule(_this.config.flushIntervalMillis);\n return;\n }\n setTimeout(function () {\n context.timeout = 0;\n _this.schedule(0);\n }, context.timeout);\n });\n };\n Destination.prototype.addToQueue = function () {\n var list = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n list[_i] = arguments[_i];\n }\n var tryable = this.getTryableList(list);\n this.scheduleTryable(tryable, true);\n this.saveEvents();\n };\n Destination.prototype.schedule = function (timeout) {\n var _this = this;\n if (this.scheduled || this.config.offline) {\n return;\n }\n this.scheduled = setTimeout(function () {\n void _this.flush(true).then(function () {\n if (_this.queue.length > 0) {\n _this.schedule(timeout);\n }\n });\n }, timeout);\n };\n Destination.prototype.flush = function (useRetry) {\n if (useRetry === void 0) { useRetry = false; }\n return __awaiter(this, void 0, void 0, function () {\n var list, later, batches;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Skip flush if offline\n if (this.config.offline) {\n this.config.loggerProvider.debug('Skipping flush while offline.');\n return [2 /*return*/];\n }\n list = [];\n later = [];\n this.queue.forEach(function (context) { return (context.timeout === 0 ? list.push(context) : later.push(context)); });\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n batches = chunk(list, this.config.flushQueueSize);\n return [4 /*yield*/, Promise.all(batches.map(function (batch) { return _this.send(batch, useRetry); }))];\n case 1:\n _a.sent();\n this.scheduleTryable(later);\n return [2 /*return*/];\n }\n });\n });\n };\n Destination.prototype.send = function (list, useRetry) {\n if (useRetry === void 0) { useRetry = true; }\n return __awaiter(this, void 0, void 0, function () {\n var payload, serverUrl, res, e_1, errorMessage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.config.apiKey) {\n return [2 /*return*/, this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE)];\n }\n payload = {\n api_key: this.config.apiKey,\n events: list.map(function (context) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _a = context.event, extra = _a.extra, eventWithoutExtra = __rest(_a, [\"extra\"]);\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n client_upload_time: new Date().toISOString(),\n };\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n serverUrl = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch).serverUrl;\n return [4 /*yield*/, this.config.transportProvider.send(serverUrl, payload)];\n case 2:\n res = _a.sent();\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return [2 /*return*/];\n }\n if (!useRetry) {\n if ('body' in res) {\n this.fulfillRequest(list, res.statusCode, \"\".concat(res.status, \": \").concat(getResponseBodyString(res)));\n }\n else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return [2 /*return*/];\n }\n this.handleResponse(res, list);\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n errorMessage = getErrorMessage(e_1);\n this.config.loggerProvider.error(errorMessage);\n this.handleResponse({ status: Status.Failed, statusCode: 0 }, list);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n Destination.prototype.handleResponse = function (res, list) {\n var status = res.status;\n switch (status) {\n case Status.Success: {\n this.handleSuccessResponse(res, list);\n break;\n }\n case Status.Invalid: {\n this.handleInvalidResponse(res, list);\n break;\n }\n case Status.PayloadTooLarge: {\n this.handlePayloadTooLargeResponse(res, list);\n break;\n }\n case Status.RateLimit: {\n this.handleRateLimitResponse(res, list);\n break;\n }\n default: {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(\"{code: 0, error: \\\"Status '\".concat(status, \"' provided for \").concat(list.length, \" events\\\"}\"));\n this.handleOtherResponse(list);\n break;\n }\n }\n };\n Destination.prototype.handleSuccessResponse = function (res, list) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n };\n Destination.prototype.handleInvalidResponse = function (res, list) {\n var _this = this;\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n var dropIndex = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(Object.values(res.body.eventsWithInvalidFields)), false), __read(Object.values(res.body.eventsWithMissingFields)), false), __read(Object.values(res.body.eventsWithInvalidIdLengths)), false), __read(res.body.silencedEvents), false).flat();\n var dropIndexSet = new Set(dropIndex);\n var retry = list.filter(function (context, index) {\n if (dropIndexSet.has(index)) {\n _this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n var tryable = this.getTryableList(retry);\n this.scheduleTryable(tryable);\n };\n Destination.prototype.handlePayloadTooLargeResponse = function (res, list) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n this.config.flushQueueSize /= 2;\n var tryable = this.getTryableList(list);\n this.scheduleTryable(tryable);\n };\n Destination.prototype.handleRateLimitResponse = function (res, list) {\n var _this = this;\n var dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n var dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n var throttledIndex = res.body.throttledEvents;\n var dropUserIdsSet = new Set(dropUserIds);\n var dropDeviceIdsSet = new Set(dropDeviceIds);\n var throttledIndexSet = new Set(throttledIndex);\n var retry = list.filter(function (context, index) {\n if ((context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))) {\n _this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = _this.throttleTimeout;\n }\n return true;\n });\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n var tryable = this.getTryableList(retry);\n this.scheduleTryable(tryable);\n };\n Destination.prototype.handleOtherResponse = function (list) {\n var _this = this;\n var later = list.map(function (context) {\n context.timeout = context.attempts * _this.retryTimeout;\n return context;\n });\n var tryable = this.getTryableList(later);\n this.scheduleTryable(tryable);\n };\n Destination.prototype.fulfillRequest = function (list, code, message) {\n this.removeEvents(list);\n list.forEach(function (context) { return context.callback(buildResult(context.event, code, message)); });\n };\n /**\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n *\n * Update the event storage based on the queue\n */\n Destination.prototype.saveEvents = function () {\n if (!this.config.storageProvider) {\n return;\n }\n var updatedEvents = this.queue.map(function (context) { return context.event; });\n void this.config.storageProvider.set(this.storageKey, updatedEvents);\n };\n /**\n * This is called on response comes back for a request\n */\n Destination.prototype.removeEvents = function (eventsToRemove) {\n this.queue = this.queue.filter(function (queuedContext) { return !eventsToRemove.some(function (context) { return context.event.insert_id === queuedContext.event.insert_id; }); });\n this.saveEvents();\n };\n return Destination;\n}());\nexport { Destination };\n//# sourceMappingURL=destination.js.map","import { __assign, __values } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { LogLevel } from '@amplitude/analytics-types';\nexport var getStacktrace = function (ignoreDepth) {\n if (ignoreDepth === void 0) { ignoreDepth = 0; }\n var trace = new Error().stack || '';\n return trace\n .split('\\n')\n .slice(2 + ignoreDepth)\n .map(function (text) { return text.trim(); });\n};\n// This hook makes sure we always get the latest logger and logLevel.\nexport var getClientLogConfig = function (client) { return function () {\n var _a = __assign({}, client.config), logger = _a.loggerProvider, logLevel = _a.logLevel;\n return {\n logger: logger,\n logLevel: logLevel,\n };\n}; };\n// This is a convenient function to get the attribute from object with string path, similar to lodash '#get'.\nexport var getValueByStringPath = function (obj, path) {\n var e_1, _a;\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n try {\n for (var _b = __values(path.split('.')), _c = _b.next(); !_c.done; _c = _b.next()) {\n var attr = _c.value;\n if (attr in obj) {\n obj = obj[attr];\n }\n else {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return obj;\n};\nexport var getClientStates = function (client, paths) { return function () {\n var e_2, _a;\n var res = {};\n try {\n for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {\n var path = paths_1_1.value;\n res[path] = getValueByStringPath(client, path);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return res;\n}; };\nexport var debugWrapper = function (fn, fnName, getLogConfig, getStates, fnContext) {\n if (fnContext === void 0) { fnContext = null; }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a = getLogConfig(), logger = _a.logger, logLevel = _a.logLevel;\n // return early if possible to reduce overhead\n if ((logLevel && logLevel < LogLevel.Debug) || !logLevel || !logger) {\n return fn.apply(fnContext, args);\n }\n var debugContext = {\n type: 'invoke public method',\n name: fnName,\n args: args,\n stacktrace: getStacktrace(1),\n time: {\n start: new Date().toISOString(),\n },\n states: {},\n };\n if (getStates && debugContext.states) {\n debugContext.states.before = getStates();\n }\n var result = fn.apply(fnContext, args);\n if (result && result.promise) {\n // if result is a promise, add the callback\n result.promise.then(function () {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n });\n }\n else {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n }\n return result;\n };\n};\n//# sourceMappingURL=debug.js.map","import { __awaiter, __generator } from \"tslib\";\nvar MemoryStorage = /** @class */ (function () {\n function MemoryStorage() {\n this.memoryStorage = new Map();\n }\n MemoryStorage.prototype.isEnabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, true];\n });\n });\n };\n MemoryStorage.prototype.get = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.memoryStorage.get(key)];\n });\n });\n };\n MemoryStorage.prototype.getRaw = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n var value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.get(key)];\n case 1:\n value = _a.sent();\n return [2 /*return*/, value ? JSON.stringify(value) : undefined];\n }\n });\n });\n };\n MemoryStorage.prototype.set = function (key, value) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.memoryStorage.set(key, value);\n return [2 /*return*/];\n });\n });\n };\n MemoryStorage.prototype.remove = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.memoryStorage.delete(key);\n return [2 /*return*/];\n });\n });\n };\n MemoryStorage.prototype.reset = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.memoryStorage.clear();\n return [2 /*return*/];\n });\n });\n };\n return MemoryStorage;\n}());\nexport { MemoryStorage };\n//# sourceMappingURL=memory.js.map","/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { Status } from '@amplitude/analytics-types';\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport() {\n }\n BaseTransport.prototype.send = function (_serverUrl, _payload) {\n return Promise.resolve(null);\n };\n BaseTransport.prototype.buildResponse = function (responseJSON) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n if (typeof responseJSON !== 'object') {\n return null;\n }\n var statusCode = responseJSON.code || 0;\n var status = this.buildStatus(statusCode);\n switch (status) {\n case Status.Success:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n eventsIngested: (_a = responseJSON.events_ingested) !== null && _a !== void 0 ? _a : 0,\n payloadSizeBytes: (_b = responseJSON.payload_size_bytes) !== null && _b !== void 0 ? _b : 0,\n serverUploadTime: (_c = responseJSON.server_upload_time) !== null && _c !== void 0 ? _c : 0,\n },\n };\n case Status.Invalid:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n error: (_d = responseJSON.error) !== null && _d !== void 0 ? _d : '',\n missingField: (_e = responseJSON.missing_field) !== null && _e !== void 0 ? _e : '',\n eventsWithInvalidFields: (_f = responseJSON.events_with_invalid_fields) !== null && _f !== void 0 ? _f : {},\n eventsWithMissingFields: (_g = responseJSON.events_with_missing_fields) !== null && _g !== void 0 ? _g : {},\n eventsWithInvalidIdLengths: (_h = responseJSON.events_with_invalid_id_lengths) !== null && _h !== void 0 ? _h : {},\n epsThreshold: (_j = responseJSON.eps_threshold) !== null && _j !== void 0 ? _j : 0,\n exceededDailyQuotaDevices: (_k = responseJSON.exceeded_daily_quota_devices) !== null && _k !== void 0 ? _k : {},\n silencedDevices: (_l = responseJSON.silenced_devices) !== null && _l !== void 0 ? _l : [],\n silencedEvents: (_m = responseJSON.silenced_events) !== null && _m !== void 0 ? _m : [],\n throttledDevices: (_o = responseJSON.throttled_devices) !== null && _o !== void 0 ? _o : {},\n throttledEvents: (_p = responseJSON.throttled_events) !== null && _p !== void 0 ? _p : [],\n },\n };\n case Status.PayloadTooLarge:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n error: (_q = responseJSON.error) !== null && _q !== void 0 ? _q : '',\n },\n };\n case Status.RateLimit:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n error: (_r = responseJSON.error) !== null && _r !== void 0 ? _r : '',\n epsThreshold: (_s = responseJSON.eps_threshold) !== null && _s !== void 0 ? _s : 0,\n throttledDevices: (_t = responseJSON.throttled_devices) !== null && _t !== void 0 ? _t : {},\n throttledUsers: (_u = responseJSON.throttled_users) !== null && _u !== void 0 ? _u : {},\n exceededDailyQuotaDevices: (_v = responseJSON.exceeded_daily_quota_devices) !== null && _v !== void 0 ? _v : {},\n exceededDailyQuotaUsers: (_w = responseJSON.exceeded_daily_quota_users) !== null && _w !== void 0 ? _w : {},\n throttledEvents: (_x = responseJSON.throttled_events) !== null && _x !== void 0 ? _x : [],\n },\n };\n case Status.Timeout:\n default:\n return {\n status: status,\n statusCode: statusCode,\n };\n }\n };\n BaseTransport.prototype.buildStatus = function (code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code === 413) {\n return Status.PayloadTooLarge;\n }\n if (code === 408) {\n return Status.Timeout;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","/* eslint-disable no-restricted-globals */\n/* Only file allowed to access to globalThis, window, self */\nexport var getGlobalScope = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n};\n//# sourceMappingURL=global-scope.js.map","import { getGlobalScope } from './global-scope';\nexport var getQueryParams = function () {\n var _a;\n var globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!((_a = globalScope === null || globalScope === void 0 ? void 0 : globalScope.location) === null || _a === void 0 ? void 0 : _a.search)) {\n return {};\n }\n var pairs = globalScope.location.search.substring(1).split('&').filter(Boolean);\n var params = pairs.reduce(function (acc, curr) {\n var query = curr.split('=', 2);\n var key = tryDecodeURIComponent(query[0]);\n var value = tryDecodeURIComponent(query[1]);\n if (!value) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n return params;\n};\nexport var tryDecodeURIComponent = function (value) {\n if (value === void 0) { value = ''; }\n try {\n return decodeURIComponent(value);\n }\n catch (_a) {\n return '';\n }\n};\n//# sourceMappingURL=query-params.js.map","export var UTM_CAMPAIGN = 'utm_campaign';\nexport var UTM_CONTENT = 'utm_content';\nexport var UTM_ID = 'utm_id';\nexport var UTM_MEDIUM = 'utm_medium';\nexport var UTM_SOURCE = 'utm_source';\nexport var UTM_TERM = 'utm_term';\nexport var DCLID = 'dclid';\nexport var FBCLID = 'fbclid';\nexport var GBRAID = 'gbraid';\nexport var GCLID = 'gclid';\nexport var KO_CLICK_ID = 'ko_click_id';\nexport var LI_FAT_ID = 'li_fat_id';\nexport var MSCLKID = 'msclkid';\nexport var RDT_CID = 'rtd_cid';\nexport var TTCLID = 'ttclid';\nexport var TWCLID = 'twclid';\nexport var WBRAID = 'wbraid';\nexport var EMPTY_VALUE = 'EMPTY';\nexport var BASE_CAMPAIGN = {\n utm_campaign: undefined,\n utm_content: undefined,\n utm_id: undefined,\n utm_medium: undefined,\n utm_source: undefined,\n utm_term: undefined,\n referrer: undefined,\n referring_domain: undefined,\n dclid: undefined,\n gbraid: undefined,\n gclid: undefined,\n fbclid: undefined,\n ko_click_id: undefined,\n li_fat_id: undefined,\n msclkid: undefined,\n rtd_cid: undefined,\n ttclid: undefined,\n twclid: undefined,\n wbraid: undefined,\n};\nexport var MKTG = 'MKTG';\n//# sourceMappingURL=constants.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getQueryParams } from '../query-params';\nimport { UTM_CAMPAIGN, UTM_CONTENT, UTM_MEDIUM, UTM_SOURCE, UTM_TERM, GCLID, FBCLID, BASE_CAMPAIGN, DCLID, MSCLKID, RDT_CID, TWCLID, TTCLID, KO_CLICK_ID, LI_FAT_ID, GBRAID, WBRAID, UTM_ID, } from './constants';\nvar CampaignParser = /** @class */ (function () {\n function CampaignParser() {\n }\n CampaignParser.prototype.parse = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, __assign(__assign(__assign(__assign({}, BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds())];\n });\n });\n };\n CampaignParser.prototype.getUtmParam = function () {\n var params = getQueryParams();\n var utmCampaign = params[UTM_CAMPAIGN];\n var utmContent = params[UTM_CONTENT];\n var utmId = params[UTM_ID];\n var utmMedium = params[UTM_MEDIUM];\n var utmSource = params[UTM_SOURCE];\n var utmTerm = params[UTM_TERM];\n return {\n utm_campaign: utmCampaign,\n utm_content: utmContent,\n utm_id: utmId,\n utm_medium: utmMedium,\n utm_source: utmSource,\n utm_term: utmTerm,\n };\n };\n CampaignParser.prototype.getReferrer = function () {\n var _a, _b;\n var data = {\n referrer: undefined,\n referring_domain: undefined,\n };\n try {\n data.referrer = document.referrer || undefined;\n data.referring_domain = (_b = (_a = data.referrer) === null || _a === void 0 ? void 0 : _a.split('/')[2]) !== null && _b !== void 0 ? _b : undefined;\n }\n catch (_c) {\n // nothing to track\n }\n return data;\n };\n CampaignParser.prototype.getClickIds = function () {\n var _a;\n var params = getQueryParams();\n return _a = {},\n _a[DCLID] = params[DCLID],\n _a[FBCLID] = params[FBCLID],\n _a[GBRAID] = params[GBRAID],\n _a[GCLID] = params[GCLID],\n _a[KO_CLICK_ID] = params[KO_CLICK_ID],\n _a[LI_FAT_ID] = params[LI_FAT_ID],\n _a[MSCLKID] = params[MSCLKID],\n _a[RDT_CID] = params[RDT_CID],\n _a[TTCLID] = params[TTCLID],\n _a[TWCLID] = params[TWCLID],\n _a[WBRAID] = params[WBRAID],\n _a;\n };\n return CampaignParser;\n}());\nexport { CampaignParser };\n//# sourceMappingURL=campaign-parser.js.map","import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\nexport var getCookieName = function (apiKey, postKey, limit) {\n if (postKey === void 0) { postKey = ''; }\n if (limit === void 0) { limit = 10; }\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\nexport var getOldCookieName = function (apiKey) {\n return \"\".concat(AMPLITUDE_PREFIX.toLowerCase(), \"_\").concat(apiKey.substring(0, 6));\n};\n//# sourceMappingURL=cookie-name.js.map","import { __assign, __read, __rest } from \"tslib\";\nimport { createIdentifyEvent, Identify } from '@amplitude/analytics-core';\nimport { BASE_CAMPAIGN } from './constants';\nvar domainWithoutSubdomain = function (domain) {\n var parts = domain.split('.');\n if (parts.length <= 2) {\n return domain;\n }\n return parts.slice(parts.length - 2, parts.length).join('.');\n};\n//Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.\nvar isDirectTraffic = function (current) {\n return Object.values(current).every(function (value) { return !value; });\n};\nexport var isNewCampaign = function (current, previous, options, isNewSession) {\n if (isNewSession === void 0) { isNewSession = true; }\n var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = __rest(current, [\"referrer\", \"referring_domain\"]);\n var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = __rest(_a, [\"referrer\", \"referring_domain\"]);\n if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {\n return false;\n }\n //In the same session, direct traffic should not override or unset any persisting query params\n if (!isNewSession && isDirectTraffic(current) && previous) {\n return false;\n }\n var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n var hasNewDomain = domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');\n return !previous || hasNewCampaign || hasNewDomain;\n};\nexport var isExcludedReferrer = function (excludeReferrers, referringDomain) {\n if (excludeReferrers === void 0) { excludeReferrers = []; }\n if (referringDomain === void 0) { referringDomain = ''; }\n return excludeReferrers.some(function (value) {\n return value instanceof RegExp ? value.test(referringDomain) : value === referringDomain;\n });\n};\nexport var createCampaignEvent = function (campaign, options) {\n var campaignParameters = __assign(__assign({}, BASE_CAMPAIGN), campaign);\n var identifyEvent = Object.entries(campaignParameters).reduce(function (identify, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n identify.setOnce(\"initial_\".concat(key), (_b = value !== null && value !== void 0 ? value : options.initialEmptyValue) !== null && _b !== void 0 ? _b : 'EMPTY');\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n return createIdentifyEvent(identifyEvent);\n};\nexport var getDefaultExcludedReferrers = function (cookieDomain) {\n var domain = cookieDomain;\n if (domain) {\n if (domain.startsWith('.')) {\n domain = domain.substring(1);\n }\n return [new RegExp(\"\".concat(domain.replace('.', '\\\\.'), \"$\"))];\n }\n return [];\n};\n//# sourceMappingURL=helpers.js.map","import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\nexport var getStorageKey = function (apiKey, postKey, limit) {\n if (postKey === void 0) { postKey = ''; }\n if (limit === void 0) { limit = 10; }\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\n//# sourceMappingURL=helpers.js.map","export var isNewSession = function (sessionTimeout, lastEventTime) {\n if (lastEventTime === void 0) { lastEventTime = Date.now(); }\n var currentTime = Date.now();\n var timeSinceLastEvent = currentTime - lastEventTime;\n return timeSinceLastEvent > sessionTimeout;\n};\n//# sourceMappingURL=session.js.map","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { getDefaultExcludedReferrers, createCampaignEvent, isNewCampaign } from './helpers';\nimport { getStorageKey } from '../storage/helpers';\nimport { CampaignParser } from './campaign-parser';\nimport { BASE_CAMPAIGN } from './constants';\nimport { isNewSession } from '../session';\nvar WebAttribution = /** @class */ (function () {\n function WebAttribution(options, config) {\n var _a;\n this.shouldTrackNewCampaign = false;\n this.options = __assign({ initialEmptyValue: 'EMPTY', resetSessionOnNewCampaign: false, excludeReferrers: getDefaultExcludedReferrers((_a = config.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain) }, options);\n this.storage = config.cookieStorage;\n this.storageKey = getStorageKey(config.apiKey, 'MKTG');\n this.currentCampaign = BASE_CAMPAIGN;\n this.sessionTimeout = config.sessionTimeout;\n this.lastEventTime = config.lastEventTime;\n config.loggerProvider.log('Installing web attribution tracking.');\n }\n WebAttribution.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var isEventInNewSession;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.fetchCampaign()];\n case 1:\n _a = __read.apply(void 0, [_b.sent(), 2]), this.currentCampaign = _a[0], this.previousCampaign = _a[1];\n isEventInNewSession = !this.lastEventTime ? true : isNewSession(this.sessionTimeout, this.lastEventTime);\n if (!isNewCampaign(this.currentCampaign, this.previousCampaign, this.options, isEventInNewSession)) return [3 /*break*/, 3];\n this.shouldTrackNewCampaign = true;\n return [4 /*yield*/, this.storage.set(this.storageKey, this.currentCampaign)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n WebAttribution.prototype.fetchCampaign = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all([new CampaignParser().parse(), this.storage.get(this.storageKey)])];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * This can be called when enable web attribution and either\n * 1. set a new session\n * 2. has new campaign and enable resetSessionOnNewCampaign\n */\n WebAttribution.prototype.generateCampaignEvent = function (event_id) {\n // Mark this campaign has been tracked\n this.shouldTrackNewCampaign = false;\n var campaignEvent = createCampaignEvent(this.currentCampaign, this.options);\n if (event_id) {\n campaignEvent.event_id = event_id;\n }\n return campaignEvent;\n };\n WebAttribution.prototype.shouldSetSessionIdOnNewCampaign = function () {\n return this.shouldTrackNewCampaign && !!this.options.resetSessionOnNewCampaign;\n };\n return WebAttribution;\n}());\nexport { WebAttribution };\n//# sourceMappingURL=web-attribution.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getGlobalScope } from '../global-scope';\nvar CookieStorage = /** @class */ (function () {\n function CookieStorage(options) {\n this.options = __assign({}, options);\n }\n CookieStorage.prototype.isEnabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var testStrorage, testKey, value, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return [2 /*return*/, false];\n }\n CookieStorage.testValue = String(Date.now());\n testStrorage = new CookieStorage(this.options);\n testKey = 'AMP_TEST';\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, 5, 7]);\n return [4 /*yield*/, testStrorage.set(testKey, CookieStorage.testValue)];\n case 2:\n _b.sent();\n return [4 /*yield*/, testStrorage.get(testKey)];\n case 3:\n value = _b.sent();\n return [2 /*return*/, value === CookieStorage.testValue];\n case 4:\n _a = _b.sent();\n /* istanbul ignore next */\n return [2 /*return*/, false];\n case 5: return [4 /*yield*/, testStrorage.remove(testKey)];\n case 6:\n _b.sent();\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n CookieStorage.prototype.get = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n var value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.getRaw(key)];\n case 1:\n value = _a.sent();\n if (!value) {\n return [2 /*return*/, undefined];\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n }\n catch (_b) {\n // value not encoded\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return [2 /*return*/, JSON.parse(value)];\n }\n catch (_c) {\n /* istanbul ignore next */\n return [2 /*return*/, undefined];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n CookieStorage.prototype.getRaw = function (key) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var globalScope, cookie, match;\n return __generator(this, function (_c) {\n globalScope = getGlobalScope();\n cookie = (_b = (_a = globalScope === null || globalScope === void 0 ? void 0 : globalScope.document) === null || _a === void 0 ? void 0 : _a.cookie.split('; ')) !== null && _b !== void 0 ? _b : [];\n match = cookie.find(function (c) { return c.indexOf(key + '=') === 0; });\n if (!match) {\n return [2 /*return*/, undefined];\n }\n return [2 /*return*/, match.substring(key.length + 1)];\n });\n });\n };\n CookieStorage.prototype.set = function (key, value) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var expirationDays, expires, expireDate, date, str, globalScope;\n return __generator(this, function (_b) {\n try {\n expirationDays = (_a = this.options.expirationDays) !== null && _a !== void 0 ? _a : 0;\n expires = value !== null ? expirationDays : -1;\n expireDate = undefined;\n if (expires) {\n date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n str = \"\".concat(key, \"=\").concat(btoa(encodeURIComponent(JSON.stringify(value))));\n if (expireDate) {\n str += \"; expires=\".concat(expireDate.toUTCString());\n }\n str += '; path=/';\n if (this.options.domain) {\n str += \"; domain=\".concat(this.options.domain);\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += \"; SameSite=\".concat(this.options.sameSite);\n }\n globalScope = getGlobalScope();\n if (globalScope) {\n globalScope.document.cookie = str;\n }\n }\n catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n CookieStorage.prototype.remove = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.set(key, null)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CookieStorage.prototype.reset = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n return CookieStorage;\n}());\nexport { CookieStorage };\n//# sourceMappingURL=cookie.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { BaseTransport } from '@amplitude/analytics-core';\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FetchTransport.prototype.send = function (serverUrl, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var options, response, responseText;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n options = {\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n },\n body: JSON.stringify(payload),\n method: 'POST',\n };\n return [4 /*yield*/, fetch(serverUrl, options)];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.text()];\n case 2:\n responseText = _a.sent();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return [2 /*return*/, this.buildResponse(responseText ? JSON.parse(responseText) : { code: response.status })];\n }\n });\n });\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","var ApplicationContextProviderImpl = /** @class */ (function () {\n function ApplicationContextProviderImpl() {\n }\n ApplicationContextProviderImpl.prototype.getApplicationContext = function () {\n return {\n versionName: this.versionName,\n language: getLanguage(),\n platform: 'Web',\n os: undefined,\n deviceModel: undefined,\n };\n };\n return ApplicationContextProviderImpl;\n}());\nvar getLanguage = function () {\n return ((typeof navigator !== 'undefined' &&\n ((navigator.languages && navigator.languages[0]) ||\n navigator.language)) ||\n '');\n};\n\nvar EventBridgeImpl = /** @class */ (function () {\n function EventBridgeImpl() {\n this.queue = [];\n }\n EventBridgeImpl.prototype.logEvent = function (event) {\n if (!this.receiver) {\n if (this.queue.length < 512) {\n this.queue.push(event);\n }\n }\n else {\n this.receiver(event);\n }\n };\n EventBridgeImpl.prototype.setEventReceiver = function (receiver) {\n this.receiver = receiver;\n if (this.queue.length > 0) {\n this.queue.forEach(function (event) {\n receiver(event);\n });\n this.queue = [];\n }\n };\n return EventBridgeImpl;\n}());\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar isEqual = function (obj1, obj2) {\n var primitive = ['string', 'number', 'boolean', 'undefined'];\n var typeA = typeof obj1;\n var typeB = typeof obj2;\n if (typeA !== typeB) {\n return false;\n }\n for (var _i = 0, primitive_1 = primitive; _i < primitive_1.length; _i++) {\n var p = primitive_1[_i];\n if (p === typeA) {\n return obj1 === obj2;\n }\n }\n // check null\n if (obj1 == null && obj2 == null) {\n return true;\n }\n else if (obj1 == null || obj2 == null) {\n return false;\n }\n // if got here - objects\n if (obj1.length !== obj2.length) {\n return false;\n }\n //check if arrays\n var isArrayA = Array.isArray(obj1);\n var isArrayB = Array.isArray(obj2);\n if (isArrayA !== isArrayB) {\n return false;\n }\n if (isArrayA && isArrayB) {\n //arrays\n for (var i = 0; i < obj1.length; i++) {\n if (!isEqual(obj1[i], obj2[i])) {\n return false;\n }\n }\n }\n else {\n //objects\n var sorted1 = Object.keys(obj1).sort();\n var sorted2 = Object.keys(obj2).sort();\n if (!isEqual(sorted1, sorted2)) {\n return false;\n }\n //compare object values\n var result_1 = true;\n Object.keys(obj1).forEach(function (key) {\n if (!isEqual(obj1[key], obj2[key])) {\n result_1 = false;\n }\n });\n return result_1;\n }\n return true;\n};\n\nvar ID_OP_SET = '$set';\nvar ID_OP_UNSET = '$unset';\nvar ID_OP_CLEAR_ALL = '$clearAll';\n// Polyfill for Object.entries\nif (!Object.entries) {\n Object.entries = function (obj) {\n var ownProps = Object.keys(obj);\n var i = ownProps.length;\n var resArray = new Array(i);\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n return resArray;\n };\n}\nvar IdentityStoreImpl = /** @class */ (function () {\n function IdentityStoreImpl() {\n this.identity = { userProperties: {} };\n this.listeners = new Set();\n }\n IdentityStoreImpl.prototype.editIdentity = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var actingUserProperties = __assign({}, this.identity.userProperties);\n var actingIdentity = __assign(__assign({}, this.identity), { userProperties: actingUserProperties });\n return {\n setUserId: function (userId) {\n actingIdentity.userId = userId;\n return this;\n },\n setDeviceId: function (deviceId) {\n actingIdentity.deviceId = deviceId;\n return this;\n },\n setUserProperties: function (userProperties) {\n actingIdentity.userProperties = userProperties;\n return this;\n },\n setOptOut: function (optOut) {\n actingIdentity.optOut = optOut;\n return this;\n },\n updateUserProperties: function (actions) {\n var actingProperties = actingIdentity.userProperties || {};\n for (var _i = 0, _a = Object.entries(actions); _i < _a.length; _i++) {\n var _b = _a[_i], action = _b[0], properties = _b[1];\n switch (action) {\n case ID_OP_SET:\n for (var _c = 0, _d = Object.entries(properties); _c < _d.length; _c++) {\n var _e = _d[_c], key = _e[0], value = _e[1];\n actingProperties[key] = value;\n }\n break;\n case ID_OP_UNSET:\n for (var _f = 0, _g = Object.keys(properties); _f < _g.length; _f++) {\n var key = _g[_f];\n delete actingProperties[key];\n }\n break;\n case ID_OP_CLEAR_ALL:\n actingProperties = {};\n break;\n }\n }\n actingIdentity.userProperties = actingProperties;\n return this;\n },\n commit: function () {\n self.setIdentity(actingIdentity);\n return this;\n },\n };\n };\n IdentityStoreImpl.prototype.getIdentity = function () {\n return __assign({}, this.identity);\n };\n IdentityStoreImpl.prototype.setIdentity = function (identity) {\n var originalIdentity = __assign({}, this.identity);\n this.identity = __assign({}, identity);\n if (!isEqual(originalIdentity, this.identity)) {\n this.listeners.forEach(function (listener) {\n listener(identity);\n });\n }\n };\n IdentityStoreImpl.prototype.addIdentityListener = function (listener) {\n this.listeners.add(listener);\n };\n IdentityStoreImpl.prototype.removeIdentityListener = function (listener) {\n this.listeners.delete(listener);\n };\n return IdentityStoreImpl;\n}());\n\nvar safeGlobal = typeof globalThis !== 'undefined'\n ? globalThis\n : typeof global !== 'undefined'\n ? global\n : self;\n\nvar AnalyticsConnector = /** @class */ (function () {\n function AnalyticsConnector() {\n this.identityStore = new IdentityStoreImpl();\n this.eventBridge = new EventBridgeImpl();\n this.applicationContextProvider = new ApplicationContextProviderImpl();\n }\n AnalyticsConnector.getInstance = function (instanceName) {\n if (!safeGlobal['analyticsConnectorInstances']) {\n safeGlobal['analyticsConnectorInstances'] = {};\n }\n if (!safeGlobal['analyticsConnectorInstances'][instanceName]) {\n safeGlobal['analyticsConnectorInstances'][instanceName] =\n new AnalyticsConnector();\n }\n return safeGlobal['analyticsConnectorInstances'][instanceName];\n };\n return AnalyticsConnector;\n}());\n\nexport { AnalyticsConnector };\n","import { AnalyticsConnector } from '@amplitude/analytics-connector';\nexport var getAnalyticsConnector = function (instanceName) {\n if (instanceName === void 0) { instanceName = '$default_instance'; }\n return AnalyticsConnector.getInstance(instanceName);\n};\nexport var setConnectorUserId = function (userId, instanceName) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n getAnalyticsConnector(instanceName).identityStore.editIdentity().setUserId(userId).commit();\n};\nexport var setConnectorDeviceId = function (deviceId, instanceName) {\n getAnalyticsConnector(instanceName).identityStore.editIdentity().setDeviceId(deviceId).commit();\n};\n//# sourceMappingURL=analytics-connector.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { getAnalyticsConnector } from '../analytics-connector';\nvar IdentityEventSender = /** @class */ (function () {\n function IdentityEventSender() {\n this.name = 'identity';\n this.type = 'before';\n this.identityStore = getAnalyticsConnector().identityStore;\n }\n IdentityEventSender.prototype.execute = function (context) {\n return __awaiter(this, void 0, void 0, function () {\n var userProperties;\n return __generator(this, function (_a) {\n userProperties = context.user_properties;\n if (userProperties) {\n this.identityStore.editIdentity().updateUserProperties(userProperties).commit();\n }\n return [2 /*return*/, context];\n });\n });\n };\n IdentityEventSender.prototype.setup = function (config) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (config.instanceName) {\n this.identityStore = getAnalyticsConnector(config.instanceName).identityStore;\n }\n return [2 /*return*/];\n });\n });\n };\n return IdentityEventSender;\n}());\nexport { IdentityEventSender };\n//# sourceMappingURL=identity.js.map","export var getLanguage = function () {\n var _a, _b, _c, _d;\n if (typeof navigator === 'undefined')\n return '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var userLanguage = navigator.userLanguage;\n return (_d = (_c = (_b = (_a = navigator.languages) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : navigator.language) !== null && _c !== void 0 ? _c : userLanguage) !== null && _d !== void 0 ? _d : '';\n};\n//# sourceMappingURL=language.js.map","import { __assign } from \"tslib\";\n/**\n * Returns false if defaultTracking === false or if defaultTracking[event],\n * otherwise returns true\n */\nvar isTrackingEnabled = function (defaultTracking, event) {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n if ((defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking[event]) === false) {\n return false;\n }\n return true;\n};\nexport var isAttributionTrackingEnabled = function (defaultTracking) {\n return isTrackingEnabled(defaultTracking, 'attribution');\n};\nexport var isFileDownloadTrackingEnabled = function (defaultTracking) {\n return isTrackingEnabled(defaultTracking, 'fileDownloads');\n};\nexport var isFormInteractionTrackingEnabled = function (defaultTracking) {\n return isTrackingEnabled(defaultTracking, 'formInteractions');\n};\nexport var isPageViewTrackingEnabled = function (defaultTracking) {\n return isTrackingEnabled(defaultTracking, 'pageViews');\n};\nexport var isSessionTrackingEnabled = function (defaultTracking) {\n return isTrackingEnabled(defaultTracking, 'sessions');\n};\nexport var getPageViewTrackingConfig = function (config) {\n var trackOn = function () { return false; };\n var trackHistoryChanges = undefined;\n var eventType;\n var pageCounter = config.pageCounter;\n var isDefaultPageViewTrackingEnabled = isPageViewTrackingEnabled(config.defaultTracking);\n if (isDefaultPageViewTrackingEnabled) {\n trackOn = undefined;\n eventType = undefined;\n if (config.defaultTracking &&\n typeof config.defaultTracking === 'object' &&\n config.defaultTracking.pageViews &&\n typeof config.defaultTracking.pageViews === 'object') {\n if ('trackOn' in config.defaultTracking.pageViews) {\n trackOn = config.defaultTracking.pageViews.trackOn;\n }\n if ('trackHistoryChanges' in config.defaultTracking.pageViews) {\n trackHistoryChanges = config.defaultTracking.pageViews.trackHistoryChanges;\n }\n if ('eventType' in config.defaultTracking.pageViews && config.defaultTracking.pageViews.eventType) {\n eventType = config.defaultTracking.pageViews.eventType;\n }\n }\n }\n return {\n trackOn: trackOn,\n trackHistoryChanges: trackHistoryChanges,\n eventType: eventType,\n pageCounter: pageCounter,\n };\n};\nexport var getAttributionTrackingConfig = function (config) {\n if (isAttributionTrackingEnabled(config.defaultTracking) &&\n config.defaultTracking &&\n typeof config.defaultTracking === 'object' &&\n config.defaultTracking.attribution &&\n typeof config.defaultTracking.attribution === 'object') {\n return __assign({}, config.defaultTracking.attribution);\n }\n return {};\n};\n//# sourceMappingURL=default-tracking.js.map","/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport var runQueuedFunctions = function (instance, queue) {\n convertProxyObjectToRealObject(instance, queue);\n};\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport var convertProxyObjectToRealObject = function (instance, queue) {\n for (var i = 0; i < queue.length; i++) {\n var _a = queue[i], name_1 = _a.name, args = _a.args, resolve = _a.resolve;\n var fn = instance && instance[name_1];\n if (typeof fn === 'function') {\n var result = fn.apply(instance, args);\n if (typeof resolve === 'function') {\n resolve(result === null || result === void 0 ? void 0 : result.promise);\n }\n }\n }\n return instance;\n};\n/**\n * Check if the param is snippet proxy\n */\nexport var isInstanceProxy = function (instance) {\n var instanceProxy = instance;\n return instanceProxy && instanceProxy._q !== undefined;\n};\n//# sourceMappingURL=snippet-helper.js.map","export var VERSION = '2.8.1';\n//# sourceMappingURL=version.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\nvar BROWSER_PLATFORM = 'Web';\nvar IP_ADDRESS = '$remote';\nvar Context = /** @class */ (function () {\n function Context() {\n this.name = '@amplitude/plugin-context-browser';\n this.type = 'before';\n this.library = \"amplitude-ts/\".concat(VERSION);\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n this.userAgent = navigator.userAgent;\n }\n }\n Context.prototype.setup = function (config) {\n this.config = config;\n return Promise.resolve(undefined);\n };\n Context.prototype.execute = function (context) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var time, lastEventId, nextEventId, event;\n return __generator(this, function (_c) {\n time = new Date().getTime();\n lastEventId = (_a = this.config.lastEventId) !== null && _a !== void 0 ? _a : -1;\n nextEventId = (_b = context.event_id) !== null && _b !== void 0 ? _b : lastEventId + 1;\n this.config.lastEventId = nextEventId;\n if (!context.time) {\n this.config.lastEventTime = time;\n }\n event = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ user_id: this.config.userId, device_id: this.config.deviceId, session_id: this.config.sessionId, time: time }, (this.config.appVersion && { app_version: this.config.appVersion })), (this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM })), (this.config.trackingOptions.language && { language: getLanguage() })), (this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS })), { insert_id: UUID(), partner_id: this.config.partnerId, plan: this.config.plan }), (this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion,\n },\n })), context), { event_id: nextEventId, library: this.library, user_agent: this.userAgent });\n return [2 /*return*/, event];\n });\n });\n };\n return Context;\n}());\nexport { Context };\n//# sourceMappingURL=context.js.map","import { __awaiter, __generator } from \"tslib\";\nvar BrowserStorage = /** @class */ (function () {\n function BrowserStorage(storage) {\n this.storage = storage;\n }\n BrowserStorage.prototype.isEnabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var random, testStorage, testKey, value, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n /* istanbul ignore if */\n if (!this.storage) {\n return [2 /*return*/, false];\n }\n random = String(Date.now());\n testStorage = new BrowserStorage(this.storage);\n testKey = 'AMP_TEST';\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, 5, 7]);\n return [4 /*yield*/, testStorage.set(testKey, random)];\n case 2:\n _b.sent();\n return [4 /*yield*/, testStorage.get(testKey)];\n case 3:\n value = _b.sent();\n return [2 /*return*/, value === random];\n case 4:\n _a = _b.sent();\n /* istanbul ignore next */\n return [2 /*return*/, false];\n case 5: return [4 /*yield*/, testStorage.remove(testKey)];\n case 6:\n _b.sent();\n return [7 /*endfinally*/];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n BrowserStorage.prototype.get = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n var value, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.getRaw(key)];\n case 1:\n value = _b.sent();\n if (!value) {\n return [2 /*return*/, undefined];\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return [2 /*return*/, JSON.parse(value)];\n case 2:\n _a = _b.sent();\n console.error(\"[Amplitude] Error: Could not get value from storage\");\n return [2 /*return*/, undefined];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n BrowserStorage.prototype.getRaw = function (key) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n return [2 /*return*/, ((_a = this.storage) === null || _a === void 0 ? void 0 : _a.getItem(key)) || undefined];\n });\n });\n };\n BrowserStorage.prototype.set = function (key, value) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n (_a = this.storage) === null || _a === void 0 ? void 0 : _a.setItem(key, JSON.stringify(value));\n }\n catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n BrowserStorage.prototype.remove = function (key) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n (_a = this.storage) === null || _a === void 0 ? void 0 : _a.removeItem(key);\n }\n catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n BrowserStorage.prototype.reset = function () {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n (_a = this.storage) === null || _a === void 0 ? void 0 : _a.clear();\n }\n catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n return BrowserStorage;\n}());\nexport { BrowserStorage };\n//# sourceMappingURL=browser-storage.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BrowserStorage } from './browser-storage';\nvar MAX_ARRAY_LENGTH = 1000;\nvar LocalStorage = /** @class */ (function (_super) {\n __extends(LocalStorage, _super);\n function LocalStorage(config) {\n var _this = this;\n var _a;\n _this = _super.call(this, (_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.localStorage) || this;\n _this.loggerProvider = config === null || config === void 0 ? void 0 : config.loggerProvider;\n return _this;\n }\n LocalStorage.prototype.set = function (key, value) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var droppedEventsCount;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(Array.isArray(value) && value.length > MAX_ARRAY_LENGTH)) return [3 /*break*/, 2];\n droppedEventsCount = value.length - MAX_ARRAY_LENGTH;\n return [4 /*yield*/, _super.prototype.set.call(this, key, value.slice(0, MAX_ARRAY_LENGTH))];\n case 1:\n _b.sent();\n (_a = this.loggerProvider) === null || _a === void 0 ? void 0 : _a.error(\"Failed to save \".concat(droppedEventsCount, \" events because the queue length exceeded \").concat(MAX_ARRAY_LENGTH, \".\"));\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, _super.prototype.set.call(this, key, value)];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n return LocalStorage;\n}(BrowserStorage));\nexport { LocalStorage };\n//# sourceMappingURL=local-storage.js.map","import { __extends } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BrowserStorage } from './browser-storage';\nvar SessionStorage = /** @class */ (function (_super) {\n __extends(SessionStorage, _super);\n function SessionStorage() {\n var _a;\n return _super.call(this, (_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.sessionStorage) || this;\n }\n return SessionStorage;\n}(BrowserStorage));\nexport { SessionStorage };\n//# sourceMappingURL=session-storage.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { BaseTransport } from '@amplitude/analytics-core';\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n done: 4,\n };\n return _this;\n }\n XHRTransport.prototype.send = function (serverUrl, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n /* istanbul ignore if */\n if (typeof XMLHttpRequest === 'undefined') {\n reject(new Error('XHRTransport is not supported.'));\n }\n var xhr = new XMLHttpRequest();\n xhr.open('POST', serverUrl, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === _this.state.done) {\n var responsePayload = xhr.responseText;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var parsedResponsePayload = responsePayload\n ? JSON.parse(responsePayload)\n : { code: xhr.status };\n var result = _this.buildResponse(parsedResponsePayload);\n resolve(result);\n }\n };\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Accept', '*/*');\n xhr.send(JSON.stringify(payload));\n })];\n });\n });\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BaseTransport } from '@amplitude/analytics-core';\nvar SendBeaconTransport = /** @class */ (function (_super) {\n __extends(SendBeaconTransport, _super);\n function SendBeaconTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SendBeaconTransport.prototype.send = function (serverUrl, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!(globalScope === null || globalScope === void 0 ? void 0 : globalScope.navigator.sendBeacon)) {\n throw new Error('SendBeaconTransport is not supported');\n }\n try {\n var data = JSON.stringify(payload);\n var success = globalScope.navigator.sendBeacon(serverUrl, JSON.stringify(payload));\n if (success) {\n return resolve(_this.buildResponse({\n code: 200,\n events_ingested: payload.events.length,\n payload_size_bytes: data.length,\n server_upload_time: Date.now(),\n }));\n }\n return resolve(_this.buildResponse({ code: 500 }));\n }\n catch (e) {\n reject(e);\n }\n })];\n });\n });\n };\n return SendBeaconTransport;\n}(BaseTransport));\nexport { SendBeaconTransport };\n//# sourceMappingURL=send-beacon.js.map","import { __awaiter, __generator, __read } from \"tslib\";\nimport { getOldCookieName } from '@amplitude/analytics-client-common';\nexport var parseLegacyCookies = function (apiKey, cookieStorage, deleteLegacyCookies) {\n if (deleteLegacyCookies === void 0) { deleteLegacyCookies = true; }\n return __awaiter(void 0, void 0, void 0, function () {\n var cookieName, cookies, _a, deviceId, userId, optOut, sessionId, lastEventTime, lastEventId;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n cookieName = getOldCookieName(apiKey);\n return [4 /*yield*/, cookieStorage.getRaw(cookieName)];\n case 1:\n cookies = _b.sent();\n if (!cookies) {\n return [2 /*return*/, {\n optOut: false,\n }];\n }\n if (!deleteLegacyCookies) return [3 /*break*/, 3];\n return [4 /*yield*/, cookieStorage.remove(cookieName)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _a = __read(cookies.split('.'), 6), deviceId = _a[0], userId = _a[1], optOut = _a[2], sessionId = _a[3], lastEventTime = _a[4], lastEventId = _a[5];\n return [2 /*return*/, {\n deviceId: deviceId,\n userId: decode(userId),\n sessionId: parseTime(sessionId),\n lastEventId: parseTime(lastEventId),\n lastEventTime: parseTime(lastEventTime),\n optOut: Boolean(optOut),\n }];\n }\n });\n });\n};\nexport var parseTime = function (num) {\n var integer = parseInt(num, 32);\n if (isNaN(integer)) {\n return undefined;\n }\n return integer;\n};\nexport var decode = function (value) {\n if (!atob || !escape || !value) {\n return undefined;\n }\n try {\n return decodeURIComponent(escape(atob(value)));\n }\n catch (_a) {\n return undefined;\n }\n};\n//# sourceMappingURL=index.js.map","export var DEFAULT_EVENT_PREFIX = '[Amplitude]';\nexport var DEFAULT_PAGE_VIEW_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Page Viewed\");\nexport var DEFAULT_FORM_START_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Started\");\nexport var DEFAULT_FORM_SUBMIT_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Submitted\");\nexport var DEFAULT_FILE_DOWNLOAD_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" File Downloaded\");\nexport var DEFAULT_SESSION_START_EVENT = 'session_start';\nexport var DEFAULT_SESSION_END_EVENT = 'session_end';\nexport var FILE_EXTENSION = \"\".concat(DEFAULT_EVENT_PREFIX, \" File Extension\");\nexport var FILE_NAME = \"\".concat(DEFAULT_EVENT_PREFIX, \" File Name\");\nexport var LINK_ID = \"\".concat(DEFAULT_EVENT_PREFIX, \" Link ID\");\nexport var LINK_TEXT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Link Text\");\nexport var LINK_URL = \"\".concat(DEFAULT_EVENT_PREFIX, \" Link URL\");\nexport var FORM_ID = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form ID\");\nexport var FORM_NAME = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Name\");\nexport var FORM_DESTINATION = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Destination\");\nexport var DEFAULT_IDENTITY_STORAGE = 'cookie';\nexport var DEFAULT_SERVER_ZONE = 'US';\n//# sourceMappingURL=constants.js.map","import { __assign, __awaiter, __extends, __generator } from \"tslib\";\nimport { LogLevel, } from '@amplitude/analytics-types';\nimport { Config, Logger, MemoryStorage, UUID } from '@amplitude/analytics-core';\nimport { CookieStorage, getCookieName, FetchTransport, getQueryParams } from '@amplitude/analytics-client-common';\nimport { LocalStorage } from './storage/local-storage';\nimport { SessionStorage } from './storage/session-storage';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { parseLegacyCookies } from './cookie-migration';\nimport { DEFAULT_IDENTITY_STORAGE, DEFAULT_SERVER_ZONE } from './constants';\n// Exported for testing purposes only. Do not expose to public interface.\nvar BrowserConfig = /** @class */ (function (_super) {\n __extends(BrowserConfig, _super);\n function BrowserConfig(apiKey, appVersion, cookieStorage, cookieOptions, defaultTracking, deviceId, flushIntervalMillis, flushMaxRetries, flushQueueSize, identityStorage, ingestionMetadata, instanceName, lastEventId, lastEventTime, loggerProvider, logLevel, minIdLength, offline, optOut, partnerId, plan, serverUrl, serverZone, sessionId, sessionTimeout, storageProvider, trackingOptions, transport, useBatch, userId, pageCounter) {\n if (cookieStorage === void 0) { cookieStorage = new MemoryStorage(); }\n if (cookieOptions === void 0) { cookieOptions = {\n domain: '',\n expiration: 365,\n sameSite: 'Lax',\n secure: false,\n upgrade: true,\n }; }\n if (flushIntervalMillis === void 0) { flushIntervalMillis = 1000; }\n if (flushMaxRetries === void 0) { flushMaxRetries = 5; }\n if (flushQueueSize === void 0) { flushQueueSize = 30; }\n if (identityStorage === void 0) { identityStorage = DEFAULT_IDENTITY_STORAGE; }\n if (loggerProvider === void 0) { loggerProvider = new Logger(); }\n if (logLevel === void 0) { logLevel = LogLevel.Warn; }\n if (offline === void 0) { offline = false; }\n if (optOut === void 0) { optOut = false; }\n if (serverUrl === void 0) { serverUrl = ''; }\n if (serverZone === void 0) { serverZone = DEFAULT_SERVER_ZONE; }\n if (sessionTimeout === void 0) { sessionTimeout = 30 * 60 * 1000; }\n if (storageProvider === void 0) { storageProvider = new LocalStorage({ loggerProvider: loggerProvider }); }\n if (trackingOptions === void 0) { trackingOptions = {\n ipAddress: true,\n language: true,\n platform: true,\n }; }\n if (transport === void 0) { transport = 'fetch'; }\n if (useBatch === void 0) { useBatch = false; }\n var _this = _super.call(this, { apiKey: apiKey, storageProvider: storageProvider, transportProvider: createTransport(transport) }) || this;\n _this.apiKey = apiKey;\n _this.appVersion = appVersion;\n _this.cookieOptions = cookieOptions;\n _this.defaultTracking = defaultTracking;\n _this.flushIntervalMillis = flushIntervalMillis;\n _this.flushMaxRetries = flushMaxRetries;\n _this.flushQueueSize = flushQueueSize;\n _this.identityStorage = identityStorage;\n _this.ingestionMetadata = ingestionMetadata;\n _this.instanceName = instanceName;\n _this.loggerProvider = loggerProvider;\n _this.logLevel = logLevel;\n _this.minIdLength = minIdLength;\n _this.offline = offline;\n _this.partnerId = partnerId;\n _this.plan = plan;\n _this.serverUrl = serverUrl;\n _this.serverZone = serverZone;\n _this.sessionTimeout = sessionTimeout;\n _this.storageProvider = storageProvider;\n _this.trackingOptions = trackingOptions;\n _this.transport = transport;\n _this.useBatch = useBatch;\n _this._optOut = false;\n _this._cookieStorage = cookieStorage;\n _this.deviceId = deviceId;\n _this.lastEventId = lastEventId;\n _this.lastEventTime = lastEventTime;\n _this.optOut = optOut;\n _this.sessionId = sessionId;\n _this.pageCounter = pageCounter;\n _this.userId = userId;\n _this.loggerProvider.enable(_this.logLevel);\n return _this;\n }\n Object.defineProperty(BrowserConfig.prototype, \"cookieStorage\", {\n get: function () {\n return this._cookieStorage;\n },\n set: function (cookieStorage) {\n if (this._cookieStorage !== cookieStorage) {\n this._cookieStorage = cookieStorage;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"deviceId\", {\n get: function () {\n return this._deviceId;\n },\n set: function (deviceId) {\n if (this._deviceId !== deviceId) {\n this._deviceId = deviceId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"userId\", {\n get: function () {\n return this._userId;\n },\n set: function (userId) {\n if (this._userId !== userId) {\n this._userId = userId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"sessionId\", {\n get: function () {\n return this._sessionId;\n },\n set: function (sessionId) {\n if (this._sessionId !== sessionId) {\n this._sessionId = sessionId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"optOut\", {\n get: function () {\n return this._optOut;\n },\n set: function (optOut) {\n if (this._optOut !== optOut) {\n this._optOut = optOut;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"lastEventTime\", {\n get: function () {\n return this._lastEventTime;\n },\n set: function (lastEventTime) {\n if (this._lastEventTime !== lastEventTime) {\n this._lastEventTime = lastEventTime;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"lastEventId\", {\n get: function () {\n return this._lastEventId;\n },\n set: function (lastEventId) {\n if (this._lastEventId !== lastEventId) {\n this._lastEventId = lastEventId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"pageCounter\", {\n get: function () {\n return this._pageCounter;\n },\n set: function (pageCounter) {\n if (this._pageCounter !== pageCounter) {\n this._pageCounter = pageCounter;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n BrowserConfig.prototype.updateStorage = function () {\n var cache = {\n deviceId: this._deviceId,\n userId: this._userId,\n sessionId: this._sessionId,\n optOut: this._optOut,\n lastEventTime: this._lastEventTime,\n lastEventId: this._lastEventId,\n pageCounter: this._pageCounter,\n };\n void this.cookieStorage.set(getCookieName(this.apiKey), cache);\n };\n return BrowserConfig;\n}(Config));\nexport { BrowserConfig };\nexport var useBrowserConfig = function (apiKey, options, amplitudeInstance) {\n if (options === void 0) { options = {}; }\n return __awaiter(void 0, void 0, void 0, function () {\n var identityStorage, cookieOptions, _a, _b, cookieStorage, legacyCookies, previousCookies, queryParams, deviceId, lastEventId, lastEventTime, optOut, sessionId, userId, trackingOptions, pageCounter;\n var _c;\n var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;\n return __generator(this, function (_3) {\n switch (_3.label) {\n case 0:\n identityStorage = options.identityStorage || DEFAULT_IDENTITY_STORAGE;\n _c = {};\n if (!(identityStorage !== DEFAULT_IDENTITY_STORAGE)) return [3 /*break*/, 1];\n _a = '';\n return [3 /*break*/, 5];\n case 1:\n if (!((_e = (_d = options.cookieOptions) === null || _d === void 0 ? void 0 : _d.domain) !== null && _e !== void 0)) return [3 /*break*/, 2];\n _b = _e;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, getTopLevelDomain()];\n case 3:\n _b = (_3.sent());\n _3.label = 4;\n case 4:\n _a = _b;\n _3.label = 5;\n case 5:\n cookieOptions = __assign.apply(void 0, [(_c.domain = _a, _c.expiration = 365, _c.sameSite = 'Lax', _c.secure = false, _c.upgrade = true, _c), options.cookieOptions]);\n cookieStorage = createCookieStorage(options.identityStorage, cookieOptions);\n return [4 /*yield*/, parseLegacyCookies(apiKey, cookieStorage, (_g = (_f = options.cookieOptions) === null || _f === void 0 ? void 0 : _f.upgrade) !== null && _g !== void 0 ? _g : true)];\n case 6:\n legacyCookies = _3.sent();\n return [4 /*yield*/, cookieStorage.get(getCookieName(apiKey))];\n case 7:\n previousCookies = _3.sent();\n queryParams = getQueryParams();\n deviceId = (_m = (_l = (_k = (_j = (_h = options.deviceId) !== null && _h !== void 0 ? _h : queryParams.ampDeviceId) !== null && _j !== void 0 ? _j : queryParams.deviceId) !== null && _k !== void 0 ? _k : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _l !== void 0 ? _l : legacyCookies.deviceId) !== null && _m !== void 0 ? _m : UUID();\n lastEventId = (_o = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventId) !== null && _o !== void 0 ? _o : legacyCookies.lastEventId;\n lastEventTime = (_p = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventTime) !== null && _p !== void 0 ? _p : legacyCookies.lastEventTime;\n optOut = (_r = (_q = options.optOut) !== null && _q !== void 0 ? _q : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.optOut) !== null && _r !== void 0 ? _r : legacyCookies.optOut;\n sessionId = (_s = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.sessionId) !== null && _s !== void 0 ? _s : legacyCookies.sessionId;\n userId = (_u = (_t = options.userId) !== null && _t !== void 0 ? _t : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _u !== void 0 ? _u : legacyCookies.userId;\n amplitudeInstance.previousSessionDeviceId = (_v = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _v !== void 0 ? _v : legacyCookies.deviceId;\n amplitudeInstance.previousSessionUserId = (_w = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _w !== void 0 ? _w : legacyCookies.userId;\n trackingOptions = {\n ipAddress: (_y = (_x = options.trackingOptions) === null || _x === void 0 ? void 0 : _x.ipAddress) !== null && _y !== void 0 ? _y : true,\n language: (_0 = (_z = options.trackingOptions) === null || _z === void 0 ? void 0 : _z.language) !== null && _0 !== void 0 ? _0 : true,\n platform: (_2 = (_1 = options.trackingOptions) === null || _1 === void 0 ? void 0 : _1.platform) !== null && _2 !== void 0 ? _2 : true,\n };\n pageCounter = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.pageCounter;\n return [2 /*return*/, new BrowserConfig(apiKey, options.appVersion, cookieStorage, cookieOptions, options.defaultTracking, deviceId, options.flushIntervalMillis, options.flushMaxRetries, options.flushQueueSize, identityStorage, options.ingestionMetadata, options.instanceName, lastEventId, lastEventTime, options.loggerProvider, options.logLevel, options.minIdLength, options.offline, optOut, options.partnerId, options.plan, options.serverUrl, options.serverZone, sessionId, options.sessionTimeout, options.storageProvider, trackingOptions, options.transport, options.useBatch, userId, pageCounter)];\n }\n });\n });\n};\nexport var createCookieStorage = function (identityStorage, cookieOptions) {\n if (identityStorage === void 0) { identityStorage = DEFAULT_IDENTITY_STORAGE; }\n if (cookieOptions === void 0) { cookieOptions = {}; }\n switch (identityStorage) {\n case 'localStorage':\n return new LocalStorage();\n case 'sessionStorage':\n return new SessionStorage();\n case 'none':\n return new MemoryStorage();\n case 'cookie':\n default:\n return new CookieStorage(__assign(__assign({}, cookieOptions), { expirationDays: cookieOptions.expiration }));\n }\n};\nexport var createTransport = function (transport) {\n if (transport === 'xhr') {\n return new XHRTransport();\n }\n if (transport === 'beacon') {\n return new SendBeaconTransport();\n }\n return new FetchTransport();\n};\nexport var getTopLevelDomain = function (url) { return __awaiter(void 0, void 0, void 0, function () {\n var host, parts, levels, storageKey, i, i, domain, options, storage, value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, new CookieStorage().isEnabled()];\n case 1:\n if (!(_a.sent()) ||\n (!url && (typeof location === 'undefined' || !location.hostname))) {\n return [2 /*return*/, ''];\n }\n host = url !== null && url !== void 0 ? url : location.hostname;\n parts = host.split('.');\n levels = [];\n storageKey = 'AMP_TLDTEST';\n for (i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n i = 0;\n _a.label = 2;\n case 2:\n if (!(i < levels.length)) return [3 /*break*/, 7];\n domain = levels[i];\n options = { domain: '.' + domain };\n storage = new CookieStorage(options);\n return [4 /*yield*/, storage.set(storageKey, 1)];\n case 3:\n _a.sent();\n return [4 /*yield*/, storage.get(storageKey)];\n case 4:\n value = _a.sent();\n if (!value) return [3 /*break*/, 6];\n return [4 /*yield*/, storage.remove(storageKey)];\n case 5:\n _a.sent();\n return [2 /*return*/, '.' + domain];\n case 6:\n i++;\n return [3 /*break*/, 2];\n case 7: return [2 /*return*/, ''];\n }\n });\n}); };\n//# sourceMappingURL=config.js.map","export var omitUndefined = function (input) {\n var obj = {};\n for (var key in input) {\n var val = input[key];\n if (val) {\n obj[key] = val;\n }\n }\n return obj;\n};\n//# sourceMappingURL=utils.js.map","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport { IdentifyOperation, } from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { omitUndefined } from './utils';\nexport var defaultPageViewEvent = '[Amplitude] Page Viewed';\nexport var pageViewTrackingPlugin = function (options) {\n if (options === void 0) { options = {}; }\n var amplitude;\n var globalScope = getGlobalScope();\n var loggerProvider = undefined;\n var pushState;\n var localConfig;\n var trackOn = options.trackOn, trackHistoryChanges = options.trackHistoryChanges, _a = options.eventType, eventType = _a === void 0 ? defaultPageViewEvent : _a;\n var createPageViewEvent = function () { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _b = {\n event_type: eventType\n };\n _a = [{}];\n return [4 /*yield*/, getCampaignParams()];\n case 1: return [2 /*return*/, (_b.event_properties = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { '[Amplitude] Page Domain': \n /* istanbul ignore next */ (typeof location !== 'undefined' && location.hostname) || '', '[Amplitude] Page Location': \n /* istanbul ignore next */ (typeof location !== 'undefined' && location.href) || '', '[Amplitude] Page Path': \n /* istanbul ignore next */ (typeof location !== 'undefined' && location.pathname) || '', '[Amplitude] Page Title': /* istanbul ignore next */ (typeof document !== 'undefined' && document.title) || '', '[Amplitude] Page URL': \n /* istanbul ignore next */ (typeof location !== 'undefined' && location.href.split('?')[0]) || '' }]),\n _b)];\n }\n });\n }); };\n var shouldTrackOnPageLoad = function () { return typeof trackOn === 'undefined' || (typeof trackOn === 'function' && trackOn()); };\n /* istanbul ignore next */\n var previousURL = typeof location !== 'undefined' ? location.href : null;\n var trackHistoryPageView = function () { return __awaiter(void 0, void 0, void 0, function () {\n var newURL, shouldTrackPageView, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n newURL = location.href;\n shouldTrackPageView = shouldTrackHistoryPageView(trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad();\n // Note: Update `previousURL` in the same clock tick as `shouldTrackHistoryPageView()`\n // This was previously done after `amplitude?.track(await createPageViewEvent());` and\n // causes a concurrency issue where app triggers `pushState` twice with the same URL target\n // but `previousURL` is only updated after the second `pushState` producing two page viewed events\n previousURL = newURL;\n if (!shouldTrackPageView) return [3 /*break*/, 4];\n /* istanbul ignore next */\n loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.log('Tracking page view event');\n if (!(amplitude === null || amplitude === void 0)) return [3 /*break*/, 1];\n _a = void 0;\n return [3 /*break*/, 3];\n case 1:\n _c = (_b = amplitude).track;\n return [4 /*yield*/, createPageViewEvent()];\n case 2:\n _a = _c.apply(_b, [_d.sent()]);\n _d.label = 3;\n case 3:\n _a;\n _d.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); };\n /* istanbul ignore next */\n var trackHistoryPageViewWrapper = function () {\n void trackHistoryPageView();\n };\n var plugin = {\n name: '@amplitude/plugin-page-view-tracking-browser',\n type: 'enrichment',\n setup: function (config, client) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n amplitude = client;\n localConfig = config;\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n if (globalScope) {\n globalScope.addEventListener('popstate', trackHistoryPageViewWrapper);\n // Save reference to original push state, to be used in teardown\n // eslint-disable-next-line @typescript-eslint/unbound-method\n pushState = globalScope.history.pushState;\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: function (target, thisArg, _a) {\n var _b = __read(_a, 3), state = _b[0], unused = _b[1], url = _b[2];\n target.apply(thisArg, [state, unused, url]);\n void trackHistoryPageView();\n },\n });\n }\n if (!shouldTrackOnPageLoad()) return [3 /*break*/, 2];\n loggerProvider.log('Tracking page view event');\n _b = (_a = amplitude).track;\n return [4 /*yield*/, createPageViewEvent()];\n case 1:\n _b.apply(_a, [_c.sent()]);\n _c.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); },\n execute: function (event) { return __awaiter(void 0, void 0, void 0, function () {\n var pageViewEvent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(trackOn === 'attribution' && isCampaignEvent(event))) return [3 /*break*/, 2];\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.log('Enriching campaign event to page view event with campaign parameters');\n return [4 /*yield*/, createPageViewEvent()];\n case 1:\n pageViewEvent = _a.sent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = __assign(__assign({}, event.event_properties), pageViewEvent.event_properties);\n _a.label = 2;\n case 2:\n // Update the pageCounter for the page view event\n if (localConfig && event.event_type === eventType) {\n localConfig.pageCounter = !localConfig.pageCounter ? 1 : localConfig.pageCounter + 1;\n event.event_properties = __assign(__assign({}, event.event_properties), { '[Amplitude] Page Counter': localConfig.pageCounter });\n }\n return [2 /*return*/, event];\n }\n });\n }); },\n teardown: function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (globalScope) {\n globalScope.removeEventListener('popstate', trackHistoryPageViewWrapper);\n if (pushState) {\n globalScope.history.pushState = pushState;\n }\n }\n return [2 /*return*/];\n });\n }); },\n };\n return plugin;\n};\nvar getCampaignParams = function () { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = omitUndefined;\n return [4 /*yield*/, new CampaignParser().parse()];\n case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n }\n}); }); };\nvar isCampaignEvent = function (event) {\n if (event.event_type === '$identify' && event.user_properties) {\n var properties = event.user_properties;\n var $set = properties[IdentifyOperation.SET] || {};\n var $unset = properties[IdentifyOperation.UNSET] || {};\n var userProperties_1 = __spreadArray(__spreadArray([], __read(Object.keys($set)), false), __read(Object.keys($unset)), false);\n return Object.keys(BASE_CAMPAIGN).every(function (value) { return userProperties_1.includes(value); });\n }\n return false;\n};\nexport var shouldTrackHistoryPageView = function (trackingOption, newURL, oldURL) {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};\n//# sourceMappingURL=page-view-tracking.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { DEFAULT_FORM_START_EVENT, DEFAULT_FORM_SUBMIT_EVENT, FORM_ID, FORM_NAME, FORM_DESTINATION, } from '../constants';\nexport var formInteractionTracking = function () {\n var observer;\n var eventListeners = [];\n var addEventListener = function (element, type, handler) {\n element.addEventListener(type, handler);\n eventListeners.push({\n element: element,\n type: type,\n handler: handler,\n });\n };\n var removeClickListeners = function () {\n eventListeners.forEach(function (_a) {\n var element = _a.element, type = _a.type, handler = _a.handler;\n /* istanbul ignore next */\n element === null || element === void 0 ? void 0 : element.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n var name = '@amplitude/plugin-form-interaction-tracking-browser';\n var type = 'enrichment';\n var setup = function (config, amplitude) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // The form interaction plugin observes changes in the dom. For this to work correctly, the observer can only be setup\n // after the body is built. When Amplitud gets initialized in a script tag, the body tag is still unavailable. So register this\n // only after the window is loaded\n // eslint-disable-next-line no-restricted-globals\n window.addEventListener('load', function () {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn('Form interaction tracking requires a later version of @amplitude/analytics-browser. Form interaction events are not tracked.');\n return;\n }\n /* istanbul ignore if */\n if (typeof document === 'undefined') {\n return;\n }\n var addFormInteractionListener = function (form) {\n var hasFormChanged = false;\n addEventListener(form, 'change', function () {\n var _a;\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, (_a = {},\n _a[FORM_ID] = stringOrUndefined(form.id),\n _a[FORM_NAME] = stringOrUndefined(form.name),\n _a[FORM_DESTINATION] = form.action,\n _a));\n }\n hasFormChanged = true;\n });\n addEventListener(form, 'submit', function () {\n var _a, _b;\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, (_a = {},\n _a[FORM_ID] = stringOrUndefined(form.id),\n _a[FORM_NAME] = stringOrUndefined(form.name),\n _a[FORM_DESTINATION] = form.action,\n _a));\n }\n amplitude.track(DEFAULT_FORM_SUBMIT_EVENT, (_b = {},\n _b[FORM_ID] = stringOrUndefined(form.id),\n _b[FORM_NAME] = stringOrUndefined(form.name),\n _b[FORM_DESTINATION] = form.action,\n _b));\n hasFormChanged = false;\n });\n };\n // Adds listener to existing anchor tags\n var forms = Array.from(document.getElementsByTagName('form'));\n forms.forEach(addFormInteractionListener);\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(function (node) {\n if (node.nodeName === 'FORM') {\n addFormInteractionListener(node);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('form')).map(addFormInteractionListener);\n }\n });\n });\n });\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n });\n return [2 /*return*/];\n });\n }); };\n var execute = function (event) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/, event];\n }); }); };\n var teardown = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n observer === null || observer === void 0 ? void 0 : observer.disconnect();\n removeClickListeners();\n return [2 /*return*/];\n });\n }); };\n return {\n name: name,\n type: type,\n setup: setup,\n execute: execute,\n teardown: teardown,\n };\n};\nexport var stringOrUndefined = function (name) {\n /* istanbul ignore if */\n if (typeof name !== 'string') {\n // We found instances where the value of `name` is an Element and not a string.\n // Elements may have circular references and would throw an error when passed to `JSON.stringify(...)`.\n // If a non-string value is seen, assume there is no value.\n return undefined;\n }\n return name;\n};\n//# sourceMappingURL=form-interaction-tracking.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { DEFAULT_FILE_DOWNLOAD_EVENT, FILE_EXTENSION, FILE_NAME, LINK_ID, LINK_TEXT, LINK_URL } from '../constants';\nexport var fileDownloadTracking = function () {\n var observer;\n var eventListeners = [];\n var addEventListener = function (element, type, handler) {\n element.addEventListener(type, handler);\n eventListeners.push({\n element: element,\n type: type,\n handler: handler,\n });\n };\n var removeClickListeners = function () {\n eventListeners.forEach(function (_a) {\n var element = _a.element, type = _a.type, handler = _a.handler;\n /* istanbul ignore next */\n element === null || element === void 0 ? void 0 : element.removeEventListener(type, handler);\n });\n eventListeners = [];\n };\n var name = '@amplitude/plugin-file-download-tracking-browser';\n var type = 'enrichment';\n var setup = function (config, amplitude) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // The form interaction plugin observes changes in the dom. For this to work correctly, the observer can only be setup\n // after the body is built. When Amplitud gets initialized in a script tag, the body tag is still unavailable. So register this\n // only after the window is loaded\n // eslint-disable-next-line no-restricted-globals\n window.addEventListener('load', function () {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn('File download tracking requires a later version of @amplitude/analytics-browser. File download events are not tracked.');\n return;\n }\n /* istanbul ignore if */\n if (typeof document === 'undefined') {\n return;\n }\n var addFileDownloadListener = function (a) {\n var url;\n try {\n // eslint-disable-next-line no-restricted-globals\n url = new URL(a.href, window.location.href);\n }\n catch (_a) {\n /* istanbul ignore next */\n return;\n }\n var result = ext.exec(url.href);\n var fileExtension = result === null || result === void 0 ? void 0 : result[1];\n if (fileExtension) {\n addEventListener(a, 'click', function () {\n var _a;\n if (fileExtension) {\n amplitude.track(DEFAULT_FILE_DOWNLOAD_EVENT, (_a = {},\n _a[FILE_EXTENSION] = fileExtension,\n _a[FILE_NAME] = url.pathname,\n _a[LINK_ID] = a.id,\n _a[LINK_TEXT] = a.text,\n _a[LINK_URL] = a.href,\n _a));\n }\n });\n }\n };\n var ext = /\\.(pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)$/;\n // Adds listener to existing anchor tags\n var links = Array.from(document.getElementsByTagName('a'));\n links.forEach(addFileDownloadListener);\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(function (node) {\n if (node.nodeName === 'A') {\n addFileDownloadListener(node);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('a')).map(addFileDownloadListener);\n }\n });\n });\n });\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n });\n return [2 /*return*/];\n });\n }); };\n var execute = function (event) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/, event];\n }); }); };\n var teardown = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n observer === null || observer === void 0 ? void 0 : observer.disconnect();\n removeClickListeners();\n return [2 /*return*/];\n });\n }); };\n return {\n name: name,\n type: type,\n setup: setup,\n execute: execute,\n teardown: teardown,\n };\n};\n//# sourceMappingURL=file-download-tracking.js.map","var notified = false;\nexport var detNotify = function (config) {\n if (notified || config.defaultTracking !== undefined) {\n return;\n }\n var message = \"`options.defaultTracking` is set to undefined. This implicitly configures your Amplitude instance to track Page Views, Sessions, File Downloads, and Form Interactions. You can suppress this warning by explicitly setting a value to `options.defaultTracking`. The value must either be a boolean, to enable and disable all default events, or an object, for advanced configuration. For example:\\n\\namplitude.init(, {\\n defaultTracking: true,\\n});\\n\\nVisit https://www.docs.developers.amplitude.com/data/sdks/browser-2/#tracking-default-events for more details.\";\n config.loggerProvider.warn(message);\n notified = true;\n};\n/**\n * @private\n * This function is meant for testing purposes only\n */\nexport var resetNotify = function () {\n notified = false;\n};\n//# sourceMappingURL=det-notification.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\nexport var networkConnectivityCheckerPlugin = function () {\n var name = '@amplitude/plugin-network-checker-browser';\n var type = 'before';\n var globalScope = getGlobalScope();\n var eventListeners = [];\n var addNetworkListener = function (type, handler) {\n if (globalScope) {\n globalScope.addEventListener(type, handler);\n eventListeners.push({\n type: type,\n handler: handler,\n });\n }\n };\n var removeNetworkListeners = function () {\n eventListeners.forEach(function (_a) {\n var type = _a.type, handler = _a.handler;\n if (globalScope) {\n globalScope.removeEventListener(type, handler);\n }\n });\n eventListeners = [];\n };\n var setup = function (config, amplitude) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n config.offline = !navigator.onLine;\n addNetworkListener('online', function () {\n config.loggerProvider.debug('Network connectivity changed to online.');\n config.offline = false;\n // Flush immediately will cause ERR_NETWORK_CHANGED\n setTimeout(function () {\n amplitude.flush();\n }, config.flushIntervalMillis);\n });\n addNetworkListener('offline', function () {\n config.loggerProvider.debug('Network connectivity changed to offline.');\n config.offline = true;\n });\n return [2 /*return*/];\n });\n }); };\n var teardown = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n removeNetworkListeners();\n return [2 /*return*/];\n });\n }); };\n return {\n name: name,\n type: type,\n setup: setup,\n teardown: teardown,\n };\n};\n//# sourceMappingURL=network-connectivity-checker.js.map","import { __assign, __awaiter, __extends, __generator } from \"tslib\";\nimport { AmplitudeCore, Destination, Identify, returnWrapper, Revenue, UUID } from '@amplitude/analytics-core';\nimport { getAnalyticsConnector, getAttributionTrackingConfig, getPageViewTrackingConfig, IdentityEventSender, isAttributionTrackingEnabled, isSessionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, setConnectorDeviceId, setConnectorUserId, isNewSession, isPageViewTrackingEnabled, WebAttribution, getQueryParams, } from '@amplitude/analytics-client-common';\nimport { OfflineDisabled, } from '@amplitude/analytics-types';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport } from './config';\nimport { pageViewTrackingPlugin } from '@amplitude/plugin-page-view-tracking-browser';\nimport { formInteractionTracking } from './plugins/form-interaction-tracking';\nimport { fileDownloadTracking } from './plugins/file-download-tracking';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from './constants';\nimport { detNotify } from './det-notification';\nimport { networkConnectivityCheckerPlugin } from './plugins/network-connectivity-checker';\nvar AmplitudeBrowser = /** @class */ (function (_super) {\n __extends(AmplitudeBrowser, _super);\n function AmplitudeBrowser() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AmplitudeBrowser.prototype.init = function (apiKey, userIdOrOptions, maybeOptions) {\n if (apiKey === void 0) { apiKey = ''; }\n var userId;\n var options;\n if (arguments.length > 2) {\n userId = userIdOrOptions;\n options = maybeOptions;\n }\n else {\n if (typeof userIdOrOptions === 'string') {\n userId = userIdOrOptions;\n options = undefined;\n }\n else {\n userId = userIdOrOptions === null || userIdOrOptions === void 0 ? void 0 : userIdOrOptions.userId;\n options = userIdOrOptions;\n }\n }\n return returnWrapper(this._init(__assign(__assign({}, options), { userId: userId, apiKey: apiKey })));\n };\n AmplitudeBrowser.prototype._init = function (options) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var browserOptions, attributionTrackingOptions, queryParams, querySessionId, connector;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Step 1: Block concurrent initialization\n if (this.initializing) {\n return [2 /*return*/];\n }\n this.initializing = true;\n return [4 /*yield*/, useBrowserConfig(options.apiKey, options, this)];\n case 1:\n browserOptions = _d.sent();\n return [4 /*yield*/, _super.prototype._init.call(this, browserOptions)];\n case 2:\n _d.sent();\n if (!isAttributionTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 4];\n attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n // Fetch the current campaign, check if need to track web attribution later\n return [4 /*yield*/, this.webAttribution.init()];\n case 3:\n // Fetch the current campaign, check if need to track web attribution later\n _d.sent();\n _d.label = 4;\n case 4:\n queryParams = getQueryParams();\n querySessionId = Number.isNaN(Number(queryParams.ampSessionId))\n ? undefined\n : Number(queryParams.ampSessionId);\n this.setSessionId((_c = (_b = (_a = options.sessionId) !== null && _a !== void 0 ? _a : querySessionId) !== null && _b !== void 0 ? _b : this.config.sessionId) !== null && _c !== void 0 ? _c : Date.now());\n connector = getAnalyticsConnector(options.instanceName);\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n if (!(this.config.offline !== OfflineDisabled)) return [3 /*break*/, 6];\n return [4 /*yield*/, this.add(networkConnectivityCheckerPlugin()).promise];\n case 5:\n _d.sent();\n _d.label = 6;\n case 6: return [4 /*yield*/, this.add(new Destination()).promise];\n case 7:\n _d.sent();\n return [4 /*yield*/, this.add(new Context()).promise];\n case 8:\n _d.sent();\n return [4 /*yield*/, this.add(new IdentityEventSender()).promise];\n case 9:\n _d.sent();\n // Notify if DET is enabled\n detNotify(this.config);\n if (!isFileDownloadTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 11];\n return [4 /*yield*/, this.add(fileDownloadTracking()).promise];\n case 10:\n _d.sent();\n _d.label = 11;\n case 11:\n if (!isFormInteractionTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 13];\n return [4 /*yield*/, this.add(formInteractionTracking()).promise];\n case 12:\n _d.sent();\n _d.label = 13;\n case 13:\n if (!isPageViewTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 15];\n return [4 /*yield*/, this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise];\n case 14:\n _d.sent();\n _d.label = 15;\n case 15:\n this.initializing = false;\n // Step 6: Run queued dispatch functions\n return [4 /*yield*/, this.runQueuedFunctions('dispatchQ')];\n case 16:\n // Step 6: Run queued dispatch functions\n _d.sent();\n // Step 7: Add the event receiver after running remaining queued functions.\n connector.eventBridge.setEventReceiver(function (event) {\n void _this.track(event.eventType, event.eventProperties);\n });\n return [2 /*return*/];\n }\n });\n });\n };\n AmplitudeBrowser.prototype.getUserId = function () {\n var _a;\n return (_a = this.config) === null || _a === void 0 ? void 0 : _a.userId;\n };\n AmplitudeBrowser.prototype.setUserId = function (userId) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n if (userId !== this.config.userId || userId === undefined) {\n this.config.userId = userId;\n setConnectorUserId(userId, this.config.instanceName);\n }\n };\n AmplitudeBrowser.prototype.getDeviceId = function () {\n var _a;\n return (_a = this.config) === null || _a === void 0 ? void 0 : _a.deviceId;\n };\n AmplitudeBrowser.prototype.setDeviceId = function (deviceId) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n setConnectorDeviceId(deviceId, this.config.instanceName);\n };\n AmplitudeBrowser.prototype.reset = function () {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n };\n AmplitudeBrowser.prototype.getSessionId = function () {\n var _a;\n return (_a = this.config) === null || _a === void 0 ? void 0 : _a.sessionId;\n };\n AmplitudeBrowser.prototype.setSessionId = function (sessionId) {\n var _a;\n var promises = [];\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return returnWrapper(Promise.resolve());\n }\n // Prevents starting a new session with the same session ID\n if (sessionId === this.config.sessionId) {\n return returnWrapper(Promise.resolve());\n }\n var previousSessionId = this.getSessionId();\n var lastEventTime = this.config.lastEventTime;\n var lastEventId = (_a = this.config.lastEventId) !== null && _a !== void 0 ? _a : -1;\n this.config.sessionId = sessionId;\n this.config.lastEventTime = undefined;\n this.config.pageCounter = 0;\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n if (previousSessionId && lastEventTime) {\n promises.push(this.track(DEFAULT_SESSION_END_EVENT, undefined, {\n device_id: this.previousSessionDeviceId,\n event_id: ++lastEventId,\n session_id: previousSessionId,\n time: lastEventTime + 1,\n user_id: this.previousSessionUserId,\n }).promise);\n }\n this.config.lastEventTime = this.config.sessionId;\n }\n // Fire web attribution event when enable webAttribution tracking\n // 1. has new campaign (call setSessionId from init function)\n // 2. or shouldTrackNewCampaign (call setSessionId from async process(event) when there has new campaign and resetSessionOnNewCampaign = true )\n var isCampaignEventTracked = this.trackCampaignEventIfNeeded(++lastEventId, promises);\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n promises.push(this.track(DEFAULT_SESSION_START_EVENT, undefined, {\n event_id: isCampaignEventTracked ? ++lastEventId : lastEventId,\n session_id: this.config.sessionId,\n time: this.config.lastEventTime,\n }).promise);\n }\n this.previousSessionDeviceId = this.config.deviceId;\n this.previousSessionUserId = this.config.userId;\n return returnWrapper(Promise.all(promises));\n };\n AmplitudeBrowser.prototype.extendSession = function () {\n if (!this.config) {\n this.q.push(this.extendSession.bind(this));\n return;\n }\n this.config.lastEventTime = Date.now();\n };\n AmplitudeBrowser.prototype.setTransport = function (transport) {\n if (!this.config) {\n this.q.push(this.setTransport.bind(this, transport));\n return;\n }\n this.config.transportProvider = createTransport(transport);\n };\n AmplitudeBrowser.prototype.identify = function (identify, eventOptions) {\n if (isInstanceProxy(identify)) {\n var queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n if (eventOptions === null || eventOptions === void 0 ? void 0 : eventOptions.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions === null || eventOptions === void 0 ? void 0 : eventOptions.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return _super.prototype.identify.call(this, identify, eventOptions);\n };\n AmplitudeBrowser.prototype.groupIdentify = function (groupType, groupName, identify, eventOptions) {\n if (isInstanceProxy(identify)) {\n var queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return _super.prototype.groupIdentify.call(this, groupType, groupName, identify, eventOptions);\n };\n AmplitudeBrowser.prototype.revenue = function (revenue, eventOptions) {\n if (isInstanceProxy(revenue)) {\n var queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return _super.prototype.revenue.call(this, revenue, eventOptions);\n };\n AmplitudeBrowser.prototype.trackCampaignEventIfNeeded = function (lastEventId, promises) {\n if (!this.webAttribution || !this.webAttribution.shouldTrackNewCampaign) {\n return false;\n }\n var campaignEvent = this.webAttribution.generateCampaignEvent(lastEventId);\n if (promises) {\n promises.push(this.track(campaignEvent).promise);\n }\n else {\n this.track(campaignEvent);\n }\n this.config.loggerProvider.log('Tracking attribution.');\n return true;\n };\n AmplitudeBrowser.prototype.process = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n var currentTime, isEventInNewSession, shouldSetSessionIdOnNewCampaign;\n return __generator(this, function (_a) {\n currentTime = Date.now();\n isEventInNewSession = isNewSession(this.config.sessionTimeout, this.config.lastEventTime);\n shouldSetSessionIdOnNewCampaign = this.webAttribution && this.webAttribution.shouldSetSessionIdOnNewCampaign();\n if (event.event_type !== DEFAULT_SESSION_START_EVENT &&\n event.event_type !== DEFAULT_SESSION_END_EVENT &&\n (!event.session_id || event.session_id === this.getSessionId())) {\n if (isEventInNewSession || shouldSetSessionIdOnNewCampaign) {\n this.setSessionId(currentTime);\n if (shouldSetSessionIdOnNewCampaign) {\n this.config.loggerProvider.log('Created a new session for new campaign.');\n }\n }\n else if (!isEventInNewSession) {\n // Web attribution should be tracked during the middle of a session\n // if there has been a chance in the campaign information.\n this.trackCampaignEventIfNeeded();\n }\n }\n return [2 /*return*/, _super.prototype.process.call(this, event)];\n });\n });\n };\n return AmplitudeBrowser;\n}(AmplitudeCore));\nexport { AmplitudeBrowser };\n//# sourceMappingURL=browser-client.js.map","import { debugWrapper, getClientLogConfig, getClientStates } from '@amplitude/analytics-core';\nimport { AmplitudeBrowser } from './browser-client';\nexport var createInstance = function () {\n var client = new AmplitudeBrowser();\n return {\n init: debugWrapper(client.init.bind(client), 'init', getClientLogConfig(client), getClientStates(client, ['config'])),\n add: debugWrapper(client.add.bind(client), 'add', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.plugins'])),\n remove: debugWrapper(client.remove.bind(client), 'remove', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.plugins'])),\n track: debugWrapper(client.track.bind(client), 'track', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n logEvent: debugWrapper(client.logEvent.bind(client), 'logEvent', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n identify: debugWrapper(client.identify.bind(client), 'identify', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n groupIdentify: debugWrapper(client.groupIdentify.bind(client), 'groupIdentify', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n setGroup: debugWrapper(client.setGroup.bind(client), 'setGroup', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n revenue: debugWrapper(client.revenue.bind(client), 'revenue', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n flush: debugWrapper(client.flush.bind(client), 'flush', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n getUserId: debugWrapper(client.getUserId.bind(client), 'getUserId', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId'])),\n setUserId: debugWrapper(client.setUserId.bind(client), 'setUserId', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId'])),\n getDeviceId: debugWrapper(client.getDeviceId.bind(client), 'getDeviceId', getClientLogConfig(client), getClientStates(client, ['config', 'config.deviceId'])),\n setDeviceId: debugWrapper(client.setDeviceId.bind(client), 'setDeviceId', getClientLogConfig(client), getClientStates(client, ['config', 'config.deviceId'])),\n reset: debugWrapper(client.reset.bind(client), 'reset', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId', 'config.deviceId'])),\n getSessionId: debugWrapper(client.getSessionId.bind(client), 'getSessionId', getClientLogConfig(client), getClientStates(client, ['config'])),\n setSessionId: debugWrapper(client.setSessionId.bind(client), 'setSessionId', getClientLogConfig(client), getClientStates(client, ['config'])),\n extendSession: debugWrapper(client.extendSession.bind(client), 'extendSession', getClientLogConfig(client), getClientStates(client, ['config'])),\n setOptOut: debugWrapper(client.setOptOut.bind(client), 'setOptOut', getClientLogConfig(client), getClientStates(client, ['config'])),\n setTransport: debugWrapper(client.setTransport.bind(client), 'setTransport', getClientLogConfig(client), getClientStates(client, ['config'])),\n };\n};\nexport default createInstance();\n//# sourceMappingURL=browser-client-factory.js.map","/* eslint-disable @typescript-eslint/unbound-method */\nimport client from './browser-client-factory';\nexport { createInstance } from './browser-client-factory';\nexport var add = client.add, extendSession = client.extendSession, flush = client.flush, getDeviceId = client.getDeviceId, getSessionId = client.getSessionId, getUserId = client.getUserId, groupIdentify = client.groupIdentify, identify = client.identify, init = client.init, logEvent = client.logEvent, remove = client.remove, reset = client.reset, revenue = client.revenue, setDeviceId = client.setDeviceId, setGroup = client.setGroup, setOptOut = client.setOptOut, setSessionId = client.setSessionId, setTransport = client.setTransport, setUserId = client.setUserId, track = client.track;\nexport { runQueuedFunctions } from './utils/snippet-helper';\nexport { Revenue, Identify } from '@amplitude/analytics-core';\nimport * as Types_1 from '@amplitude/analytics-types';\nexport { Types_1 as Types };\n//# sourceMappingURL=index.js.map","import { useEffect } from 'react';\n\nimport * as amplitude from '@amplitude/analytics-browser';\nimport { useUser } from '@clerk/clerk-react';\nimport { useSelector } from '@datagrid/state';\n\nimport { useAppInstanceId } from '@/core/appMeta';\nimport { configStore } from '@/core/stores';\n\nexport const AmplitudeInitialization = () => {\n\tconst config = useSelector(() => configStore.get());\n\tconst appInstanceId = useAppInstanceId();\n\n\tuseEffect(() => {\n\t\tif (config.amplitude?.api_key) {\n\t\t\tamplitude.init(config.amplitude.api_key, {\n\t\t\t\tappVersion: import.meta.env.VITE_APP_VERSION,\n\t\t\t\tdefaultTracking: {\n\t\t\t\t\tpageViews: true,\n\t\t\t\t\tsessions: true,\n\t\t\t\t\tformInteractions: false,\n\t\t\t\t\tfileDownloads: false,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}, [config.amplitude?.api_key]);\n\n\tconst { user } = useUser();\n\n\tuseEffect(() => {\n\t\tif (!config.amplitude?.api_key) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (user) {\n\t\t\tamplitude.setUserId(`${appInstanceId}:${String(user.id)}`);\n\t\t} else {\n\t\t\tamplitude.setUserId(undefined);\n\t\t}\n\t}, [config.amplitude?.api_key, appInstanceId, user]);\n\n\treturn null;\n};\n","import React, { useEffect } from 'react';\n\nimport { useUser } from '@clerk/clerk-react';\nimport { useSelector } from '@datagrid/state';\nimport * as Sentry from '@sentry/react';\nimport { createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from 'react-router-dom';\n\nimport { useAppInstanceId } from '@/core/appMeta';\nimport { configStore } from '@/core/stores';\n\nexport const SentryInitialization = () => {\n\tconst config = useSelector(() => configStore.get());\n\tconst appInstanceId = useAppInstanceId();\n\n\tuseEffect(() => {\n\t\tif (config?.sentry?.dsn) {\n\t\t\tSentry.init({\n\t\t\t\tenvironment: appInstanceId,\n\t\t\t\tdsn: config.sentry.dsn,\n\t\t\t\tintegrations: [\n\t\t\t\t\tnew Sentry.BrowserTracing({\n\t\t\t\t\t\troutingInstrumentation: Sentry.reactRouterV6Instrumentation(\n\t\t\t\t\t\t\tReact.useEffect,\n\t\t\t\t\t\t\tuseLocation,\n\t\t\t\t\t\t\tuseNavigationType,\n\t\t\t\t\t\t\tcreateRoutesFromChildren,\n\t\t\t\t\t\t\tmatchRoutes\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\trelease: import.meta.env.VITE_APP_VERSION,\n\t\t\t\ttracesSampleRate: 0.1,\n\t\t\t\treplaysSessionSampleRate: 0.1,\n\t\t\t\treplaysOnErrorSampleRate: 1.0,\n\t\t\t\tenabled: true,\n\t\t\t});\n\t\t}\n\t}, [appInstanceId, config.sentry?.dsn]);\n\n\tconst { user } = useUser();\n\n\tuseEffect(() => {\n\t\tSentry.setTag('instance', appInstanceId);\n\n\t\tif (user) {\n\t\t\tSentry.setUser({\n\t\t\t\tid: `${appInstanceId}:${String(user.id)}`,\n\t\t\t\tusername: user.username ?? '',\n\t\t\t\temail: user.primaryEmailAddress?.emailAddress ?? '',\n\t\t\t\t// TODO: add capabilities?\n\t\t\t});\n\t\t} else {\n\t\t\tSentry.setUser(null);\n\t\t}\n\t}, [appInstanceId, user]);\n\n\treturn null;\n};\n","import React, { useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { FilterItem } from '@tf/ui';\nimport {\n\tAvatar,\n\tBox,\n\tCenter,\n\tcreateStyles,\n\tFilterButton,\n\tFlex,\n\tIcon,\n\tSearchInput,\n\tStack,\n\tTFLoadingOverlay,\n\tTFLogo,\n\tTFText,\n\tTimeline,\n\tTitle,\n\tTooltip,\n} from '@tf/ui';\nimport { fmt, S } from '@tf/utils';\n\nimport { useAccountEventsLog } from '@/core/api/accountEvenstLog';\nimport { useOverviewAccount } from '@/core/api/overview';\nimport { useAccountParams } from '@/core/hooks';\nimport { getDisplayName } from '@/core/utils';\n\nconst ACCOUNT_STATUS_MESSAGES: Record = {\n\tACCOUNT_CREATED: 'created a new account',\n\tACCOUNT_CLOSED: 'closed the account',\n\tACCOUNT_ACTIVATED: 'activated the account',\n\tACCOUNT_REJECTED: 'rejected the application',\n\tACCOUNT_SUSPENDED: 'suspended the account',\n\tACCOUNT_USER_ASSIGNED: 'assigned a new manager to the account',\n\tACCOUNT_USER_UNASSIGNED: 'removed the manager from the account',\n\tREVIEW_PENDING: 'sent the account to compliance review',\n\tREVIEW_UPDATE_REQUIRED: 'requested more information to complete the review',\n\tREVIEW_VERIFIED: 'verified the account',\n\tREVIEW_COMMENTED: 'added a new comment',\n\tKYC_REVIEW_DATE_REACHED: 'KYC review is overdue',\n\tCLIENT_CASE_REQUEST_SENT: 'opened a new case',\n\tCLIENT_CASE_REQUEST_REVOKED: 'revoked the case',\n\tCLIENT_CASE_REQUEST_VIEWED: 'viewed the case',\n\tCLIENT_CASE_REQUEST_UPDATED: 'updated the case',\n\tCLIENT_CASE_REQUEST_CLOSED: 'closed the case',\n\tCRA_CALCULATED: 'calculated the customer risk rating',\n\tUSER_INVITATION_REVOKED: 'has revoked the user invitation',\n\tACCOUNT_ARCHIVED: 'has archived the account',\n};\n\nconst availableFilters = [\n\t{\n\t\tname: 'event',\n\t\tlabel: 'Events',\n\t\ttype: 'select',\n\t\tvalue: Object.entries(ACCOUNT_STATUS_MESSAGES).map(([key, value]) => ({\n\t\t\tlabel: value,\n\t\t\tvalue: key,\n\t\t})),\n\t},\n\t{\n\t\tname: 'date',\n\t\tlabel: 'Date range',\n\t\ttype: 'date',\n\t\tvalue: [null, null],\n\t},\n];\n\nconst useFilteredEvents = (events?: BackendTypes.AccountEventLogData) => {\n\tconst [searchValue, setSearchValue] = useState('');\n\tconst [filters, setFilters] = useState<{ id: string; value: unknown }[]>([]);\n\n\tif (!events) return;\n\tconst filteredEvents = events.filter((event) => {\n\t\tif (!filters.length && !searchValue) return true;\n\n\t\tconst eventFilters = filters.find((f) => f.id === 'event');\n\t\tconst dateFilters = filters.find((f) => f.id === 'date');\n\n\t\tlet matchesEventKind = true;\n\t\tlet matchesDateRange = true;\n\t\tlet matchesSearch = true;\n\n\t\tif (eventFilters) {\n\t\t\tmatchesEventKind = eventFilters.value === event.eventKind;\n\t\t}\n\n\t\tif (dateFilters && Array.isArray(dateFilters.value)) {\n\t\t\tconst [startDate, endDate] = dateFilters.value.map((dateStr) => new Date(dateStr));\n\t\t\tconst eventDate = new Date(event.createdAt);\n\t\t\teventDate.setHours(0, 0, 0, 0);\n\t\t\tmatchesDateRange = eventDate >= startDate && eventDate <= endDate;\n\t\t}\n\n\t\tif (searchValue) {\n\t\t\tconst eventLabel = ACCOUNT_STATUS_MESSAGES[event.eventKind]?.toLowerCase();\n\t\t\tmatchesSearch = eventLabel?.includes(searchValue.toLowerCase());\n\t\t}\n\n\t\treturn matchesEventKind && matchesDateRange && matchesSearch;\n\t});\n\n\treturn { filteredEvents, searchValue, setSearchValue, filters, setFilters };\n};\n\nconst useStyles = createStyles(() => ({\n\ttimelineItem: {\n\t\t'& > :not(:first-of-type)': {\n\t\t\tmarginTop: '20px !important',\n\t\t},\n\t\t'& > ::before': {\n\t\t\tbottom: 'calc(20px * -1) !important',\n\t\t},\n\t},\n}));\n\nexport const AccountEventLog = () => {\n\tconst { accountId } = useAccountParams();\n\n\tconst { data: events, isPending: isEventsLogPending } = useAccountEventsLog(accountId);\n\tconst { data } = useOverviewAccount(accountId);\n\tconst listUsers = data?.listUsers;\n\n\tconst sortedEvents = events?.slice().sort((a, b) => {\n\t\tconst createdAtA = new Date(b.createdAt).getTime();\n\t\tconst createdAtB = new Date(a.createdAt).getTime();\n\t\tif (a.eventKind !== 'ACCOUNT_CREATED' && b.eventKind === 'ACCOUNT_CREATED') {\n\t\t\treturn -1;\n\t\t}\n\t\treturn createdAtA - createdAtB;\n\t});\n\tconst eventsFilters = useFilteredEvents(sortedEvents);\n\tconst { classes } = useStyles();\n\n\tif (isEventsLogPending || !eventsFilters || !listUsers) {\n\t\treturn ;\n\t}\n\n\tconst { setSearchValue, filteredEvents, setFilters, filters, searchValue } = eventsFilters;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setSearchValue(v)} />\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t{!filteredEvents.length && (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tNo events found\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t{filteredEvents.map((event, index) => {\n\t\t\t\t\tconst { icon, name, userExists } = getTimelineData(event.eventKind, listUsers, event.authorId);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{ACCOUNT_STATUS_MESSAGES[event.eventKind] || S.prettify(event.eventKind)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!userExists && (\n\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\t\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)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fmt.toDate(event.createdAt, { preset: 'full_date_with_time' })}\n\t\t\t\t\t\t\t\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);\n};\n\nconst getTimelineData = (\n\tkind: BackendTypes.EntityKind,\n\tusers: BackendTypes.UserInfo[],\n\tauthorId?: string\n) => {\n\tconst endOnlyClientEvents = ['CLIENT_CASE_REQUEST_VIEWED', 'CLIENT_CASE_REQUEST_UPDATED'];\n\tif (endOnlyClientEvents.includes(kind)) {\n\t\treturn {\n\t\t\ticon: (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t\tname: 'End client',\n\t\t\tuserExists: true,\n\t\t};\n\t}\n\n\tif (authorId?.includes('_ROBOT')) {\n\t\treturn {\n\t\t\ticon: (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t\tname: 'TrustForm',\n\t\t\tuserExists: true,\n\t\t};\n\t}\n\n\tconst user = users.find((u) => u.userId === authorId);\n\tif (user) {\n\t\tconst fullName = `${user.firstName} ${user.lastName}`.trim();\n\t\treturn {\n\t\t\ticon: (\n\t\t\t\t\n\t\t\t\t\t{S.abbreviate(fullName)}\n\t\t\t\t\n\t\t\t),\n\t\t\tname: getDisplayName(user),\n\t\t\tuserExists: true,\n\t\t};\n\t}\n\n\treturn {\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tname: 'Unknown user',\n\t\tuserExists: false,\n\t};\n};\n","import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\n\nconst clientCasesRequestsQueryOptions = (accountId: number) => {\n\treturn queryOptions({\n\t\tqueryKey: ['clientCasesRequests', accountId],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst api = BackendClient.getInstance();\n\t\t\tconst res = await api.listClientCaseRequests(accountId);\n\t\t\treturn res.json();\n\t\t},\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useClientCasesRequests = (accountId: number) => {\n\treturn useQuery(clientCasesRequestsQueryOptions(accountId));\n};\n\nconst clientCaseRequestQueryOptions = (accountId: number, requestId: string) => {\n\treturn queryOptions({\n\t\tqueryKey: ['clientCaseRequest', accountId, requestId],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst api = BackendClient.getInstance();\n\t\t\tconst res = await api.getClientCaseRequest(accountId, requestId);\n\t\t\treturn res.json();\n\t\t},\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useClientCaseRequest = (accountId: number, requestId: string) => {\n\treturn useQuery(clientCaseRequestQueryOptions(accountId, requestId));\n};\n\ntype CreateClientCaseRequestParams = {\n\tclientEmail: string;\n\taccountId: number;\n\trequestKind: BackendTypes.ClientCaseRequestKind;\n\tlivenessCheckEntityId?: number;\n};\nexport const useCreateClientCaseRequestMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\taccountId,\n\t\t\tclientEmail,\n\t\t\trequestKind,\n\t\t\tlivenessCheckEntityId,\n\t\t}: CreateClientCaseRequestParams): Promise => {\n\t\t\tconst response = await BackendClient.getInstance().createClientCaseRequest(accountId, {\n\t\t\t\tclientEmail,\n\t\t\t\trequestKind,\n\t\t\t\tlivenessCheckEntityId,\n\t\t\t});\n\t\t\treturn (await response.json()) as BackendTypes.CreateClientCaseRequestData;\n\t\t},\n\t\tonSuccess: async (_, { accountId }) => {\n\t\t\treturn Promise.all([queryClient.invalidateQueries(clientCasesRequestsQueryOptions(accountId))]);\n\t\t},\n\t});\n};\n\ntype UpdateClientCaseRequestParams = {\n\taccountId: number;\n\trequestId: string;\n\tdata: BackendTypes.UpdateClientCaseRequest;\n};\nexport const useUpdateClientCaseRequestMutation = (accountId: number) => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\taccountId,\n\t\t\trequestId,\n\t\t\tdata,\n\t\t}: UpdateClientCaseRequestParams): Promise => {\n\t\t\tconst response = await BackendClient.getInstance().updateClientCaseRequest(\n\t\t\t\taccountId,\n\t\t\t\trequestId,\n\t\t\t\tdata\n\t\t\t);\n\t\t\treturn (await response.json()) as BackendTypes.UpdateClientCaseRequestData;\n\t\t},\n\t\tonSuccess: async (res) => {\n\t\t\treturn Promise.all([\n\t\t\t\tqueryClient.invalidateQueries(clientCaseRequestQueryOptions(accountId, res.uuid)),\n\t\t\t\tqueryClient.invalidateQueries(clientCasesRequestsQueryOptions(accountId)),\n\t\t\t]);\n\t\t},\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Error while saving changes');\n\t\t},\n\t});\n};\n\nexport const useRevokeClientCaseRequestMutation = (accountId: number) => {\n\tconst queryClient = useQueryClient();\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\taccountId,\n\t\t\trequestId,\n\t\t}: {\n\t\t\taccountId: number;\n\t\t\trequestId: string;\n\t\t}): Promise => {\n\t\t\tawait BackendClient.getInstance().revokeClientCaseRequest(accountId, requestId);\n\t\t},\n\t\tonSuccess: async (_, { requestId }) => {\n\t\t\tTFNotifier.success('Request revoked');\n\t\t\treturn Promise.all([\n\t\t\t\tqueryClient.invalidateQueries(clientCasesRequestsQueryOptions(accountId)),\n\t\t\t\tqueryClient.invalidateQueries(clientCaseRequestQueryOptions(accountId, requestId)),\n\t\t\t]);\n\t\t},\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Error while revoking request');\n\t\t},\n\t});\n};\n\nexport const useSendClientCaseRequestEmailMutation = (accountId: number) => {\n\tconst queryClient = useQueryClient();\n\treturn useMutation({\n\t\tmutationFn: async ({ accountId, requestId }: { accountId: number; requestId: string }) => {\n\t\t\tawait BackendClient.getInstance().sendClientCaseRequestEmail(accountId, requestId);\n\t\t},\n\t\tonSuccess: async (_, { requestId }) => {\n\t\t\tTFNotifier.success('Your request has been sent');\n\t\t\treturn Promise.all([\n\t\t\t\tqueryClient.invalidateQueries(clientCaseRequestQueryOptions(accountId, requestId)),\n\t\t\t\tqueryClient.invalidateQueries(clientCasesRequestsQueryOptions(accountId)),\n\t\t\t]);\n\t\t},\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Error while sending email');\n\t\t},\n\t});\n};\n\nexport const useDownloadClientCaseRequestFileMutation = () => {\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\taccountId,\n\t\t\trequestId,\n\t\t\tfileStorageKey,\n\t\t}: {\n\t\t\taccountId: number;\n\t\t\trequestId: string;\n\t\t\tfileStorageKey: string;\n\t\t}) => {\n\t\t\tconst res = await BackendClient.getInstance().downloadClientCaseRequestFile(\n\t\t\t\taccountId,\n\t\t\t\trequestId,\n\t\t\t\tfileStorageKey\n\t\t\t);\n\n\t\t\treturn res.arrayBuffer();\n\t\t},\n\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Error while downloading file');\n\t\t},\n\t});\n};\n\nexport const useCloseClientCaseRequestMutation = (accountId: number) => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({ requestId }: { requestId: string }) => {\n\t\t\tawait BackendClient.getInstance().closeClientCaseRequest(accountId, requestId);\n\t\t},\n\t\tonSuccess: (_, { requestId }) => {\n\t\t\tTFNotifier.success('Case request closed successfully');\n\t\t\treturn Promise.all([\n\t\t\t\tqueryClient.invalidateQueries(clientCasesRequestsQueryOptions(accountId)),\n\t\t\t\tqueryClient.invalidateQueries(clientCaseRequestQueryOptions(accountId, requestId)),\n\t\t\t]);\n\t\t},\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Error while closing request');\n\t\t},\n\t});\n};\n","import { useState } from 'react';\n\nimport type { FC } from 'react';\n\nimport { Button, Icon, Modal } from '@tf/ui';\n\nimport { useSelectedAccount } from '@/core/hooks';\nimport { AccountStructure } from '@/components/accounts';\n\nexport const AccountStructureButton: FC = () => {\n\tconst account = useSelectedAccount();\n\tconst [isOpened, setIsOpened] = useState(false);\n\n\tconst handleClick = () => {\n\t\tsetIsOpened(!isOpened);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t}\n\t\t\t\tonClick={handleClick}\n\t\t\t>\n\t\t\t\tAccount structure\n\t\t\t\n\n\t\t\t\n\t\t\t\t{isOpened && }\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\n\nimport type { FC } from 'react';\n\nimport { ActionIcon, Box, Button, createStyles, Drawer, Group, Icon, Title } from '@tf/ui';\n\nimport { useSelectedAccountTasksTotal } from '@/core/hooks';\nimport { AccountTasks } from '@/components/accounts';\nimport { CounterBadge } from '@/components/shared';\n\nconst useStyles = createStyles(({ colors }) => ({\n\theader: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tpadding: '1rem',\n\t\tborderBottomStyle: 'solid',\n\t\tborderBottomWidth: 1,\n\t\tborderBottomColor: colors.gray[2],\n\t},\n\ttitle: {\n\t\tfontSize: '1.4rem',\n\t\tfontWeight: 500,\n\t\tflex: 1,\n\t},\n\tcontent: {\n\t\tpadding: 0,\n\t},\n}));\n\nexport const AccountTasksButton: FC = () => {\n\tconst { classes } = useStyles();\n\tconst [isOpened, setIsOpened] = useState(false);\n\n\tconst handleClick = () => {\n\t\tsetIsOpened(!isOpened);\n\t};\n\n\tconst tasksTotal = useSelectedAccountTasksTotal();\n\n\treturn (\n\t\t<>\n\t\t\t}\n\t\t\t\tonClick={handleClick}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\tTasks\n\t\t\t\t\t{tasksTotal > 0 ? : null}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tTasks\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useSelector } from '@datagrid/state';\nimport { useLocation } from 'react-router-dom';\n\nimport { TFPageHeader } from '@tf/shared';\nimport { Badge, Group } from '@tf/ui';\nimport { S, T } from '@tf/utils';\n\nimport { useClientCasesRequests } from '@/core/api/caseRequests';\nimport { useAccountParams, useEntityConnectionLabels, useSelectedAccount } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\n\nimport { AccountStructureButton } from './AccountStructureButton';\nimport { AccountTasksButton } from './AccountTasksButton';\n\nconst getAccountLabel = (accountType: string) => {\n\tswitch (accountType) {\n\t\tcase 'CORPORATE_ACCOUNT':\n\t\t\treturn 'corporate';\n\t\tcase 'INDIVIDUAL_ACCOUNT':\n\t\t\treturn 'individual';\n\t\tcase 'FUND_ACCOUNT':\n\t\t\treturn 'fund';\n\t\tcase 'SPC_FUND_ACCOUNT':\n\t\t\treturn 'SPC fund';\n\t\tcase 'INVESTMENT_FUND_ACCOUNT':\n\t\t\treturn 'Investment fund';\n\t\tdefault:\n\t\t\treturn accountType.split('_')[0];\n\t}\n};\n\nexport const AccountHeader = () => {\n\tconst { meta, reviews } = useSelectedAccount();\n\tconst { connectionKind, entityId, accountId, connectionId, ...other } = useAccountParams();\n\tconst location = useLocation();\n\tconst tenant = useSelector(() => appStore.tenant?.get());\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\tconst accountType = meta.entityKind;\n\tconst isEntity = location.pathname.includes('/entity/');\n\tconst isUpdateRequest = location.pathname.includes('/cases');\n\tconst basePath = `/accounts/${accountId}`;\n\tconst { data: cases } = useClientCasesRequests(accountId);\n\n\tconst pathSegments = location.pathname.split('/').filter(Boolean);\n\n\tconst casesIndex = pathSegments.indexOf('cases');\n\tconst caseUniqId =\n\t\tcasesIndex !== -1 && casesIndex < pathSegments.length - 1 ? pathSegments[casesIndex + 1] : null;\n\n\tconst uuidToSequentialIdMap = cases?.reduce>((map, item) => {\n\t\tmap[item.uuid] = item.sequential_id;\n\t\treturn map;\n\t}, {});\n\n\tlet title = meta.name;\n\n\tconst connectionLabels = useEntityConnectionLabels(meta.entityKind);\n\n\t// * Breadcrumbs computing\n\tconst breadcrumbs: { title: string; href: string }[] = [\n\t\t{ title: 'Accounts', href: '/' },\n\t\t{ title, href: `/accounts/${accountId}` },\n\t];\n\tif (isEntity) {\n\t\tconst review = reviews.find((r) => r.graphLinkId == connectionId);\n\t\tconst entity = review?.listEntities.find((e) => e.graphNodeId == entityId);\n\t\ttitle = entity?.name || 'Unknown';\n\t\tbreadcrumbs.push(\n\t\t\t{\n\t\t\t\thref: `${basePath}/${S.slugify(connectionKind)}`,\n\t\t\t\ttitle: connectionLabels[connectionKind].plural,\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: `${basePath}/${S.slugify(connectionKind)}/${connectionId}/entity/${entityId}`,\n\t\t\t\ttitle,\n\t\t\t}\n\t\t);\n\t} else if (connectionKind) {\n\t\tbreadcrumbs.push({\n\t\t\thref: `${basePath}/${S.slugify(connectionKind)}`,\n\t\t\ttitle: connectionLabels[connectionKind].plural,\n\t\t});\n\t} else if (isUpdateRequest) {\n\t\tbreadcrumbs.push({\n\t\t\thref: `/accounts/${accountId}/cases`,\n\t\t\ttitle: 'Cases',\n\t\t});\n\t\tif (caseUniqId) {\n\t\t\tbreadcrumbs.push({\n\t\t\t\thref: `/accounts/${accountId}/cases/${caseUniqId}`,\n\t\t\t\ttitle: `Case ${uuidToSequentialIdMap?.[caseUniqId]}`,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn (\n\t\t{getAccountLabel(accountType)}\n\t\t\t\t) : undefined\n\t\t\t}\n\t\t\ttoolbar={\n\t\t\t\t\n\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);\n};\n","import { useEffect } from 'react';\n\nimport { useObservable, useSelector } from '@datagrid/state';\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\nimport type { FormSegment, FormValues } from '@tf/utils';\nimport { rawRevision } from '@tf/utils';\n\nimport { accountQueryOptions } from '@/core/api/account';\nimport { overviewAccountQueryOptions } from '@/core/api/overview';\nimport { useSegmentsQuery } from '@/core/api/segments';\nimport { useSelectedAccount } from '@/core/hooks/use-selected-account';\nimport { writeSegmentsMutation } from '@/core/mutations';\nimport { getSelfSegment } from '@/core/utils';\n\ninterface Values {\n\taccountId: string;\n\tname: string;\n\tsegments: FormValues;\n}\n\ninterface State {\n\tvalues?: FormValues;\n\trevisions: Record;\n}\n\nexport const useAccountSettingsSegment = () => {\n\tconst { meta } = useSelectedAccount();\n\n\tconst state = useObservable({\n\t\trevisions: {},\n\t});\n\n\t// Extract target segment identities\n\tconst selfSegmentKind = getSelfSegment(meta.entityKind);\n\tconst rmFeedbackSegmentKind = 'COMMON__RM_FEEDBACK';\n\tconst requiredSegments = [selfSegmentKind, rmFeedbackSegmentKind, 'COMMON__ACCOUNT_OVERVIEW'];\n\tconst formSegments: FormSegment[] = meta.listSegments\n\t\t.filter((s) => requiredSegments.includes(s.SegmentIdentity.segmentKind))\n\t\t.map((s) => ({ ...s.SegmentIdentity, accessMode: s.AccessMode }));\n\n\t// * Get segments data\n\tconst segmentsQuery = useSegmentsQuery(formSegments);\n\n\tuseEffect(() => {\n\t\tif (segmentsQuery.data) {\n\t\t\tconst nextState: Required = {\n\t\t\t\tvalues: {},\n\t\t\t\trevisions: {},\n\t\t\t};\n\t\t\tfor (const segmentData of segmentsQuery.data) {\n\t\t\t\tconst { info, segment } = segmentData.container;\n\t\t\t\tconst segmentKind = info.SegmentIdentity.segmentKind;\n\t\t\t\tnextState.values[segmentKind] = segment;\n\t\t\t\tnextState.revisions[segmentKind] = info.Revision.revision;\n\t\t\t}\n\t\t\tstate.assign(nextState);\n\t\t}\n\t}, [segmentsQuery.data, state]);\n\n\tconst updateSegments = (values: FormValues) => {\n\t\tconst payload: BackendTypes.SegmentsWritePayload = [];\n\t\tfor (const formSegment of formSegments) {\n\t\t\tif (formSegment.accessMode === 'VIEW') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst isPartiallyEditedSegment =\n\t\t\t\tformSegment.segmentKind === selfSegmentKind || formSegment.segmentKind === rmFeedbackSegmentKind;\n\n\t\t\tpayload.push({\n\t\t\t\tsegmentIdentity: formSegment,\n\t\t\t\t// IMPORTANT: AccountSettings form have regular FormBuilder that renders full segments,\n\t\t\t\t// \tbut also have few segments that rendered (and edited!) partially: SELF_SEGMENT, RM_FEEDBACK.\n\t\t\t\t// \tSo, we need to merge values with previous data when we save partially edited segments\n\t\t\t\t// \tbut must not merge anything for segments that were rendered fully\n\t\t\t\tsegment: isPartiallyEditedSegment\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...state.values?.get()?.[formSegment.segmentKind],\n\t\t\t\t\t\t\t...values[formSegment.segmentKind],\n\t\t\t\t\t }\n\t\t\t\t\t: values[formSegment.segmentKind],\n\t\t\t\trevision: {\n\t\t\t\t\t...rawRevision,\n\t\t\t\t\trevision: state.revisions.peek()[formSegment.segmentKind],\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\treturn writeSegmentsMutation(payload);\n\t};\n\n\tconst queryClient = useQueryClient();\n\tconst onSuccess = (res: BackendTypes.SegmentsWriteData) => {\n\t\t// * Update revisions\n\t\tfor (const segmentData of res) {\n\t\t\tconst { SegmentIdentity, Revision } = segmentData.container.info;\n\t\t\tconst segmentKind = SegmentIdentity.segmentKind;\n\t\t\tstate.revisions.set((prev) => ({ ...prev, [segmentKind]: Revision.revision }));\n\t\t}\n\n\t\tTFNotifier.success('Account updated successfully!');\n\t\tqueryClient.refetchQueries(overviewAccountQueryOptions(meta.graphNodeId));\n\t\tqueryClient.refetchQueries(accountQueryOptions(meta.graphNodeId));\n\t};\n\n\t// Getters and mutations for separate fields\n\tconst name: string = useSelector(() => state.values?.get()?.[selfSegmentKind]?.name) ?? '';\n\tconst accountId: string =\n\t\tuseSelector(() => state.values?.get()?.[rmFeedbackSegmentKind].account_id) ?? '';\n\tconst segmentDefs = formSegments.filter((s) => {\n\t\treturn s.segmentKind !== selfSegmentKind && s.segmentKind !== rmFeedbackSegmentKind;\n\t});\n\n\tconst updateMutation = useMutation({\n\t\tmutationFn: ({ segments, accountId, name }: Values) => {\n\t\t\treturn updateSegments({\n\t\t\t\t...segments,\n\t\t\t\t[rmFeedbackSegmentKind]: { account_id: accountId },\n\t\t\t\t[selfSegmentKind]: { name },\n\t\t\t});\n\t\t},\n\t\tonSuccess,\n\t});\n\n\treturn {\n\t\tvalues: {\n\t\t\tname,\n\t\t\taccountId,\n\t\t\tsegments: state.values?.get(),\n\t\t},\n\t\tsegmentDefs,\n\t\tupdateMutation,\n\t};\n};\n","import { Group, Stack, TFCard, TFLoadingOverlay } from '@tf/ui';\n\nimport { useAccountInfoSegments, usePriority } from '@/core/hooks';\nimport { useAccountSettingsSegment } from '@/core/hooks/use-account-settings-segments';\nimport { AccountEventLog, AccountSettings, AccountTasks, AccountToolbar } from '@/components/accounts';\n\nexport const AccountOverview = () => {\n\tconst { values } = useAccountSettingsSegment();\n\tconst priorityObject = usePriority();\n\tconst accountInfo = useAccountInfoSegments();\n\n\tif (!values.segments || !priorityObject || !accountInfo.accountStatus) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useEffect } from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\n\n/**\n * This component is used to resolve the path to the account page.\n * TODO: This is a temporary solution. We need to find a better way to handle this.\n */\nexport const AccountPathResolver = () => {\n\tconst navigate = useNavigate();\n\tconst { accountId, entityId } = useAccountParams();\n\tconst account = useSelectedAccount();\n\tconst applicant = account.reviews.find((review) => review.connectionKind === 'APPLICANT');\n\n\tuseEffect(() => {\n\t\tif (!applicant) return;\n\t\tif (applicant.graphNodeId === entityId) {\n\t\t\tnavigate(`/accounts/${accountId}/applicant`);\n\t\t}\n\t}, [accountId, entityId]);\n\n\treturn null;\n};\n","import React from 'react';\n\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { useAccount } from '@/core/api/account';\nimport { useAccountParams } from '@/core/hooks';\n\nexport const AccountProvider: React.FC = ({ children }) => {\n\tconst { accountId } = useAccountParams();\n\tconst { isPending } = useAccount(accountId);\n\n\tif (isPending) {\n\t\treturn ;\n\t}\n\n\treturn <>{children};\n};\n","import type { PrimitiveField } from '@/components/shared';\nimport { FieldName } from '@/components/shared';\n\nconst fields = {\n\tname: {\n\t\tname: 'name',\n\t\tcomponent: FieldName.TextField,\n\t\tlabel: 'Name',\n\t},\n\taccountId: {\n\t\tname: 'accountId',\n\t\tcomponent: FieldName.TextField,\n\t\tlabel: 'Account ID',\n\t},\n\tpriority: {\n\t\tname: 'priority',\n\t\tcomponent: FieldName.SelectField,\n\t\tlabel: 'Priority',\n\t\tprops: {\n\t\t\toptions: [\n\t\t\t\t{ value: 'LOW', label: 'Low' },\n\t\t\t\t{ value: 'MEDIUM', label: 'Medium' },\n\t\t\t\t{ value: 'HIGH', label: 'High' },\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport const formStructure: PrimitiveField[] = [fields.name, fields.accountId, fields.priority];\n","import React, { useEffect, useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, Button, TFLoadingOverlay } from '@tf/ui';\nimport type { SubmitHandler } from '@tf/utils';\n\nimport { usePriority, useProcessingScripts } from '@/core/hooks';\nimport { useAccountSettingsSegment } from '@/core/hooks/use-account-settings-segments';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { AppFormBuilder, PrimitiveFormBuilder } from '@/components/shared';\n\nimport { formStructure } from './formStructure';\n\ninterface FieldValues {\n\tpriority?: BackendTypes.OverviewImportance | null;\n\tname?: string;\n\taccountId?: string;\n}\n\nexport const AccountSettings = () => {\n\tconst [fields, setFields] = useState(formStructure);\n\tconst [fieldValues, setFieldValues] = useState({});\n\n\tconst canPrepareAccountsData = useCurrentUserCapabilityCheck(\n\t\tUserCapabilities.CAN_PREPARE_ACCOUNTS_DATA\n\t);\n\n\tconst { values, segmentDefs, updateMutation } = useAccountSettingsSegment();\n\tconst priorityObject = usePriority();\n\tconst scripts = useProcessingScripts(segmentDefs.map((s) => s.segmentKind));\n\n\tuseEffect(() => {\n\t\tsetFields((prevFields) => {\n\t\t\treturn prevFields.map((f) => {\n\t\t\t\treturn { ...f, disabled: !canPrepareAccountsData };\n\t\t\t});\n\t\t});\n\t}, [canPrepareAccountsData]);\n\n\tuseEffect(() => {\n\t\tif (!priorityObject) return;\n\t\tsetFieldValues({\n\t\t\tname: values.name,\n\t\t\taccountId: values.accountId,\n\t\t\tpriority: priorityObject.priority,\n\t\t});\n\t}, [values.name, values.accountId, priorityObject?.priority]);\n\n\tconst handleSubmit: SubmitHandler = async ({ values }) => {\n\t\ttry {\n\t\t\tawait updateMutation.mutateAsync({\n\t\t\t\tsegments: values,\n\t\t\t\taccountId: fieldValues?.accountId ?? '',\n\t\t\t\tname: fieldValues?.name ?? '',\n\t\t\t});\n\n\t\t\tif (fieldValues?.priority) {\n\t\t\t\tif (!priorityObject) return;\n\t\t\t\tawait priorityObject.updatePriority.mutateAsync({\n\t\t\t\t\tpriority: fieldValues.priority,\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t};\n\n\tif (!values.segments || !priorityObject) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetFieldValues((prevValues) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...prevValues,\n\t\t\t\t\t\t\t\t...newValues,\n\t\t\t\t\t\t\t};\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\t {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tjustifyContent: 'end',\n\t\t\t\t\t\t\t\t\tpadding: '.75rem 1rem',\n\t\t\t\t\t\t\t\t\tmarginTop: '.5rem',\n\t\t\t\t\t\t\t\t\tborderTopStyle: 'solid',\n\t\t\t\t\t\t\t\t\tborderTopWidth: '1px',\n\t\t\t\t\t\t\t\t\tborderTopColor: colors.gray[2],\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\t\n\t\t\t\t\t\t\t\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);\n};\n","import type { BackendTypes } from '@tf/api';\n\nimport type { AccountWithReviews } from '@/core/types/account';\n\n// Check if this review belongs to group (like APPLICANT and CO_APPLICANT)\nexport const isReviewFromConnectionGroup = (\n\taccount: AccountWithReviews,\n\treviewLinkId: BackendTypes.GraphId\n) => {\n\tconst review = account.reviews.find((r) => r.graphLinkId === reviewLinkId);\n\tconst accountEntity = review?.listEntities.find((e) => e.graphNodeId === account.meta.graphNodeId);\n\tconst reviewGroup = accountEntity?.listConnections.find(\n\t\t(c) => c.isReview && c.connectionKind === review?.connectionKind\n\t)?.reviewGroup;\n\n\treturn accountEntity?.listConnections.some(\n\t\t(c) => !c.isReview && c.connectionKind !== review?.connectionKind && c.reviewGroup === reviewGroup\n\t);\n};\n","import { useSelector } from '@datagrid/state';\n\nimport { getAccountStructure } from '@tf/shared';\n\nimport { useAccountParams, useSelectedAccount, useSelectedAccountTasks } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\n\nexport const useSelectedAccountStructureWithTasks = () => {\n\tconst entities = useSelector(() => appStore.defs.get().entities);\n\tconst account = useSelectedAccount();\n\tconst { entityId } = useAccountParams();\n\n\tconst accountTasks = useSelectedAccountTasks();\n\tconst accountStructure = getAccountStructure({\n\t\taccount,\n\t\tselectedEntityId: entityId,\n\t\tentitiesDefs: entities,\n\t});\n\n\taccountStructure.nodes.forEach((node) => {\n\t\tconst entityId = node.data.graphId;\n\n\t\tnode.data.tasks = accountTasks.flatMap((r) => {\n\t\t\treturn r.entities.find((e) => e.entityId === entityId)?.tasks ?? [];\n\t\t});\n\t});\n\n\treturn accountStructure;\n};\n","import React from 'react';\n\nimport type { FC } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport { AccountStructure as SharedAccountStructure } from '@tf/shared';\nimport { S } from '@tf/utils';\n\nimport { useCurrentUser, useSelectedAccount } from '@/core/hooks';\nimport { isReviewFromConnectionGroup } from '@/core/utils/reviews';\n\nimport { useSelectedAccountStructureWithTasks } from './useSelectedAccountStructureWithTasks';\n\ninterface Props {\n\tonClose: () => void;\n}\n\nexport const AccountStructure: FC = ({ onClose }) => {\n\tconst accountStructure = useSelectedAccountStructureWithTasks();\n\n\tconst navigate = useNavigate();\n\tconst userId = useCurrentUser().userId;\n\tconst account = useSelectedAccount();\n\n\treturn (\n\t\t
\n\t\t\t {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tconst { data, type } = node;\n\n\t\t\t\t\tif (type === 'account') {\n\t\t\t\t\t\tnavigate(`/accounts/${data.meta.accountId}/applicant`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst basePath = `/accounts/${data.meta.accountId}/${S.slugify(data.meta.connectionKind)}`;\n\t\t\t\t\t\tconst path = isReviewFromConnectionGroup(account, data.meta.connectionId)\n\t\t\t\t\t\t\t? basePath\n\t\t\t\t\t\t\t: `${basePath}/${data.meta.connectionId}/entity/${data.graphId}`;\n\n\t\t\t\t\t\tnavigate(path);\n\t\t\t\t\t}\n\t\t\t\t\tonClose();\n\t\t\t\t}}\n\t\t\t/>\n\t\t
\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\nimport type { FilterItem } from '@tf/ui';\n\nimport { getDisplayName } from '@/core/utils';\n\nexport const getAccountsFilters = (\n\tusers: BackendTypes.UserInfo[],\n\taccountKinds: { value: string; label: string }[]\n): FilterItem[] => {\n\treturn [\n\t\t{\n\t\t\tname: 'kind',\n\t\t\tlabel: 'Account type',\n\t\t\ttype: 'select',\n\t\t\tvalue: accountKinds,\n\t\t},\n\t\t{\n\t\t\tname: 'values.accountStatus',\n\t\t\tlabel: 'Account status',\n\t\t\ttype: 'select',\n\t\t\tvalue: [\n\t\t\t\t{ value: 'PROSPECT', label: 'Prospect' },\n\t\t\t\t{ value: 'ACTIVE', label: 'Active' },\n\t\t\t\t{ value: 'SUSPENDED', label: 'Suspended' },\n\t\t\t\t{ value: 'REJECTED', label: 'Rejected' },\n\t\t\t\t{ value: 'CLOSED', label: 'Closed' },\n\t\t\t\t{ value: 'ARCHIVED', label: 'Archived' },\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tname: 'verification',\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Verification status',\n\t\t\tvalue: [\n\t\t\t\t{ value: 'DRAFT', label: 'Draft' },\n\t\t\t\t{ value: 'READY_TO_REVIEW', label: 'Ready to review' },\n\t\t\t\t{ value: 'UNDER_REVIEW', label: 'Pending review' },\n\t\t\t\t{ value: 'VERIFIED', label: 'Verified' },\n\t\t\t\t{ value: 'UPDATE_REQUIRED', label: 'Update required' },\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tname: 'importance',\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Priority',\n\t\t\tvalue: [\n\t\t\t\t{ value: 'HIGH', label: 'High' },\n\t\t\t\t{ value: 'MEDIUM', label: 'Medium' },\n\t\t\t\t{ value: 'LOW', label: 'Low' },\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tname: 'assignedTo',\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Assigned manager',\n\t\t\tvalue: [\n\t\t\t\t{ value: '__unassigned__', label: 'Not assigned' },\n\t\t\t\t...(users?.map((user) => ({ value: user.userId, label: getDisplayName(user) })) || []),\n\t\t\t],\n\t\t},\n\t];\n};\n","import type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\n\nconst isSelfSegment = (segment: BackendTypes.SegmentIdentity, selfSegmentKinds: string[]) =>\n\tselfSegmentKinds.includes(segment.segmentKind);\n\nconst getSegmentWithSelfSegmentDataDependency = (\n\tform: ExtendedFormDefinition\n) => form.segmentIdentities.find((s) => s.segmentKind === 'COMMON__BACKGROUND_CHECK');\n\nexport const getAdditionalDataForBackgroundCheck = (\n\tsegmentsData: BackendTypes.SegmentData[],\n\tform: ExtendedFormDefinition,\n\tselfSegmentsKinds: string[]\n) => {\n\tconst selfSegment = segmentsData.find(\n\t\t(s) =>\n\t\t\ts.container.info.SegmentIdentity.graphId ===\n\t\t\t\tgetSegmentWithSelfSegmentDataDependency(form)?.graphId &&\n\t\t\tisSelfSegment(s.container.info.SegmentIdentity, selfSegmentsKinds)\n\t);\n\n\tif (!selfSegment) {\n\t\treturn;\n\t}\n\n\tconst segmentData: any = selfSegment.container.segment;\n\tif (selfSegment.container.info.SegmentIdentity.segmentKind === 'INDIVIDUAL_ENTITY__SELF') {\n\t\treturn {\n\t\t\tfirstName: segmentData.first_name,\n\t\t\tlastName: segmentData.last_name,\n\t\t\tmiddleName: segmentData.middle_name,\n\t\t} as BackendTypes.AdhocSearchPersonParams;\n\t}\n\n\treturn {\n\t\tentityName: segmentData.name,\n\t} as BackendTypes.AdhocSearchEntityParams;\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Avatar, Box, Icon, Menu, TFText, Tooltip, UnstyledButton } from '@tf/ui';\n\nimport { useCurrentUser } from '@/core/hooks';\nimport { UserCapabilities } from '@/core/types';\nimport { getDisplayName } from '@/core/utils';\nimport { UserAvatar } from '@/components/shared/UserAvatar';\n\nexport type ManagersFilterFn = (user: BackendTypes.UserInfo) => boolean;\n\nconst defaultManagersFilter: ManagersFilterFn = (user) => {\n\treturn user.listRoleCapabilities.some((capability) => {\n\t\treturn (\n\t\t\tcapability === UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA ||\n\t\t\tcapability === UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA\n\t\t);\n\t});\n};\n\ninterface Props {\n\tselectedIds: string[];\n\tmanagers: BackendTypes.UserInfo[];\n\tmanagersFilter?: ManagersFilterFn;\n\tonChange: (selectedIds: string[]) => void;\n}\n\nexport const AssignedManagersSelect: React.FC = ({\n\tselectedIds,\n\tmanagers,\n\tmanagersFilter = defaultManagersFilter,\n\tonChange,\n}) => {\n\tconst currentUser = useCurrentUser();\n\n\tconst availableManagers = managers.filter(managersFilter).sort((userA, userB) => {\n\t\treturn getDisplayName(userA).localeCompare(getDisplayName(userB));\n\t});\n\n\tconst selectedManagers = new Map();\n\tavailableManagers.forEach((manager) => {\n\t\tconst isSelected = selectedIds.includes(manager.userId);\n\t\tif (isSelected) {\n\t\t\tselectedManagers.set(manager.userId, manager);\n\t\t}\n\t});\n\n\tconst handleChange = (selectedId: string) => {\n\t\tconst newSelectedIds = selectedManagers.has(selectedId)\n\t\t\t? selectedIds.filter((id) => id !== selectedId)\n\t\t\t: [...selectedIds, selectedId];\n\n\t\tonChange(newSelectedIds);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{selectedManagers.size > 0 ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{Array.from(selectedManagers.values()).map((manager) => {\n\t\t\t\t\t\t\t\treturn (\n\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);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t'&:hover': { color: colors.brand[6], textDecoration: 'underline' },\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tsize=\"13px\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tNot assigned\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\t\n\t\t\t\t{availableManagers.map((u) => {\n\t\t\t\t\tconst isSelected = selectedManagers.has(u.userId);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t handleChange(u.userId)}>\n\t\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\t\t\t\twidth: 240,\n\t\t\t\t\t\t\t\t\tpadding: '.15rem .5rem',\n\t\t\t\t\t\t\t\t\t...(isSelected && {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: colors.gray[0],\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>\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\t{getDisplayName(u)}\n\t\t\t\t\t\t\t\t\t{currentUser.userId === u.userId && ' (You) '}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{isSelected && (\n\t\t\t\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\t\t\t\t\t\theight: 18,\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\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\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);\n};\n","import React from 'react';\n\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\n\nimport { setAccountAssigneesMutation } from '@/core/mutations';\n\nimport type { ManagersFilterFn } from './AssignedManagersSelect';\nimport { AssignedManagersSelect } from './AssignedManagersSelect';\n\ninterface Props {\n\taccountId: number;\n\tselectedIds: string[];\n\tmanagers: BackendTypes.UserInfo[];\n\tmanagersFilter?: ManagersFilterFn;\n}\n\nexport const AssignedManagersWidget: React.FC = (props) => {\n\tconst queryClient = useQueryClient();\n\tconst { mutate } = useMutation({\n\t\tmutationFn: (ids: string[]) => {\n\t\t\treturn setAccountAssigneesMutation({\n\t\t\t\taccountId: props.accountId,\n\t\t\t\tids,\n\t\t\t});\n\t\t},\n\t\tonSuccess: (isSuccess) => {\n\t\t\tif (isSuccess) {\n\t\t\t\tqueryClient.refetchQueries({ queryKey: ['overviewAccount', props.accountId] });\n\t\t\t\tqueryClient.refetchQueries({ queryKey: ['accountEventsLog', props.accountId] });\n\t\t\t\tqueryClient.refetchQueries({ queryKey: ['overviewAccounts'], type: 'active' });\n\t\t\t}\n\t\t},\n\t});\n\n\tconst onChange = (selectedManagers: string[]) => {\n\t\tmutate(selectedManagers, {\n\t\t\tonSuccess: (isSuccess) => {\n\t\t\t\tif (isSuccess) {\n\t\t\t\t\tTFNotifier.info('Assigned managers for account updated', { id: 'assign-manager' });\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n","import type { FC } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { TFText } from '@tf/ui';\nimport { S } from '@tf/utils';\n\ninterface Props {\n\taccountStatus: BackendTypes.OverviewAccountStatus | undefined;\n}\n\nconst colors: Record = {\n\tPROSPECT: 'brand',\n\tACTIVE: 'green',\n\tSUSPENDED: 'orange',\n\tREJECTED: 'red',\n\tCLOSED: 'red',\n\tARCHIVED: 'grey',\n};\n\nexport const AccountStatus: FC = ({ accountStatus }) => {\n\treturn accountStatus ? (\n\t\t\n\t\t\t{S.prettify(accountStatus)}\n\t\t\n\t) : (\n\t\t\n\t\t\tNot defined\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport { useMutation } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Center, Icon, Menu, TFNotifier, TFText, UnstyledButton } from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { setAccountPriorityMutation } from '@/core/mutations';\n\ntype AccountPriority = BackendTypes.OverviewImportance;\n\ninterface Props {\n\taccountId: number;\n\tvalue: AccountPriority;\n}\n\nconst PRIORITY = {\n\tLOW: 'LOW',\n\tMEDIUM: 'MEDIUM',\n\tHIGH: 'HIGH',\n} as const;\n\nexport const PriorityButton: React.FC = ({ value, accountId }) => {\n\tconst [accountPriority, setAccountPriority] = useState(value);\n\n\tconst { mutate } = useMutation({\n\t\tmutationFn: (priority: AccountPriority) => {\n\t\t\treturn setAccountPriorityMutation({\n\t\t\t\taccountId,\n\t\t\t\tpriority,\n\t\t\t});\n\t\t},\n\t\tonSuccess: (isSuccess) => {\n\t\t\tif (isSuccess) {\n\t\t\t\tTFNotifier.info('Importance has been changed', { id: 'change-importance' });\n\t\t\t}\n\t\t},\n\t});\n\n\tconst handleChange = (priority: AccountPriority) => {\n\t\tsetAccountPriority(priority);\n\t\tmutate(priority);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t ({\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\twidth: '4.5rem',\n\t\t\t\t\t\theight: '1.8rem',\n\t\t\t\t\t\t...(accountPriority === PRIORITY.LOW && { color: colors.gray[5] }),\n\t\t\t\t\t\t...(accountPriority === PRIORITY.MEDIUM && { color: colors.orange[5] }),\n\t\t\t\t\t\t...(accountPriority === PRIORITY.HIGH && { color: colors.red[5] }),\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t ({\n\t\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\t\tfontSize: 13,\n\t\t\t\t\t\t\t'&:hover': { color: colors.brand[6], textDecoration: 'underline' },\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t{S.prettify(accountPriority as string)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t handleChange(PRIORITY.LOW)}\n\t\t\t\t\tdisabled={accountPriority === PRIORITY.LOW}\n\t\t\t\t>\n\t\t\t\t\t{S.prettify(PRIORITY.LOW)}\n\t\t\t\t\n\t\t\t\t handleChange(PRIORITY.MEDIUM)}\n\t\t\t\t\tdisabled={accountPriority === PRIORITY.MEDIUM}\n\t\t\t\t>\n\t\t\t\t\t{S.prettify(PRIORITY.MEDIUM)}\n\t\t\t\t\n\t\t\t\t handleChange(PRIORITY.HIGH)}\n\t\t\t\t\tdisabled={accountPriority === PRIORITY.HIGH}\n\t\t\t\t>\n\t\t\t\t\t{S.prettify(PRIORITY.HIGH)}\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n","import React, { useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Link } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tcreateStyles,\n\tTFDataTable,\n\tTFText,\n\tTooltip,\n\tUnstyledButton,\n\tuseDebouncedValue,\n\tuseLocalStorage,\n} from '@tf/ui';\nimport { D, fmt, S } from '@tf/utils';\n\nimport { useOverviewAccounts, useOverviewData } from '@/core/api/overview';\nimport { appStore } from '@/core/stores';\nimport { HiddenAccountsNotice, ReviewState, TFBadge, TFBadgeColors } from '@/components/shared';\nimport { getAccountsFilters } from '@/components/utils';\n\nimport { AssignedManagersWidget } from '../../shared/AssignedManagers';\n\nimport { AccountStatus } from './AccountStatus';\nimport { PriorityButton } from './PriorityButton';\n\nconst riskLevelColors: Record = {\n\tVERY_HIGH: TFBadgeColors.RED,\n\tHIGH: TFBadgeColors.ORANGE,\n\tMEDIUM: TFBadgeColors.YELLOW,\n\tLOW: TFBadgeColors.GREEN,\n};\n\nconst useStyles = createStyles(({ colors }) => ({\n\taccountName: {\n\t\tfontSize: 13,\n\t\theight: 32,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.brand[6],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n\taccountNameText: {\n\t\twhiteSpace: 'nowrap',\n\t\toverflow: 'hidden',\n\t\ttextOverflow: 'ellipsis',\n\t\tmaxWidth: 300,\n\t},\n}));\n\nconst filtersNamesMap: Record = {\n\tkind: 'accountType',\n\t'values.accountStatus': 'accountStatus',\n\tverification: 'verificationStatus',\n\timportance: 'priority',\n\tassignedTo: 'assignedTo',\n};\n\nconst sortingNamesMap: Record = {\n\tname: 'ACCOUNT_NAME',\n\tkind: 'ACCOUNT_TYPE',\n\t'values.accountStatus': 'ACCOUNT_STATUS',\n\tverification: 'VERIFICATION_STATUS',\n\timportance: 'PRIORITY',\n\t'values.nextKycReviewDate': 'KYC_VIEW',\n\tstatusChangedAt: 'ACCOUNT_STATUS_CHANGED_AT',\n};\n\nexport const AccountTable = () => {\n\tconst { classes } = useStyles();\n\tconst accountKinds = useSelector(() => appStore.defs.options['AccountKind'].get());\n\n\tconst [pagination, setPagination] = useState({ pageSize: 10, pageIndex: 0 });\n\n\tconst [searchValue, setSearchValue] = useLocalStorage({\n\t\tdefaultValue: '',\n\t\tkey: 'accounts-table-search',\n\t\tgetInitialValueInEffect: false,\n\t});\n\tconst [debouncedSearch] = useDebouncedValue(searchValue, 500);\n\n\tconst [filtersState, setFiltersState] = useLocalStorage<\n\t\t{\n\t\t\tid: string;\n\t\t\tvalue: unknown;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [],\n\t\tkey: 'account-table-filters',\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst [sortingState, setSortingState] = useLocalStorage<\n\t\t{\n\t\t\tdesc: boolean;\n\t\t\tid: string;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [{ desc: true, id: 'ACCOUNT_NAME' }],\n\t\tkey: `account-table-sorting`,\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst sortingParams =\n\t\tsortingState.length > 0\n\t\t\t? {\n\t\t\t\t\tsortBy: sortingNamesMap[sortingState[0].id] as BackendTypes.OverviewSortBy | undefined,\n\t\t\t\t\tsortOrder:\n\t\t\t\t\t\tsortingState[0].id === 'statusChangedAt'\n\t\t\t\t\t\t\t? sortingState[0].desc\n\t\t\t\t\t\t\t\t? 'ASC'\n\t\t\t\t\t\t\t\t: 'DESC'\n\t\t\t\t\t\t\t: sortingState[0].desc\n\t\t\t\t\t\t\t? 'DESC'\n\t\t\t\t\t\t\t: ('ASC' as BackendTypes.OverviewSortOrder),\n\t\t\t }\n\t\t\t: undefined;\n\n\tconst filteringParams = filtersState.reduce>((acc, curr) => {\n\t\tacc[filtersNamesMap[curr.id]] = curr.value;\n\t\treturn acc;\n\t}, {});\n\n\tconst { data, isPending } = useOverviewAccounts(pagination.pageIndex + 1, pagination.pageSize, {\n\t\t...filteringParams,\n\t\t...sortingParams,\n\t\tquery: debouncedSearch,\n\t});\n\n\tconst accounts = data?.accounts;\n\tconst listUsers = data?.listUsers ?? [];\n\n\tconst hasArchivedStatusMessage = Boolean(\n\t\t!filtersState.find((f) => f.value === 'ARCHIVED') && !!debouncedSearch\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\tnoDataText={\n\t\t\t\t\thasArchivedStatusMessage ? (\n\t\t\t\t\t\t setFiltersState([{ id: 'values.accountStatus', value: 'ARCHIVED' }])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\tname=\"account-list\"\n\t\t\t\tisLoading={isPending}\n\t\t\t\tserverSorting={{\n\t\t\t\t\tonSortingChange: setSortingState,\n\t\t\t\t\tstate: sortingState,\n\t\t\t\t}}\n\t\t\t\tserverFiltering={{\n\t\t\t\t\tonFiltersChange: setFiltersState,\n\t\t\t\t\tstate: filtersState,\n\t\t\t\t}}\n\t\t\t\tserverPagination={\n\t\t\t\t\taccounts\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...pagination,\n\t\t\t\t\t\t\t\trowCount: accounts.count,\n\t\t\t\t\t\t\t\tonPaginationChange: setPagination,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tserverSearch={{\n\t\t\t\t\tstate: searchValue,\n\t\t\t\t\tonSearchChange: setSearchValue,\n\t\t\t\t}}\n\t\t\t\tdata={accounts?.items ?? []}\n\t\t\t\tdefs={[\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account name',\n\t\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\tCell: ({ cell }) => {\n\t\t\t\t\t\t\tconst { nodeId, name } = cell.row.original;\n\t\t\t\t\t\t\treturn (\n\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\t\n\t\t\t\t\t\t\t\t\t\t\t{name || 'N/A'}\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\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account type',\n\t\t\t\t\t\taccessorKey: 'kind',\n\t\t\t\t\t\tCell: ({ cell }) => {\n\t\t\t\t\t\t\tconst nextKind = accountKinds?.find((a: { value: string }) => a.value === cell.getValue());\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{nextKind?.label || 'Not defined'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account status',\n\t\t\t\t\t\tid: 'values.accountStatus',\n\t\t\t\t\t\taccessorKey: 'values.accountStatus',\n\t\t\t\t\t\tsortUndefined: 1, // lower priority\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Time in status',\n\t\t\t\t\t\tid: 'statusChangedAt',\n\t\t\t\t\t\taccessorKey: 'statusChangedAt',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst changedAt = row.original.statusChangedAt;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{D.calculateTillNow(changedAt)}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Verification status',\n\t\t\t\t\t\taccessorKey: 'verification',\n\t\t\t\t\t\tCell: ({ cell }) => ,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Assigned managers',\n\t\t\t\t\t\taccessorKey: 'assignedManagers',\n\t\t\t\t\t\tenableSorting: false,\n\t\t\t\t\t\tCell: (data: { row: { original: { nodeId: number; assignedManagers: string[] } } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Priority',\n\t\t\t\t\t\taccessorKey: 'importance',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Risk profile',\n\t\t\t\t\t\taccessorKey: 'values.riskLevel',\n\t\t\t\t\t\tenableSorting: false,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst riskLevel = row.original.values.riskLevel;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Next KYC review',\n\t\t\t\t\t\taccessorKey: 'values.nextKycReviewDate',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst date: string | undefined = row.original.values.nextKycReviewDate;\n\t\t\t\t\t\t\tconst status = row.original.values.accountStatus;\n\t\t\t\t\t\t\tif (!date || status === 'REJECTED' || status === 'CLOSED') {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tNot defined\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}\n\t\t\t\t\t\t\tconst daysOverdue = D.getOverdueDaysCount(date);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{daysOverdue > 0\n\t\t\t\t\t\t\t\t\t\t? `Overdue ${daysOverdue} ${daysOverdue > 1 ? 'days' : 'day'}`\n\t\t\t\t\t\t\t\t\t\t: fmt.toDate(date, { preset: 'full_date' })}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t\tavailableFilters={getAccountsFilters(listUsers, accountKinds)}\n\t\t\t/>\n\t\t\t\n\t\t\t\t{hasArchivedStatusMessage && Boolean(accounts?.items.length) && (\n\t\t\t\t\t setFiltersState([{ id: 'values.accountStatus', value: 'ARCHIVED' }])}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n","import { useSelector } from '@datagrid/state';\nimport type { FC } from 'react';\n\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { useAccountForm } from '@/core/hooks';\nimport { AppFormBuilder, ModalFooter } from '@/components/shared';\n\ninterface Props {\n\tonClose: () => void;\n}\n\nexport const RiskModalForm: FC = ({ onClose }) => {\n\tconst { state, scripts, formSegments, handleSubmit } = useAccountForm(\n\t\t['COMMON__COMPLIANCE_FEEDBACK', 'COMMON__COMPLIANCE_DATES'],\n\t\t{ onSuccess: onClose }\n\t);\n\tconst values = useSelector(() => state.values?.get());\n\n\tif (values === undefined) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t (\n\t\t\t\t\n\t\t\t)}\n\t\t/>\n\t);\n};\n","import React from 'react';\n\nimport type { Task } from '@tf/shared';\nimport { Icon, ThemeIcon } from '@tf/ui';\n\nexport const TaskIcon: React.FC<{ type: Task['type'] }> = ({ type }) => {\n\tswitch (type) {\n\t\tcase 'PENDING_FILL':\n\t\tcase 'FINALIZE_REVIEW':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'PENDING_REVIEW':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'REJECTED':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'VALIDATION_ERRORS':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'CORRECT_SHAREHOLDERS_PERCENTAGE_SUM':\n\t\tcase 'CORRECT_PARTNERSHIP_PERCENTAGE_SUM':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'REQUIRED_CONNECTION':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t}\n};\n","import React from 'react';\n\nimport type { Task } from '@tf/shared';\nimport { lighten, TFText, UnstyledButton } from '@tf/ui';\n\nimport { TaskIcon } from './TaskIcon';\n\ninterface Props {\n\ttask: Task;\n\tonClick: () => void;\n}\n\nexport const TaskItem: React.FC = ({ task, onClick }) => {\n\treturn (\n\t\t ({\n\t\t\t\tdisplay: 'flex',\n\t\t\t\talignItems: 'center',\n\t\t\t\twidth: '100%',\n\t\t\t\tpadding: '.15rem .85rem',\n\t\t\t\tfontSize: '.8rem',\n\t\t\t\tborderTopStyle: 'solid',\n\t\t\t\tborderTopWidth: '1px',\n\t\t\t\tborderTopColor: colors.gray[2],\n\n\t\t\t\t'&:hover': {\n\t\t\t\t\tbackgroundColor: lighten(colors.brand[1], 0.9),\n\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t},\n\n\t\t\t\t'&:first-of-type': {},\n\t\t\t})}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t\n\t\t\t\n\t\t\t\t{task.label}\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport { getFormHash } from '@tf/shared';\nimport { Box, createStyles, Modal, TFText, useDisclosure } from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { useSelectedAccount, useSelectedAccountTasks } from '@/core/hooks';\nimport { isReviewFromConnectionGroup } from '@/core/utils/reviews';\nimport { useNavigateToEntity } from '@/core/utils/routes';\nimport { ConnectionForm } from '@/components/shared/ConnectionForm';\n\nimport { RiskModalForm } from './RiskModalForm';\nimport { TaskItem } from './TaskItem';\n\nconst useStyles = createStyles(({ colors }) => ({\n\treviewRoot: {},\n\treviewTitle: {\n\t\tfontWeight: 500,\n\t\tfontSize: '1.1rem',\n\t\tpadding: '.5rem 1rem',\n\t\tborderBottomStyle: 'solid',\n\t\tborderBottomWidth: 1,\n\t\tborderBottomColor: colors.gray[2],\n\t},\n\tentityHeader: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tpadding: '.375rem 1rem',\n\t\tbackgroundColor: colors.brand[0],\n\t},\n\tentityLabel: {\n\t\tcolor: colors.brand[6],\n\t\tfontSize: '.8rem',\n\t},\n}));\n\ninterface ConnectionModalParams {\n\tconnectionKind: BackendTypes.EntityConnectionKind;\n\tparentEntityId: BackendTypes.GraphId;\n\tparentEntityKind: BackendTypes.EntityKind;\n\treview: {\n\t\tgraphLinkId: BackendTypes.GraphId;\n\t\tconnectionKind: BackendTypes.EntityConnectionKind;\n\t};\n\tlabel: string;\n}\n\ntype ConnectionModalState = { isModalOpen: false } | ({ isModalOpen: true } & ConnectionModalParams);\n\ninterface Props {\n\tonTaskActionFinish?: () => void;\n\thideLabel?: boolean;\n}\n\nexport const AccountTasks: React.FC = ({ onTaskActionFinish, hideLabel }) => {\n\tconst { classes } = useStyles();\n\n\tconst { getEntityPath } = useNavigateToEntity();\n\tconst navigate = useNavigate();\n\tconst navigateToEntity = (params: {\n\t\treviewConnectionKind: BackendTypes.EntityConnectionKind;\n\t\treviewLinkId: BackendTypes.GraphId;\n\t\tentityId: BackendTypes.GraphId;\n\t}) => {\n\t\twindow.scrollTo(0, 0);\n\t\tnavigate(getEntityPath(params.reviewLinkId, params.reviewConnectionKind, params.entityId));\n\t\tonTaskActionFinish?.();\n\t};\n\n\tconst account = useSelectedAccount();\n\tconst navigateToForm = (params: {\n\t\treviewConnectionKind: BackendTypes.EntityConnectionKind;\n\t\treviewLinkId: BackendTypes.GraphId;\n\t\tentityId: BackendTypes.GraphId;\n\t\tform: ExtendedFormDefinition;\n\t}) => {\n\t\tconst mainEntityId = account.reviews.find((r) => r.connectionKind === 'APPLICANT')?.graphNodeId;\n\n\t\tconst basePath = `/accounts/${account.meta.graphNodeId}/${S.slugify(params.reviewConnectionKind)}/${\n\t\t\tparams.reviewLinkId\n\t\t}`;\n\t\tconst formPart = `${params.form.name}?hash=${getFormHash(params.form)}`;\n\n\t\tconst formPath =\n\t\t\tparams.entityId === mainEntityId || isReviewFromConnectionGroup(account, params.reviewLinkId)\n\t\t\t\t? `${basePath}/${formPart}`\n\t\t\t\t: `${basePath}/entity/${params.entityId}/${formPart}`;\n\n\t\twindow.scrollTo(0, 0);\n\t\tnavigate(formPath);\n\t\tonTaskActionFinish?.();\n\t};\n\n\tconst riskModal = useDisclosure();\n\n\tconst [connectionModalState, setConnectionModalState] = useState({\n\t\tisModalOpen: false,\n\t});\n\n\tconst closeConnectionModal = () => setConnectionModalState({ isModalOpen: false });\n\n\tconst createConnection = (params: ConnectionModalParams) => {\n\t\tsetConnectionModalState({\n\t\t\t...params,\n\t\t\tisModalOpen: true,\n\t\t});\n\t};\n\n\tconst accountTasks = useSelectedAccountTasks();\n\tconst hasAnyTasks = accountTasks.some((reviewTasks) =>\n\t\treviewTasks.entities.some((entityTasks) => entityTasks.tasks.length > 0)\n\t);\n\n\tif (!hasAnyTasks) {\n\t\treturn (\n\t\t\t\n\t\t\t\tAll tasks are completed\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{accountTasks.map((reviewTasks) => {\n\t\t\t\tconst hasTasksForReview = reviewTasks.entities.some(\n\t\t\t\t\t(entityTasks) => entityTasks.tasks.length > 0\n\t\t\t\t);\n\n\t\t\t\tif (!hasTasksForReview) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t{!hideLabel && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{S.prettify(reviewTasks.reviewConnectionKind)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{reviewTasks.entities.map((entityTasks) => {\n\t\t\t\t\t\t\tif (entityTasks.tasks.length === 0) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\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\t{entityTasks.entityName}\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{entityTasks.tasks.map((task) => {\n\t\t\t\t\t\t\t\t\t\t\tlet handleClick;\n\t\t\t\t\t\t\t\t\t\t\tswitch (task.type) {\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'PENDING_FILL':\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'VALIDATION_ERRORS':\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'PENDING_REVIEW':\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'REJECTED':\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick = () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigateToForm({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treviewLinkId: reviewTasks.reviewLinkId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treviewConnectionKind: reviewTasks.reviewConnectionKind,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tentityId: entityTasks.entityId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tform: task.form,\n\t\t\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\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'CORRECT_SHAREHOLDERS_PERCENTAGE_SUM':\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'CORRECT_PARTNERSHIP_PERCENTAGE_SUM':\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick = () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigateToEntity({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treviewLinkId: reviewTasks.reviewLinkId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treviewConnectionKind: reviewTasks.reviewConnectionKind,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tentityId: entityTasks.entityId,\n\t\t\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\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'REQUIRED_CONNECTION':\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick = () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreateConnection({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...task.connection,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: task.label,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treview: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgraphLinkId: reviewTasks.reviewLinkId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconnectionKind: reviewTasks.reviewConnectionKind,\n\t\t\t\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\t\t});\n\t\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\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'FINALIZE_REVIEW':\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick = () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\triskModal.open();\n\t\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\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick = () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log('Unhandled task type');\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\treturn ;\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
\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{connectionModalState.isModalOpen && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tcloseConnectionModal();\n\t\t\t\t\t\t\tonTaskActionFinish?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{riskModal.isOpen && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import { forwardRef } from 'react';\n\nimport { createStyles, UnstyledButton } from '@tf/ui';\nimport { fmt } from '@tf/utils';\n\nconst useStyles = createStyles(() => {\n\treturn {\n\t\tbutton: {\n\t\t\tfontWeight: 500,\n\t\t\tborderBottom: '1px dotted',\n\t\t\twhiteSpace: 'nowrap',\n\t\t},\n\t\tvalue: {\n\t\t\tfontWeight: 500,\n\t\t},\n\t};\n});\n\ninterface Props {\n\tvalue: string | undefined;\n\tonClick?: () => void;\n\tstyle?: React.CSSProperties;\n\tdefaultValue?: string;\n}\n\nexport const DateValue = forwardRef(\n\t({ value, style, defaultValue = 'N/A', onClick }, ref) => {\n\t\tconst displayValue = value ? fmt.toDate(value ?? null, { preset: 'full_date' }) : defaultValue;\n\n\t\tconst { classes } = useStyles();\n\n\t\treturn onClick ? (\n\t\t\t\n\t\t\t\t{displayValue}\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t\t\t{displayValue}\n\t\t\t\n\t\t);\n\t}\n);\n","import { useSelector } from '@datagrid/state';\n\nimport { useAccountInfoSegments } from \"@/core/hooks/use-account-info-segments\";\n\nexport const useSelectedAccountRmData = () => {\n\tconst { state } = useAccountInfoSegments();\n\treturn useSelector(() => {\n\t\tif (!state.values?.get()) {\n\t\t\treturn {\n\t\t\t\tclient_account_status: null,\n\t\t\t\taccount_id: null,\n\t\t\t\tonboarding_date: null,\n\t\t\t\tclosing_date: null\n\t\t\t}\n\t\t}\n\n\t\treturn state.values?.get()?.COMMON__RM_FEEDBACK;\n\t});\n};\n","import type { ReactElement } from 'react';\n\nimport { Icon } from '@tf/ui';\n\nimport type { TFBadgeColors } from '@/components/shared';\nimport { TFBadge } from '@/components/shared';\n\ninterface Props {\n\tcontent: ReactElement | string;\n\tcolor: TFBadgeColors;\n\tonClick?: () => void;\n\tdisabled?: boolean;\n}\n\nexport const AccountStatusBadge: React.FC = ({ content, color, onClick, disabled }) => {\n\treturn (\n\t\t}\n\t\t\tcolor={color}\n\t\t\tonClick={() => (onClick ? onClick() : null)}\n\t\t\tdisabled={disabled}\n\t\t/>\n\t);\n};\n","import { fmt } from \"@tf/utils\";\n\nexport const setDefaultValue = ({ fieldName, defaultFields }: {\n\tfieldName: string,\n\tdefaultFields: { fieldName: string, fieldType: string }[]\n}) => {\n\tconst defaultField = defaultFields.find(item => item.fieldName === fieldName);\n\tif (defaultField) {\n\t\tif (defaultField.fieldType === 'date') {\n\t\t\treturn fmt.toDate(new Date(), { preset: 'date_struct' });\n\t\t}\n\t\tif (defaultField.fieldType === 'text') {\n\t\t\treturn '';\n\t\t}\n\t}\n}","import { Stack, TFText } from '@tf/ui';\n\nimport { AccountTasks } from '@/components/accounts';\n\nexport const ProspectActiveConfirmationText = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tPlease note the account review is incomplete and requires further info in the following forms:\n\t\t\t\n\t\t\t\n\t\t\tOnce activated, the profile will be monitored against an AML risk database.\n\t\t\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\n\nimport { ProspectActiveConfirmationText } from '@/components/accounts/AccountToolbar/AccountStatus/content';\nimport type { ModalProps } from '@/components/accounts/AccountToolbar/AccountStatus/types/types';\nimport type { PrimitiveField } from '@/components/shared';\nimport { FieldName } from '@/components/shared';\n\nconst getFields = (name: string): Record => {\n\treturn {\n\t\tonboardingDate: {\n\t\t\tname: 'onboarding_date',\n\t\t\tcomponent: FieldName.DateField,\n\t\t\tlabel: 'Onboarding date',\n\t\t},\n\t\taccountId: {\n\t\t\tname: 'account_id',\n\t\t\tcomponent: FieldName.TextField,\n\t\t\tlabel: 'Account ID',\n\t\t},\n\t\tclosingDate: {\n\t\t\tname: 'closing_date',\n\t\t\tcomponent: FieldName.DateField,\n\t\t\tlabel: 'Closing date',\n\t\t},\n\t\taccountName: {\n\t\t\tname: 'account_name',\n\t\t\tcomponent: FieldName.TextField,\n\t\t\tlabel: `Enter the account name “${name}” to continue`,\n\t\t},\n\t};\n};\n\nexport const getModalData = ({\n\taccountStatus,\n\tnewAccountStatus,\n\tverificationStatus,\n\taccountName,\n}: {\n\taccountStatus: BackendTypes.OverviewAccountStatus | 'UNDEFINED';\n\tnewAccountStatus: BackendTypes.OverviewAccountStatus;\n\tverificationStatus?: BackendTypes.ReviewState;\n\taccountName: string;\n}): ModalProps => {\n\tconst fields = getFields(accountName);\n\n\tif (\n\t\taccountStatus === 'PROSPECT' &&\n\t\tnewAccountStatus === 'ACTIVE' &&\n\t\tverificationStatus === 'VERIFIED'\n\t) {\n\t\treturn {\n\t\t\ttitle: \"Please confirm you'd like to activate this account?\",\n\t\t\ttext: 'Once activated, the profile will be monitored against an AML risk database.',\n\t\t\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\t\tadditionalFields: [fields.accountId, fields.onboardingDate],\n\t\t\tconfirmButtonLabel: 'Activate account',\n\t\t};\n\t}\n\n\tif (accountStatus === 'PROSPECT' && newAccountStatus === 'ACTIVE') {\n\t\tconst content = ;\n\t\treturn {\n\t\t\ttitle: \"Confirm you'd like to activate this account?\",\n\t\t\tcontent: content,\n\t\t\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\t\tadditionalFields: [fields.accountId, fields.onboardingDate],\n\t\t\tconfirmButtonLabel: 'Activate anyway',\n\t\t};\n\t}\n\n\tif (accountStatus === 'PROSPECT' && newAccountStatus === 'REJECTED') {\n\t\treturn {\n\t\t\ttitle: \"Please confirm you'd like to reject this application?\",\n\t\t\ttext: 'Once rejected, the account cannot be reactivated.',\n\t\t\tconfirmButtonLabel: 'Reject account',\n\t\t};\n\t}\n\n\tif (accountStatus === 'ACTIVE' && newAccountStatus === 'SUSPENDED') {\n\t\treturn {\n\t\t\ttitle: \"Confirm you'd like to suspend this account?\",\n\t\t\ttext: 'Please note, once suspended, you will always be able to reactivate the account and the profile will continue to be monitored. If you prefer to permanently deactivate this account, please use the \"Close\" option instead.',\n\t\t\tconfirmButtonLabel: 'Suspend account',\n\t\t};\n\t}\n\n\tif (accountStatus === 'SUSPENDED' && newAccountStatus === 'ACTIVE') {\n\t\treturn {\n\t\t\ttitle: \"Please confirm you'd like to reactivate this account?\",\n\t\t\ttext: 'Once activated, the profile will be monitored against an AML risk database.',\n\t\t\tconfirmButtonLabel: 'Reactivate account',\n\t\t};\n\t}\n\n\tif ((accountStatus === 'ACTIVE' || accountStatus === 'SUSPENDED') && newAccountStatus === 'CLOSED') {\n\t\treturn {\n\t\t\ttitle: \"Please confirm you'd like to close this account?\",\n\t\t\ttext: 'Once the account is closed, you will not be able to reactivate it, and the profile will no longer be monitored',\n\t\t\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\t\tadditionalFields: [fields.closingDate],\n\t\t\tconfirmButtonLabel: 'Close account',\n\t\t};\n\t}\n\n\tif (newAccountStatus === 'ARCHIVED') {\n\t\treturn {\n\t\t\ttitle: `Archive ${accountName}?`,\n\t\t\ttext: 'Archiving cannot be undone. You will still be able to find and view archived accounts by selecting “Archived” filter.',\n\t\t\tconfirmButtonLabel: 'Archive account',\n\t\t\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\t\tadditionalFields: [fields.accountName],\n\t\t\tconfirmButtonColor: 'red',\n\t\t\taccountNameConfirmation: accountName,\n\t\t};\n\t}\n\n\treturn {\n\t\ttitle: 'Please confirm',\n\t\ttext: 'Please confirm',\n\t\tconfirmButtonLabel: 'Confirm',\n\t};\n};\n","import type { BackendTypes } from '@tf/api';\n\nexport const getAvailableStatuses = ({\n\tstatus,\n\tverificationStatus,\n}: {\n\tstatus: BackendTypes.OverviewAccountStatus | 'UNDEFINED';\n\tverificationStatus?: BackendTypes.ReviewState;\n}) => {\n\tconst result: BackendTypes.OverviewAccountStatus[] = [];\n\n\tswitch (status) {\n\t\tcase 'UNDEFINED': {\n\t\t\tresult.push('PROSPECT');\n\t\t\tbreak;\n\t\t}\n\t\tcase 'PROSPECT': {\n\t\t\tif (verificationStatus === 'VERIFIED' || verificationStatus === 'UPDATE_REQUIRED') {\n\t\t\t\tresult.push('ACTIVE');\n\t\t\t}\n\n\t\t\tresult.push('REJECTED');\n\n\t\t\tbreak;\n\t\t}\n\t\tcase 'ACTIVE': {\n\t\t\tresult.push('SUSPENDED', 'CLOSED');\n\t\t\tbreak;\n\t\t}\n\t\tcase 'SUSPENDED': {\n\t\t\tresult.push('ACTIVE', 'CLOSED');\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (status !== 'ARCHIVED') {\n\t\tresult.push('ARCHIVED');\n\t}\n\n\treturn result;\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { Stack } from '@tf/ui';\n\nimport { useAccountInfoSegments } from '@/core/hooks';\nimport type { PrimitiveField } from '@/components/shared';\nimport { ConfirmationModal, PrimitiveFormBuilder } from '@/components/shared';\n\nimport type { ModalProps } from './types';\nimport { setDefaultValue } from './utils';\n\ninterface Props {\n\tmodalData: ModalProps;\n\tonCancel: () => void;\n\tonConfirm: (fields: Record) => void;\n\tinitialValues: Record;\n}\n\nexport const AccountStatusModal: React.FC = ({\n\tmodalData,\n\tonCancel,\n\tonConfirm,\n\tinitialValues,\n}) => {\n\tconst { defaultValues } = useAccountInfoSegments();\n\n\tconst [fields, setFields] = useState({});\n\tconst [fieldValues, setFieldValues] = useState(initialValues);\n\n\tuseEffect(() => {\n\t\tif (initialValues) {\n\t\t\tconst result = { ...initialValues };\n\t\t\tmodalData?.additionalFields?.forEach((field: PrimitiveField) => {\n\t\t\t\tif (!result[field.name]) {\n\t\t\t\t\tresult[field.name] = setDefaultValue({\n\t\t\t\t\t\tfieldName: field.name,\n\t\t\t\t\t\tdefaultFields: defaultValues,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsetFields({ ...fields, ...result });\n\t\t\tsetFieldValues({ ...fieldValues, ...result });\n\t\t}\n\t}, [initialValues]);\n\n\treturn (\n\t\t onConfirm(fieldValues)}\n\t\t\tconfirmButtonColor={modalData.confirmButtonColor}\n\t\t\tisSubmitDisabled={fieldValues.account_name !== modalData.accountNameConfirmation}\n\t\t\tonCancel={onCancel}\n\t\t>\n\t\t\t\n\t\t\t\t{modalData?.content}\n\t\t\t\t{modalData?.additionalFields ? (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetFieldValues({ ...fields, ...changedFields });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t\n\t\t\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\n\nimport { TFBadgeColors } from '@/components/shared';\n\nexport const accountStatusBadgeColors: Record =\n\t{\n\t\tUNDEFINED: TFBadgeColors.DIMMED,\n\t\tPROSPECT: TFBadgeColors.BLUE,\n\t\tACTIVE: TFBadgeColors.GREEN,\n\t\tREJECTED: TFBadgeColors.RED,\n\t\tSUSPENDED: TFBadgeColors.ORANGE,\n\t\tCLOSED: TFBadgeColors.RED,\n\t\tARCHIVED: TFBadgeColors.DIMMED,\n\t};\n","import React, { useEffect, useState } from 'react';\n\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, Menu, Modal, useDisclosure } from '@tf/ui';\n\nimport { useOverviewAccount } from '@/core/api/overview';\nimport {\n\tuseAccountInfoSegments,\n\tuseSelectedAccount,\n\tuseSelectedAccountApplicantReview,\n} from '@/core/hooks';\nimport { useSelectedAccountRmData } from '@/core/hooks/use-select-account-RM-data';\nimport { UserCapabilities } from '@/core/types';\nimport { getLabel, useCurrentUserCapabilityCheck } from '@/core/utils';\nimport type { TFBadgeColors } from '@/components/shared';\nimport { TFBadge } from '@/components/shared';\n\nimport { AccountStatusBadge } from './AccountStatusBadge';\nimport { AccountStatusModal } from './AccountStatusModal';\nimport { accountStatusBadgeColors } from './constants';\nimport type { ModalProps } from './types';\nimport { getAvailableStatuses, getModalData } from './utils';\n\nexport const AccountStatus = () => {\n\tconst statusModal = useDisclosure();\n\tconst [potentialStatuses, setPotentialStatuses] = useState([]);\n\tconst [label, setLabel] = useState('');\n\tconst [modalData, setModalData] = useState();\n\tconst [tempStatus, setTempStatus] = useState(null);\n\tconst [clientAccountStatus, setClientAccountStatus] =\n\t\tuseState(null);\n\tconst queryClient = useQueryClient();\n\n\tconst { accountDataMutation } = useAccountInfoSegments();\n\tconst rmData = useSelectedAccountRmData();\n\tconst reviewState = useSelectedAccountApplicantReview();\n\tconst canEditAccountData = useCurrentUserCapabilityCheck(UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA);\n\tconst { meta } = useSelectedAccount();\n\tconst { data } = useOverviewAccount(meta.graphNodeId);\n\n\tuseEffect(() => {\n\t\tif (rmData?.client_account_status) {\n\t\t\tsetClientAccountStatus(rmData?.client_account_status as BackendTypes.OverviewAccountStatus);\n\t\t}\n\n\t\tsetPotentialStatuses(\n\t\t\tgetAvailableStatuses({\n\t\t\t\tstatus: rmData?.client_account_status || 'UNDEFINED',\n\t\t\t\tverificationStatus: reviewState.state,\n\t\t\t})\n\t\t);\n\t\tsetLabel(getLabel(rmData?.client_account_status as string, { kind: 'accountStatus' }));\n\t}, [rmData?.client_account_status, reviewState.state]);\n\n\tconst onConfirm = async (data: Record) => {\n\t\tstatusModal.close();\n\n\t\t// TODO: Values['COMMON__RM_FEEDBACK']\n\t\tconst result: any = {\n\t\t\t...rmData,\n\t\t\t...data,\n\t\t};\n\n\t\tif (tempStatus) {\n\t\t\tresult.client_account_status = tempStatus;\n\t\t}\n\n\t\tawait accountDataMutation.mutateAsync(result);\n\t\tawait queryClient.invalidateQueries({ queryKey: ['overviewAccounts'] });\n\t\tsetTempStatus(null);\n\t};\n\n\tconst badgeProps = {\n\t\tcontent: label,\n\t\tdisabled: potentialStatuses.length < 1,\n\t\tcolor: accountStatusBadgeColors[clientAccountStatus || 'UNDEFINED'] as TFBadgeColors,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{clientAccountStatus ? (\n\t\t\t\tpotentialStatuses.length < 1 || !canEditAccountData ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\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\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\t{potentialStatuses.map((status) => (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetTempStatus(status);\n\t\t\t\t\t\t\t\t\t\t\tconst modalData = getModalData({\n\t\t\t\t\t\t\t\t\t\t\t\taccountStatus: clientAccountStatus,\n\t\t\t\t\t\t\t\t\t\t\t\tnewAccountStatus: status,\n\t\t\t\t\t\t\t\t\t\t\t\tverificationStatus: data?.account.reviewStates?.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t(r) => r.connectionKind === 'APPLICANT'\n\t\t\t\t\t\t\t\t\t\t\t\t)?.state,\n\t\t\t\t\t\t\t\t\t\t\t\taccountName: data?.account.name ?? '',\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\tsetModalData(modalData);\n\t\t\t\t\t\t\t\t\t\t\tstatusModal.open();\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\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\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetTempStatus(null);\n\t\t\t\t\t\t\t\t\tstatusModal.close();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t) : null}\n\t\t\n\t);\n};\n","import { useEffect, useState } from 'react';\n\nimport type { FC } from 'react';\n\nimport { Box, Button, DatePicker, Popover } from '@tf/ui';\nimport { fmt } from '@tf/utils';\n\nimport { DateValue } from '@/components/shared/DateValue';\n\ninterface Props {\n\tdate: string | undefined;\n\tisLoading: boolean;\n\tonSave: (newDate: string) => Promise;\n}\n\nexport const LatestReviewDate: FC = ({ date, isLoading, onSave }) => {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst [selectedDate, setSelectedDate] = useState(new Date());\n\n\tconst closePopover = () => setIsOpen(false);\n\tconst togglePopover = () => setIsOpen(!isOpen);\n\n\tconst onSaveChanges = async () => {\n\t\tconst nextValue = fmt.toDate(selectedDate, { preset: 'date_struct' });\n\t\tawait onSave(nextValue);\n\t\tclosePopover();\n\t};\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\tsetSelectedDate(date ? new Date(date) : new Date());\n\t\t}\n\t}, [date, isOpen]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (newDate) {\n\t\t\t\t\t\t\tsetSelectedDate(newDate);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tSave\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useEffect, useState } from 'react';\n\nimport type { FC } from 'react';\n\nimport { Box, Button, createStyles, DatePicker, Popover, TFText } from '@tf/ui';\nimport { D, fmt } from '@tf/utils';\n\nimport { DateValue } from '@/components/shared/DateValue';\n\nconst useStyles = createStyles(({ colors, fontSizes }) => {\n\treturn {\n\t\tpresetsLabel: {\n\t\t\tcolor: colors.gray[5],\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '0.75rem',\n\t\t\tletterSpacing: '.5px',\n\t\t},\n\t\tpresets: {\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'space-between',\n\t\t},\n\t\tpresetButton: {\n\t\t\tpadding: 0,\n\n\t\t\t'&:hover': {\n\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\tcolor: colors.brand[7],\n\t\t\t},\n\t\t},\n\t\toverdueText: {\n\t\t\tcolor: colors.red[6],\n\t\t\tcursor: 'pointer',\n\t\t\tfontWeight: 600,\n\t\t},\n\t};\n});\n\nconst presets = [\n\t[3, 'months'],\n\t[6, 'months'],\n\t[1, 'year'],\n\t[2, 'years'],\n] as const;\n\ninterface NextReviewDateProps {\n\tbaseDate: string | undefined;\n\tdate: string | undefined;\n\tisLoading: boolean;\n\tonSave: (newDate: string) => Promise;\n}\n\nexport const NextReviewDate: FC = ({ baseDate, date, isLoading, onSave }) => {\n\tconst { classes } = useStyles();\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst [selectedDate, setSelectedDate] = useState();\n\n\tconst closePopover = () => setIsOpen(false);\n\n\tuseEffect(() => {\n\t\tif (isOpen && date) {\n\t\t\tsetSelectedDate(new Date(date));\n\t\t}\n\t}, [date, isOpen]);\n\n\tconst onSaveChanges = async () => {\n\t\tif (!selectedDate) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextValue = fmt.toDate(selectedDate, { preset: 'date_struct' });\n\t\tawait onSave(nextValue);\n\t\tclosePopover();\n\t};\n\n\tconst handleDateChange = (newDate: Date) => {\n\t\tif (newDate) {\n\t\t\tsetSelectedDate(newDate);\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{date && D.getOverdueDaysCount(date) ? (\n\t\t\t\t\t setIsOpen(!isOpen)}>\n\t\t\t\t\t\tOverdue {D.getOverdueDaysCount(date)} {D.getOverdueDaysCount(date) > 1 ? 'days' : 'day'}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t setIsOpen(!isOpen)} />\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tSchedule a recheck afterwards\n\t\t\t\t\t\n\t\t\t\t\t\t{presets.map(([value, unit]) => {\n\t\t\t\t\t\t\tconst label = `${value} ${unit}`;\n\n\t\t\t\t\t\t\tconst setDate = () => {\n\t\t\t\t\t\t\t\tconst startDate = baseDate ? new Date(baseDate) : new Date();\n\t\t\t\t\t\t\t\tconst presetDate = D.add(startDate, value, unit);\n\n\t\t\t\t\t\t\t\tsetSelectedDate(presetDate);\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t {\n\t\t\t\t\t\tif (value) handleDateChange(value);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tSave\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\nimport { Group, TFText } from '@tf/ui';\n\nimport { useOverviewAccount } from '@/core/api/overview';\nimport { useSelectedAccount, useSelectedAccountApplicantReview } from '@/core/hooks';\nimport { getLabel } from '@/core/utils';\nimport { ReviewState, TFBadge, TFBadgeColors } from '@/components/shared';\n\nconst colors: Record = {\n\tDRAFT: TFBadgeColors.DIMMED,\n\tREADY_TO_REVIEW: TFBadgeColors.INDIGO,\n\tUNDER_REVIEW: TFBadgeColors.INDIGO,\n\tUPDATE_REQUIRED: TFBadgeColors.ORANGE,\n\tVERIFIED: TFBadgeColors.GREEN,\n};\n\nexport const ReviewStatus = () => {\n\tconst { meta } = useSelectedAccount();\n\tconst { data } = useOverviewAccount(meta.graphNodeId);\n\n\tconst additionalReviews =\n\t\tdata?.account.reviewStates.filter((r) => r.connectionKind !== 'APPLICANT') || [];\n\n\tconst reviewState = useSelectedAccountApplicantReview();\n\n\tconst label = getLabel(reviewState.state || '', { kind: 'reviewState' });\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{label}\n\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\tcolor: colors.gray[4],\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t{additionalReviews?.length > 0 ? '(+' + additionalReviews.length + ')' : ''}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tcolor={colors[reviewState.state || 'DRAFT'] as TFBadgeColors}\n\t\t\t/>\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { observer, Switch } from '@datagrid/state';\n\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { useAccountForm } from '@/core/hooks';\nimport { AppFormBuilder, ModalFooter } from '@/components/shared';\n\ninterface Props {\n\tonClose: () => void;\n}\n\nexport const RiskProfileForm: React.FC = observer(({ onClose }) => {\n\tconst { state, scripts, formSegments, handleSubmit } = useAccountForm(\n\t\t['COMMON__COMPLIANCE_FEEDBACK'],\n\t\t{ onSuccess: onClose }\n\t);\n\n\treturn (\n\t\t\n\t\t\t{{\n\t\t\t\tundefined: () => ,\n\t\t\t\tdefault: () => (\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\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);\n});\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Modal, useDisclosure } from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { TFBadge, TFBadgeColors } from '@/components/shared';\n\nimport { RiskProfileForm } from './RiskProfileForm';\n\nconst riskLevelColors: Record = {\n\tVERY_HIGH: TFBadgeColors.RED,\n\tHIGH: TFBadgeColors.ORANGE,\n\tMEDIUM: TFBadgeColors.YELLOW,\n\tLOW: TFBadgeColors.GREEN,\n};\n\ninterface Props {\n\tclientRiskLevel: BackendTypes.OverviewAccountRiskLevel | undefined;\n\treadonly: boolean;\n}\n\nexport const RiskProfile: React.FC = ({ clientRiskLevel, readonly }) => {\n\tconst riskProfileModal = useDisclosure();\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport type { PropsWithChildren } from 'react';\n\nimport { Box, createStyles, TFCard, TFText } from '@tf/ui';\n\nimport { useOverviewAccount } from '@/core/api/overview';\nimport { useAccountInfoSegments, useSelectedAccount } from '@/core/hooks';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { AssignedManagersWidget } from '@/components/shared/AssignedManagers';\nimport { DateValue } from '@/components/shared/DateValue';\n\nimport { AccountStatus } from './AccountStatus';\nimport { LatestReviewDate } from './LatestReviewDate';\nimport { NextReviewDate } from './NextReviewDate';\nimport { ReviewStatus } from './ReviewStatus';\nimport { RiskProfile } from './RiskProfile';\n\nconst useStyles = createStyles(({ colors, fontSizes, radius }) => {\n\tconst borderColor = colors.gray[3];\n\n\treturn {\n\t\twrapper: {\n\t\t\tpaddingTop: '0.5rem',\n\t\t\tpaddingBottom: '0.5rem',\n\t\t\tdisplay: 'flex',\n\t\t\tborderRadius: radius.sm,\n\t\t\tminHeight: '4.7rem',\n\n\t\t\t'& > :not(:first-of-type)': {\n\t\t\t\tborderLeft: `1px solid ${borderColor}`,\n\t\t\t},\n\t\t},\n\t\titem: {\n\t\t\tpaddingLeft: '0.75rem',\n\t\t\tpaddingRight: '0.75rem',\n\t\t\tminWidth: '132px',\n\t\t},\n\t\titemTitle: {\n\t\t\tcolor: colors.gray[5],\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '0.75rem',\n\t\t\tletterSpacing: '.5px',\n\t\t},\n\t};\n});\n\nconst Item: React.FC> = ({ label, children }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport const AccountToolbar: React.FC = () => {\n\tconst { classes } = useStyles();\n\n\tconst canReviewAccounts = useCurrentUserCapabilityCheck(UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA);\n\n\tconst {\n\t\taccountStatus,\n\t\tonboardingDate,\n\t\tclosingDate,\n\t\tclientRiskLevel,\n\t\tkycApprovalDate,\n\t\tkycApprovalDateMutation,\n\t\tnextKycReviewDate,\n\t\tnextKycReviewDateMutation,\n\t} = useAccountInfoSegments();\n\n\tconst wasActivated = accountStatus && accountStatus !== 'PROSPECT' && accountStatus !== 'REJECTED';\n\tconst isActive = accountStatus === 'ACTIVE' || accountStatus === 'SUSPENDED';\n\tconst isClosed = accountStatus === 'CLOSED';\n\tconst { meta } = useSelectedAccount();\n\tconst accountId = meta.graphNodeId;\n\tconst { data } = useOverviewAccount(accountId);\n\tconst listUsers = data?.listUsers;\n\n\tconst assignedManagers = data?.account.assignedManagers ?? [];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t{wasActivated ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : null}\n\n\t\t\t\t{wasActivated ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{isActive && canReviewAccounts ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\n\t\t\t\t{isActive ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{canReviewAccounts ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\n\t\t\t\t{isClosed ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : null}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\n\nexport const clientCaseKindLabels: Record = {\n\tLIVENESS_CHECK: 'Identity verification',\n\tFREEFORM: 'Information request',\n\tADDITIONAL_DOCUMENTS: 'Additional documents',\n};\n\nexport const clientCaseKindOptions = Object.entries(clientCaseKindLabels).map(([value, label]) => ({\n\tvalue,\n\tlabel,\n}));\n","import type { BackendTypes } from '@tf/api';\n\nimport type { ExtendedReviewContainer } from '@/core/types';\n\nexport function isValidEmail(input: string) {\n\tconst atIndex = input.indexOf('@');\n\tif (atIndex <= 0 || atIndex === input.length - 1) {\n\t\treturn false;\n\t}\n\n\tconst dotIndex = input.indexOf('.', atIndex + 1);\n\treturn dotIndex > atIndex + 1 && dotIndex < input.length - 1;\n}\n\n\nexport const extractUniqueIndividualEntities = (\n\treviews: ExtendedReviewContainer[]\n): BackendTypes.Entity[] => {\n\tconst map: Record = {};\n\tconst individualEntities: BackendTypes.Entity[] = [];\n\n\treviews.forEach((review) => {\n\t\treview.listEntities.forEach((entity) => {\n\t\t\tif (entity.entityKind === 'INDIVIDUAL_ENTITY' && !map[entity.graphNodeId]) {\n\t\t\t\tmap[entity.graphNodeId] = true;\n\t\t\t\tindividualEntities.push(entity);\n\t\t\t}\n\t\t});\n\t});\n\n\treturn individualEntities;\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Alert, createModal, Icon, Input, Select, Stack } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { useCreateClientCaseRequestMutation } from '@/core/api/caseRequests';\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\nimport { clientCaseKindOptions } from '@/components/cases/requestKind';\nimport { ModalFooter } from '@/components/shared';\n\nimport { extractUniqueIndividualEntities, isValidEmail } from './utils';\n\ntype FieldsState = {\n\temail: string;\n\ttype: string;\n\ttypeError: string;\n\temailError: string;\n\tgraphId: string;\n\tgraphIdError: string;\n};\n\nconst initialFieldsState = {\n\temail: '',\n\temailError: '',\n\ttype: '',\n\ttypeError: '',\n\tgraphId: '',\n\tgraphIdError: '',\n};\n\ninterface CreateCaseModalProps {\n\tclose: () => void;\n}\n\nexport const CreateCaseModal = createModal(({ close }) => {\n\tconst createClientCaseMutation = useCreateClientCaseRequestMutation();\n\tconst navigate = useNavigate();\n\tconst { accountId } = useAccountParams();\n\tconst [fieldsState, setFieldsState] = useState(initialFieldsState);\n\n\tconst { reviews } = useSelectedAccount();\n\tconst applicantReview = reviews.find((r) => r.connectionKind === 'APPLICANT');\n\tT.assertNotNullish(applicantReview, 'no applicant review found');\n\n\tconst caseTypeSelectOptions = clientCaseKindOptions\n\t\t.filter(({ value }) => value !== 'ADDITIONAL_DOCUMENTS');\n\n\tconst individualEntities = extractUniqueIndividualEntities(reviews);\n\n\tuseEffect(() => {\n\t\tif (individualEntities.length === 1) {\n\t\t\tsetFieldsState((prevState) => ({\n\t\t\t\t...prevState,\n\t\t\t\tgraphId: String(individualEntities[0].graphNodeId),\n\t\t\t}));\n\t\t}\n\t}, [individualEntities.length]);\n\n\treturn (\n\t\t {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (!fieldsState.type) {\n\t\t\t\t\tsetFieldsState((prevState) => ({ ...prevState, typeError: 'Empty type' }));\n\t\t\t\t}\n\n\t\t\t\tif (!isValidEmail(fieldsState.email)) {\n\t\t\t\t\tsetFieldsState((prevState) => ({ ...prevState, emailError: 'Invalid email' }));\n\t\t\t\t}\n\n\t\t\t\tif (fieldsState.type === 'LIVENESS_CHECK' && !fieldsState.graphId) {\n\t\t\t\t\tsetFieldsState((prevState) => ({ ...prevState, graphIdError: 'Empty graph ID' }));\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!fieldsState.type ||\n\t\t\t\t\t!isValidEmail(fieldsState.email) ||\n\t\t\t\t\t(fieldsState.type === 'LIVENESS_CHECK' && !fieldsState.graphId)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tawait createClientCaseMutation.mutateAsync(\n\t\t\t\t\t{\n\t\t\t\t\t\taccountId,\n\t\t\t\t\t\tclientEmail: fieldsState.email.trim(),\n\t\t\t\t\t\trequestKind: fieldsState.type as BackendTypes.ClientCaseRequestKind,\n\t\t\t\t\t\tlivenessCheckEntityId:\n\t\t\t\t\t\t\tfieldsState.type === 'LIVENESS_CHECK' ? Number(fieldsState.graphId) : undefined,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tonSuccess: (res) => {\n\t\t\t\t\t\t\tclose();\n\t\t\t\t\t\t\tsetFieldsState(initialFieldsState);\n\t\t\t\t\t\t\tnavigate(res.uuid);\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\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (!type) return;\n\t\t\t\t\t\tsetFieldsState((prevState) => ({ ...prevState, type, typeError: '' }));\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t{fieldsState.type === 'LIVENESS_CHECK' && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (!graphId) return;\n\t\t\t\t\t\t\tsetFieldsState((prevState) => ({ ...prevState, graphId, graphIdError: '' }));\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdata={individualEntities.map((e) => ({ value: String(e.graphNodeId), label: e.name }))}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{fieldsState.type === 'LIVENESS_CHECK' && individualEntities.length === 0 && (\n\t\t\t\t\t}\n\t\t\t\t\t\tcolor=\"dark\"\n\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\tbackgroundColor: `rgba(246, 102, 6, 0.2)`,\n\t\t\t\t\t\t\tborderColor: `rgba(246, 102, 6, 0.5)`,\n\t\t\t\t\t\t\tcolor: `rgb(246, 102, 6)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tfw=\"600\"\n\t\t\t\t\t>\n\t\t\t\t\t\tPlease add at least one individual entity to your account to proceed\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tconst email = e.target.value;\n\t\t\t\t\t\t\tsetFieldsState((prevState) => ({ ...prevState, email, emailError: '' }));\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\t\n\t\t\n\t);\n});\n","import React from 'react';\n\nimport { Link } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tButton,\n\tcreateStyles,\n\tTFDataTable,\n\tTFLoadingOverlay,\n\tTFText,\n\tTitle,\n\tUnstyledButton,\n\tuseDisclosure,\n} from '@tf/ui';\nimport { fmt, S } from '@tf/utils';\n\nimport { useClientCasesRequests } from '@/core/api/caseRequests';\nimport { useAccountParams } from '@/core/hooks';\nimport { getDisplayName } from '@/core/utils';\n\nimport { CreateCaseModal } from './CreateCaseModal';\nimport { clientCaseKindLabels, clientCaseKindOptions } from './requestKind';\n\nconst useStyles = createStyles(({ colors }) => ({\n\tlink: {\n\t\tfontSize: 13,\n\t\theight: 32,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.brand[6],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n\tupdatedBadge: {\n\t\tbackgroundColor: '#EFF4FF',\n\t\tcolor: '#164CB0',\n\t\tborderRadius: '20px',\n\t\tpadding: '0 8px',\n\t\tposition: 'relative',\n\t\t'& > div': {\n\t\t\tposition: 'absolute',\n\t\t\ttop: -1,\n\t\t\tright: -1,\n\t\t\tbackgroundColor: 'red',\n\t\t\twidth: '8px',\n\t\t\theight: '8px',\n\t\t\tborderRadius: '50%',\n\t\t\tborder: '1.5px solid white',\n\t\t},\n\t},\n\tsentBadge: {\n\t\tbackgroundColor: '#F4EFFF',\n\t\tcolor: '#403E94',\n\t\tborderRadius: '20px',\n\t\tpadding: '0 8px',\n\t},\n\tdefaultBadge: {\n\t\tbackgroundColor: '#F3F3F3',\n\t\tcolor: '#2B2B2B',\n\t\tborderRadius: '20px',\n\t\tpadding: '0 8px',\n\t},\n}));\n\nexport const ClientCasesTable = () => {\n\tconst { accountId } = useAccountParams();\n\tconst { data, isSuccess } = useClientCasesRequests(accountId);\n\tconst createClientCaseModal = useDisclosure();\n\tconst { classes } = useStyles();\n\n\tif (!isSuccess) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tCases\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\tname=\"cases-table\"\n\t\t\t\tdata={data}\n\t\t\t\tdefs={[\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'ID',\n\t\t\t\t\t\taccessorKey: 'sequential_id',\n\t\t\t\t\t\tsize: 50,\n\t\t\t\t\t\tCell: ({ row: { original } }) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{formatID(original.sequential_id)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Type',\n\t\t\t\t\t\taccessorKey: 'requestKind',\n\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row.original.requestKind === filterValue;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\tconst { requestKind } = row.original;\n\t\t\t\t\t\t\treturn {clientCaseKindLabels[requestKind]};\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Client email',\n\t\t\t\t\t\taccessorKey: 'clientEmail',\n\t\t\t\t\t\tsize: 120,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Sent date',\n\t\t\t\t\t\tid: 'createdAt',\n\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\taccessorFn: (request) => {\n\t\t\t\t\t\t\treturn request.sentAt ? fmt.toDate(request.sentAt, { preset: 'full_date' }) : 'N/A';\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Due date',\n\t\t\t\t\t\tid: 'dueAt',\n\t\t\t\t\t\tsize: 85,\n\t\t\t\t\t\taccessorFn: (request) => {\n\t\t\t\t\t\t\treturn request.dueAt ? fmt.toDate(request.dueAt, { preset: 'full_date' }) : 'N/A';\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Author',\n\t\t\t\t\t\tid: 'authorUserInfo',\n\t\t\t\t\t\tsize: 70,\n\t\t\t\t\t\taccessorFn: (request) => {\n\t\t\t\t\t\t\treturn request.authorId === 'SCHEDULER_ROBOT'\n\t\t\t\t\t\t\t\t? 'System'\n\t\t\t\t\t\t\t\t: request.authorUserInfo\n\t\t\t\t\t\t\t\t? getDisplayName(request.authorUserInfo)\n\t\t\t\t\t\t\t\t: 'N/A';\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Status',\n\t\t\t\t\t\tid: 'status',\n\t\t\t\t\t\taccessorKey: 'status',\n\t\t\t\t\t\tsize: 70,\n\t\t\t\t\t\tCell: ({ row: { original } }) => {\n\t\t\t\t\t\t\tif (original.status === 'UPDATED') {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{S.prettify(original.status)}\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);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (original.status === 'SENT') {\n\t\t\t\t\t\t\t\treturn {S.prettify(original.status)};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn {S.prettify(original.status)};\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t\tavailableFilters={[\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'status',\n\t\t\t\t\t\tlabel: 'Status',\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\tvalue: [\n\t\t\t\t\t\t\t{ value: 'DRAFT', label: 'Draft' },\n\t\t\t\t\t\t\t{ value: 'SENT', label: 'Sent' },\n\t\t\t\t\t\t\t{ value: 'VIEWED', label: 'Viewed' },\n\t\t\t\t\t\t\t{ value: 'UPDATED', label: 'Updated' },\n\t\t\t\t\t\t\t{ value: 'CLOSED', label: 'Closed' },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'requestKind',\n\t\t\t\t\t\tlabel: 'Type',\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\tvalue: clientCaseKindOptions,\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t/>\n\n\t\t\t\n\t\t\n\t);\n};\n\nfunction formatID(id?: number) {\n\tif (!id) return;\n\tconst idStr = id.toString().padStart(6, '0').split('');\n\n\tfor (let i = idStr.length - 3; i > 0; i -= 3) {\n\t\tidStr.splice(i, 0, '-');\n\t}\n\n\treturn idStr.join('');\n}\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, createStyles, Input, Modal, TFNotifier, Tooltip, useDisclosure } from '@tf/ui';\n\nimport { useUpdateClientCaseRequestMutation } from '@/core/api/caseRequests';\nimport { useAccountParams } from '@/core/hooks';\nimport { ModalFooter } from '@/components/shared';\n\nimport { isValidEmail } from './utils';\n\nconst useStyles = createStyles(() => ({\n\tbutton: {\n\t\toverflow: 'hidden',\n\t\twhiteSpace: 'nowrap',\n\t\ttextOverflow: 'ellipsis',\n\t\tfontWeight: 600,\n\t\tborderBottom: '1px dotted',\n\t\tcolor: '#155EEF',\n\t\tcursor: 'pointer',\n\t},\n\ttooltipContent: {\n\t\toverflow: 'hidden',\n\t\twhiteSpace: 'nowrap',\n\t\ttextOverflow: 'ellipsis',\n\t},\n}));\n\ninterface Props {\n\temail: string;\n\trequestId: string;\n\tstatus: string;\n\tdata: Partial;\n}\n\nexport const ClientEmail: React.FC = ({ email, requestId, status, data }: any) => {\n\tconst { accountId } = useAccountParams();\n\tconst { close, isOpen, toggle } = useDisclosure();\n\tconst { classes } = useStyles();\n\n\tconst updateClientCaseMutation = useUpdateClientCaseRequestMutation(accountId);\n\n\tconst [fieldsState, setFieldsState] = React.useState({\n\t\temail,\n\t\temailError: '',\n\t});\n\n\tconst handleSubmit = async () => {\n\t\tif (!isValidEmail(fieldsState.email)) {\n\t\t\tsetFieldsState((prevState) => ({ ...prevState, emailError: 'Invalid email' }));\n\t\t\treturn;\n\t\t}\n\t\tawait updateClientCaseMutation.mutateAsync(\n\t\t\t{\n\t\t\t\taccountId,\n\t\t\t\trequestId,\n\t\t\t\tdata: {\n\t\t\t\t\t...data,\n\t\t\t\t\tclientEmail: fieldsState.email,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tTFNotifier.success('Email updated');\n\t\t\t\t\tclose();\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\tif (status !== 'DRAFT') {\n\t\treturn (\n\t\t\t\n\t\t\t\t{email}\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tawait handleSubmit();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tconst email = e.target.value;\n\t\t\t\t\t\t\t\tsetFieldsState(() => ({ email, emailError: '' }));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{email}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { Box, Button, DatePicker, Popover, useDisclosure } from '@tf/ui';\nimport { fmt } from '@tf/utils';\n\nimport { DateValue } from '@/components/shared/DateValue';\n\ninterface Props {\n\tstatus: string;\n\tselectedDate?: Date;\n\tsetSelectedDate: (date: Date | undefined) => void;\n}\nexport const DueDate: React.FC = ({ status, selectedDate, setSelectedDate }) => {\n\tconst handleDateChange = (newDate: Date) => {\n\t\tif (newDate) {\n\t\t\tsetSelectedDate(newDate);\n\t\t}\n\t};\n\n\tconst popover = useDisclosure();\n\n\tconst formatedDate = selectedDate && fmt.toDate(selectedDate, { preset: 'date_struct' });\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{status === 'DRAFT' ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\t new Date() > date}\n\t\t\t\t\tlocale=\"en\"\n\t\t\t\t\tdate={selectedDate}\n\t\t\t\t\tvalue={selectedDate}\n\t\t\t\t\tonDateChange={handleDateChange}\n\t\t\t\t\tonChange={(value) => {\n\t\t\t\t\t\thandleDateChange(value as Date);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetSelectedDate(undefined);\n\t\t\t\t\t\t\tpopover.close();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tCancel\n\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);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { createStyles } from '@tf/ui';\n\nimport { useSegmentsQuery } from '@/core/api/segments';\nimport { AppFormBuilder } from '@/components/shared';\n\nconst useStyles = createStyles({\n\tcontainer: {\n\t\tmarginTop: '1rem',\n\t\tspan: {\n\t\t\tfontSize: '14.4px',\n\t\t\tfontWeight: 600,\n\t\t},\n\t},\n});\n\nexport const LivenessCheckResults = ({ graphId }: { graphId: number }) => {\n\tconst { classes } = useStyles();\n\n\tconst segments = graphId\n\t\t? [\n\t\t\t\t{\n\t\t\t\t\taccessMode: 'VIEW',\n\t\t\t\t\tgraphId: graphId,\n\t\t\t\t\tsegmentKind: 'COMMON__BACKGROUND_CHECK',\n\t\t\t\t} as const,\n\t\t ]\n\t\t: [];\n\n\tconst { data, isPending } = useSegmentsQuery(segments);\n\n\tif (isPending) {\n\t\treturn null;\n\t}\n\n\tconst initialValues = data?.reduce((acc, { container }) => {\n\t\tconst { info, segment } = container;\n\t\treturn {\n\t\t\t...acc,\n\t\t\t[info.SegmentIdentity.segmentKind]: segment,\n\t\t};\n\t}, {} as Record);\n\n\treturn (\n\t\t
\n\t\t\t
}\n\t\t\t\tonSubmit={Promise.resolve}\n\t\t\t/>\n\t\t
\n\t);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport type { PropsWithChildren } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tButton,\n\tcreateStyles,\n\tDivider,\n\tFlex,\n\tIcon,\n\tStack,\n\tTFCard,\n\tTFLoadingOverlay,\n\tTFMarkdownText,\n\tTFMarkdownTextEditor,\n\tTFNotifier,\n\tTFText,\n\tTooltip,\n} from '@tf/ui';\nimport { D, fmt, S, T } from '@tf/utils';\n\nimport {\n\tuseClientCaseRequest,\n\tuseCloseClientCaseRequestMutation,\n\tuseDownloadClientCaseRequestFileMutation,\n\tuseRevokeClientCaseRequestMutation,\n\tuseSendClientCaseRequestEmailMutation,\n\tuseUpdateClientCaseRequestMutation,\n} from '@/core/api/caseRequests';\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\nimport { getDisplayName } from '@/core/utils';\n\nimport { ClientEmail } from './ClientEmail';\nimport { DueDate } from './DueDate';\nimport { LivenessCheckResults } from './LivenessCheckResults';\nimport { clientCaseKindLabels } from './requestKind';\nimport { extractUniqueIndividualEntities } from './utils';\n\nconst useStyles = createStyles(({ colors, radius }) => {\n\tconst borderColor = colors.gray[3];\n\n\treturn {\n\t\twrapper: {\n\t\t\tpaddingTop: '0.5rem',\n\t\t\tpaddingBottom: '0.5rem',\n\t\t\tdisplay: 'flex',\n\t\t\tborderRadius: radius.sm,\n\n\t\t\t'& > :not(:first-of-type)': {\n\t\t\t\tborderLeft: `1px solid ${borderColor}`,\n\t\t\t},\n\t\t},\n\t\titem: {\n\t\t\tpaddingLeft: '0.75rem',\n\t\t\tpaddingRight: '0.75rem',\n\t\t\tminWidth: '110px',\n\t\t\tfontWeight: 500,\n\t\t\tfontSize: '14px',\n\t\t\tmaxWidth: '160px',\n\t\t},\n\t\ttooltipContent: {\n\t\t\toverflow: 'hidden',\n\t\t\twhiteSpace: 'nowrap',\n\t\t\ttextOverflow: 'ellipsis',\n\t\t},\n\t\titemTitle: {\n\t\t\tcolor: colors.gray[5],\n\t\t\tfontWeight: 600,\n\t\t\tfontSize: '0.75rem',\n\t\t\tletterSpacing: '.5px',\n\t\t},\n\t\tdivider: {\n\t\t\tborderColor,\n\t\t\tborderWidth: '0.5px',\n\t\t},\n\t\tdateContainer: {\n\t\t\tcolor: '#64748B',\n\t\t\tfontWeight: 400,\n\t\t\tjustifyContent: 'end',\n\t\t\tminWidth: '200px',\n\t\t\ttextAlign: 'end',\n\t\t},\n\t\tmarkdownContainer: {\n\t\t\tflexGrow: 1,\n\t\t},\n\t\tmarkdown: {\n\t\t\t'& > :last-of-type': {\n\t\t\t\tmarginBottom: 0,\n\t\t\t},\n\t\t},\n\t};\n});\n\nexport const EditClientCase = () => {\n\tconst [editorContent, setEditorContent] = useState('');\n\n\tconst account = useSelectedAccount();\n\tconst navigate = useNavigate();\n\n\tconst applicantReview = account.reviews.find((r) => r.connectionKind === 'APPLICANT');\n\tT.assertNotNullish(applicantReview, 'no applicant review found');\n\n\tconst individualEntities = extractUniqueIndividualEntities(account.reviews);\n\n\tconst { classes } = useStyles();\n\tconst { accountId, requestId } = useAccountParams();\n\tconst { data: caseRequest, isSuccess } = useClientCaseRequest(accountId, requestId);\n\tconst updateClientCaseMutation = useUpdateClientCaseRequestMutation(accountId);\n\tconst revokeClientCaseMutation = useRevokeClientCaseRequestMutation(accountId);\n\tconst sendClientCaseRequestEmailMutation = useSendClientCaseRequestEmailMutation(accountId);\n\tconst downloadClientCaseRequestFileMutation = useDownloadClientCaseRequestFileMutation();\n\tconst closeClientCaseRequestMutation = useCloseClientCaseRequestMutation(accountId);\n\n\t// it's just a tinny hack to render initial value in markdown editor\n\tconst [editorKey, setEditorKey] = useState<'rendered'>();\n\tconst [selectedDate, setSelectedDate] = useState();\n\n\tconst handleDownloadFile = async (fileStorageKey: string, fileName: string) => {\n\t\tif (!caseRequest) return;\n\n\t\tconst blob = await downloadClientCaseRequestFileMutation.mutateAsync({\n\t\t\taccountId,\n\t\t\trequestId,\n\t\t\tfileStorageKey,\n\t\t});\n\n\t\tconst url = URL.createObjectURL(new Blob([blob]));\n\t\tconst a = document.createElement('a');\n\t\ta.href = url;\n\t\ta.download = fileName;\n\t\ta.click();\n\t\twindow.URL.revokeObjectURL(url);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!caseRequest?.requestPayload) return;\n\n\t\tif (!editorContent) {\n\t\t\tsetEditorContent(caseRequest.requestPayload.text ?? '');\n\t\t}\n\n\t\tsetEditorKey('rendered');\n\n\t\tif (caseRequest.dueAt) {\n\t\t\tsetSelectedDate(new Date(caseRequest.dueAt));\n\t\t}\n\t}, [caseRequest]);\n\n\tif (!isSuccess) {\n\t\treturn ;\n\t}\n\n\tconst isFreeForm = caseRequest.requestKind === 'FREEFORM';\n\n\tconst hasTextChanged = editorContent !== caseRequest.requestPayload?.text;\n\tconst hasDueDateChanged = selectedDate && !D.isSameDate(selectedDate, caseRequest.dueAt);\n\tconst isFormChanged = Boolean(hasTextChanged || hasDueDateChanged);\n\n\tconst freeFormResponse = caseRequest.responsePayload as BackendTypes.ClientCaseRequestFreeformResponse;\n\tconst uploadedFiles = freeFormResponse?.files ?? [];\n\tconst responseText = freeFormResponse?.text ?? '';\n\tconst livenessCheckEntityId = (caseRequest.requestPayload as any)?.livenessCheckEntityId;\n\n\tconst authorLabel =\n\t\tcaseRequest.authorId === 'SCHEDULER_ROBOT'\n\t\t\t? 'System'\n\t\t\t: caseRequest.authorUserInfo\n\t\t\t? getDisplayName(caseRequest.authorUserInfo)\n\t\t\t: 'N/A';\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{clientCaseKindLabels[caseRequest.requestKind]}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{caseRequest.sentAt ? fmt.toDate(caseRequest.sentAt, { preset: 'full_date' }) : 'N/A'}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{authorLabel}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{S.prettify(caseRequest.status)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{caseRequest.status === 'DRAFT' ? (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tawait updateClientCaseMutation.mutateAsync(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\taccountId,\n\t\t\t\t\t\t\t\t\t\t\trequestId: caseRequest.uuid,\n\t\t\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t\t\tdueAt: selectedDate?.toISOString(),\n\t\t\t\t\t\t\t\t\t\t\t\trequestPayload: isFreeForm\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { text: editorContent }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { text: editorContent, livenessCheckEntityId },\n\t\t\t\t\t\t\t\t\t\t\t\tclientEmail: caseRequest.clientEmail,\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\t\tonSuccess: () => {\n\t\t\t\t\t\t\t\t\t\t\t\tTFNotifier.success('Changes saved');\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);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSave changes\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\n\t\t\t\t\t\t{caseRequest.status === 'DRAFT' ? (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (!editorContent) {\n\t\t\t\t\t\t\t\t\t\tTFNotifier.error('Text is required');\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tawait updateClientCaseMutation.mutateAsync(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\taccountId,\n\t\t\t\t\t\t\t\t\t\t\trequestId: caseRequest.uuid,\n\t\t\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t\t\tdueAt: selectedDate?.toISOString(),\n\t\t\t\t\t\t\t\t\t\t\t\trequestPayload: isFreeForm\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { text: editorContent }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { text: editorContent, livenessCheckEntityId },\n\t\t\t\t\t\t\t\t\t\t\t\tclientEmail: caseRequest.clientEmail,\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\t\tonSuccess: async () => {\n\t\t\t\t\t\t\t\t\t\t\t\tawait sendClientCaseRequestEmailMutation.mutateAsync({\n\t\t\t\t\t\t\t\t\t\t\t\t\taccountId,\n\t\t\t\t\t\t\t\t\t\t\t\t\trequestId: caseRequest.uuid,\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},\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}}\n\t\t\t\t\t\t\t\tdisabled={sendClientCaseRequestEmailMutation.isPending}\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tm=\"0 .75rem\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSend request\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : caseRequest.status === 'SENT' ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tawait revokeClientCaseMutation.mutateAsync({ accountId, requestId: caseRequest.uuid })\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tm=\"0 .75rem\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tRevoke request\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{!isFreeForm && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tIndividual account:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{individualEntities.find((e) => e.graphNodeId === livenessCheckEntityId)?.name}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t\n\t\t\t\t\t\tRequest message:{' '}\n\t\t\t\t\t\t{caseRequest.status === 'DRAFT' && *}\n\t\t\t\t\t\n\t\t\t\t\t{caseRequest.status === 'DRAFT' ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{(responseText || uploadedFiles.length > 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\n\t\t\t\t\t)}\n\t\t\t\t\t{responseText && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tResponse message:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{uploadedFiles.length > 0 && }\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{uploadedFiles.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAttached files:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{uploadedFiles.map((file, index) => (\n\t\t\t\t\t\t\t\t handleDownloadFile(file.storageKey, file.filename)}\n\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\trightSection={}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{file.filename}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{caseRequest.status === 'UPDATED' && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tcloseClientCaseRequestMutation.mutateAsync(\n\t\t\t\t\t\t\t\t{ requestId },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\t\t\t\t\tnavigate(`/accounts/${accountId}/cases`);\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)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\tClose case\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nconst Item: React.FC> = ({ label, children }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nconst MessageContainer = ({ editorContent, date }: { editorContent: string; date?: string }) => {\n\tconst { classes } = useStyles();\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{date ? fmt.toDate(date, { preset: 'full_date_with_time' }) : null}\n\t\t\t\n\t\t\n\t);\n};\n","import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\n\nconst craSettingsOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['craSettings'],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst res = await BackendClient.getInstance().getCraSettings();\n\t\t\treturn res.json();\n\t\t},\n\t});\n};\n\nexport const useCraSettings = () => {\n\treturn useQuery(craSettingsOptions());\n};\n\nexport const useUploadCRATemplateMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\taccountKind,\n\t\t\tdata,\n\t\t}: {\n\t\t\taccountKind: BackendTypes.GraphNodeKind;\n\t\t\tdata: BackendTypes.CRACalculationTemplateUploadRequest;\n\t\t}) => {\n\t\t\treturn BackendClient.getInstance().uploadCraTemplate(accountKind, data);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries(craSettingsOptions());\n\t\t},\n\t});\n};\n\nexport const useDeleteCRATemplateMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({ accountKind }: { accountKind: BackendTypes.GraphNodeKind }) => {\n\t\t\treturn BackendClient.getInstance().deleteCraTemplate(accountKind);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries(craSettingsOptions());\n\t\t},\n\t});\n};\n\nexport const useSetCraAutoAssigneesGroupsMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async (\n\t\t\tmap: BackendTypes.AssigneesManagersRiskLevelMap\n\t\t): Promise => {\n\t\t\treturn BackendClient.getInstance().setAssigneesManagersRiskLevelMap(map);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: ['autoAssign'] });\n\t\t},\n\t});\n};\n\nconst craAutoAssigneesGroupsOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['autoAssign'],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst res = await BackendClient.getInstance().getAssigneesManagersRiskLevelMap();\n\t\t\treturn res.json();\n\t\t},\n\t});\n};\n\nexport const useCraAutoAssigneesGroups = () => {\n\treturn useQuery(craAutoAssigneesGroupsOptions());\n};\n","import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\n\nconst usersInvitationsQueryOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['invitations'],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst api = BackendClient.getInstance();\n\t\t\tconst res = await api.getUsersInvitations();\n\t\t\treturn res.json();\n\t\t},\n\t\tstaleTime: 0,\n\t});\n};\n\nexport const useUsersInvitations = () => {\n\treturn useQuery(usersInvitationsQueryOptions());\n};\n\nexport const useRevokeUserInvitationMutation = () => {\n\tconst queryClient = useQueryClient();\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\temail,\n\t\t}: {\n\t\t\temail: string;\n\t\t}): Promise => {\n\t\t\tawait BackendClient.getInstance().revokeUsersInvitation({ email });\n\t\t},\n\t\tonSuccess: () => {\n\t\t\treturn queryClient.invalidateQueries(usersInvitationsQueryOptions());\n\t\t},\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Failed to revoke invitation. Please try again');\n\t\t},\n\t});\n};\n\nconst usersQueryOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['users'],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst res = await BackendClient.getInstance().getUsers();\n\t\t\treturn res.json();\n\t\t},\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useUsers = () => {\n\treturn useQuery(usersQueryOptions());\n};\n\nexport const useUserInvitationMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async (\n\t\t\tinvites: BackendTypes.UserInvitation[]\n\t\t): Promise => {\n\t\t\tconst api = BackendClient.getInstance();\n\n\t\t\tawait Promise.all(invites.map((invite) => api.createUsersInvitation(invite)));\n\t\t},\n\t\tonSuccess: async () => {\n\t\t\tawait Promise.all([\n\t\t\t\tqueryClient.refetchQueries({ queryKey: ['invitations'] }),\n\t\t\t\tqueryClient.refetchQueries({ queryKey: ['overviewAccounts'] }),\n\t\t\t]);\n\t\t},\n\t});\n};\n\nexport const useUpdateUserMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tid,\n\t\t\tdata,\n\t\t}: {\n\t\t\tid: string;\n\t\t\tdata: BackendTypes.UserUpdate;\n\t\t}): Promise => {\n\t\t\tawait BackendClient.getInstance().updateUser(id, data);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\treturn queryClient.refetchQueries({ queryKey: ['users'] });\n\t\t},\n\t});\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tButton,\n\tcreateStyles,\n\tFlex,\n\tIcon,\n\tMenu,\n\tTFDataTable,\n\tTFNotifier,\n\tTFText,\n\tTooltip,\n} from '@tf/ui';\n\nimport { useSetCraAutoAssigneesGroupsMutation } from '@/core/api/craSettings';\nimport { useCurrentUser } from '@/core/hooks';\nimport { capabilities, capabilitiesIcons, getDisplayName } from '@/core/utils';\nimport { UserAvatar } from '@/components/shared/UserAvatar';\n\nconst useStyles = createStyles(({ colors }) => ({\n\ticon: {\n\t\tcolor: colors.gray[6],\n\t},\n\ttextContainer: {\n\t\tmaxWidth: '800px',\n\t\tcolor: '#475467',\n\t\tfontWeight: 400,\n\t\tfontSize: '14px',\n\t},\n\tlabelText: {\n\t\tfontWeight: 600,\n\t\tfontSize: '16px',\n\t\tmarginLeft: '8px',\n\t},\n\tcontainer: {\n\t\tmarginTop: '32px',\n\t},\n\tflexContainer: {\n\t\talignItems: 'center',\n\t\tmarginBottom: '12px',\n\t},\n\tmenuItemContainer: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\twidth: 240,\n\t\tpadding: '.15rem .5rem',\n\t},\n\tmenuItemText: {},\n}));\n\nconst getDeletedUserPlaceholder = (userId: string) => ({\n\temailAddresses: ['–'],\n\tuserInfo: {\n\t\tuserId,\n\t\tusername: '',\n\t\tfirstName: 'Deleted User',\n\t\tlastName: '',\n\t\thasImage: false,\n\t\timageUrl: '',\n\t\tlistRoleCapabilities: [],\n\t},\n});\n\ninterface Props {\n\triskLevelMap: BackendTypes.AssigneesManagersRiskLevelMap;\n\tlabel: string;\n\ticon: React.ReactElement;\n\triskLevel: BackendTypes.OverviewAccountRiskLevel;\n\tlistUsers: BackendTypes.UserInfoWithClerkData[];\n}\n\nexport const AutoAssignedTable: React.FC = ({\n\triskLevelMap,\n\tlistUsers,\n\tlabel,\n\ticon,\n\triskLevel,\n}) => {\n\tconst { classes } = useStyles();\n\tconst currentUser = useCurrentUser();\n\tconst userIdMap = listUsers.reduce>((acc, user) => {\n\t\tacc[user.userInfo.userId] = user;\n\t\treturn acc;\n\t}, {});\n\tconst usersIds = riskLevelMap[riskLevel] ?? [];\n\tconst usersWithUserInfo = usersIds.map(\n\t\t(userId) => userIdMap[userId] ?? getDeletedUserPlaceholder(userId)\n\t);\n\tconst selectedManagers = usersWithUserInfo.map((user) => user.userInfo.userId) ?? [];\n\tconst availableManagers = listUsers\n\t\t?.filter((u) => !selectedManagers.includes(u.userInfo.userId))\n\t\t.sort((userA, userB) => {\n\t\t\treturn getDisplayName(userA.userInfo).localeCompare(getDisplayName(userB.userInfo));\n\t\t});\n\n\tconst setCraAutoAssigneesGroupsMutation = useSetCraAutoAssigneesGroupsMutation();\n\tconst handleAddUser = async (id: string) => {\n\t\tawait setCraAutoAssigneesGroupsMutation.mutateAsync(\n\t\t\t{ ...riskLevelMap, [riskLevel]: [...(riskLevelMap[riskLevel] ?? []), id] },\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tTFNotifier.success('User added to risk level group ');\n\t\t\t\t},\n\t\t\t\tonError: () => {\n\t\t\t\t\tTFNotifier.error('Failed to add user');\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\tconst handleRemoveUser = async (id: string) => {\n\t\tawait setCraAutoAssigneesGroupsMutation.mutateAsync(\n\t\t\t{ ...riskLevelMap, [riskLevel]: (riskLevelMap[riskLevel] ?? []).filter((u) => u !== id) },\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tTFNotifier.success('User removed from risk level group ');\n\t\t\t\t},\n\t\t\t\tonError: () => {\n\t\t\t\t\tTFNotifier.error('Failed to remove user');\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{icon}\n\t\t\t\t{label}\n\t\t\t\n\t\t\t\n\t\t\t\tname={label}\n\t\t\t\tdata={usersWithUserInfo}\n\t\t\t\thideSearchbar\n\t\t\t\tdefs={[\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Name',\n\t\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\t\tsize: 150,\n\t\t\t\t\t\tsortingFn: (rowA, rowB) => {\n\t\t\t\t\t\t\tconst rowAName = getDisplayName({\n\t\t\t\t\t\t\t\tfirstName: rowA.original.userInfo.firstName,\n\t\t\t\t\t\t\t\tlastName: rowA.original.userInfo.lastName,\n\t\t\t\t\t\t\t\tusername: 'N/A',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst rowBName = getDisplayName({\n\t\t\t\t\t\t\t\tfirstName: rowB.original.userInfo.firstName,\n\t\t\t\t\t\t\t\tlastName: rowB.original.userInfo.lastName,\n\t\t\t\t\t\t\t\tusername: 'N/A',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn rowAName.localeCompare(rowBName);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInfoWithClerkData } }) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{getDisplayName({\n\t\t\t\t\t\t\t\t\t\tfirstName: row.original.userInfo.firstName,\n\t\t\t\t\t\t\t\t\t\tlastName: row.original.userInfo.lastName,\n\t\t\t\t\t\t\t\t\t\tusername: 'N/A',\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);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Email',\n\t\t\t\t\t\taccessorKey: 'email',\n\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInfoWithClerkData } }) => {\n\t\t\t\t\t\t\tconst { emailAddresses } = row.original;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{emailAddresses[0] ?? 'N/A'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Capabilities',\n\t\t\t\t\t\taccessorKey: 'capabilities',\n\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInfoWithClerkData } }) => {\n\t\t\t\t\t\t\tconst { listRoleCapabilities } = row.original.userInfo;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{listRoleCapabilities.map((cap) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{capabilitiesIcons[cap]}\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\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Action',\n\t\t\t\t\t\taccessorKey: 'action',\n\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\tenableSorting: false,\n\t\t\t\t\t\tenableResizing: false,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInfoWithClerkData } }) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t handleRemoveUser(row.original.userInfo.userId)}\n\t\t\t\t\t\t\t\t\tsx={{ borderColor: '#E2E8F0' }}\n\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tRemove\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t/>\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{availableManagers?.length ? (\n\t\t\t\t\t\tavailableManagers.map((u) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t handleAddUser(u.userInfo.userId)}>\n\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\t\t{getDisplayName(u.userInfo)}\n\t\t\t\t\t\t\t\t\t\t\t{currentUser.userId === u.userInfo.userId && ' (You) '}\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\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNo users available\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);\n};\n","import React from 'react';\n\nimport { Alert, Box, createStyles, Icon, TFLoadingOverlay } from '@tf/ui';\n\nimport { useCraAutoAssigneesGroups } from '@/core/api/craSettings';\nimport { useUsers } from '@/core/api/users';\nimport { AutoAssignedTable } from '@/components/cra-settings/AutoAssignedTable';\n\nconst useStyles = createStyles(() => ({\n\talert: {\n\t\tbackgroundColor: '#F1F3F5',\n\t\tborderColor: '#F1F3F5',\n\t\tborderRadius: '8px',\n\t\tcolor: '#1A1B1E',\n\t},\n\ttextContainer: {\n\t\tmaxWidth: '800px',\n\t\tcolor: '#475467',\n\t\tfontWeight: 400,\n\t\tfontSize: '14px',\n\t},\n}));\n\nexport const AutoAssignedSettings = () => {\n\tconst { classes } = useStyles();\n\n\tconst craAutoAssigneesGroups = useCraAutoAssigneesGroups();\n\tconst usersQuery = useUsers();\n\n\tif (craAutoAssigneesGroups.error) {\n\t\treturn
Error, please try again
;\n\t}\n\n\tconst listUsers = usersQuery.data ?? [];\n\n\treturn (\n\t\t<>\n\t\t\t}\n\t\t\t\tclassName={classes.alert}\n\t\t\t\tfw=\"600\"\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\tYou can specify which user(s) should be automatically assigned to an application based on the\n\t\t\t\t\trisk level. If you can’t find the right person, please make sure the’ve been added to your\n\t\t\t\t\tWorkspace.\n\t\t\t\t\n\t\t\t\n\n\t\t\t{craAutoAssigneesGroups.isPending || usersQuery.isPending ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t}\n\t\t\t\t\t\triskLevel=\"LOW\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t}\n\t\t\t\t\t\triskLevel=\"MEDIUM\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t}\n\t\t\t\t\t\triskLevel=\"HIGH\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t}\n\t\t\t\t\t\triskLevel=\"VERY_HIGH\"\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { ActionIcon, Icon, TFNotifier } from '@tf/ui';\n\nimport { useDeleteCRATemplateMutation } from '@/core/api/craSettings';\n\nexport const DeleteTemplateButton: React.FC<{ accountKind: string }> = ({ accountKind }) => {\n\tconst deleteCRATemplateMutation = useDeleteCRATemplateMutation();\n\n\treturn (\n\t\t {\n\t\t\t\tdeleteCRATemplateMutation.mutate(\n\t\t\t\t\t{ accountKind },\n\t\t\t\t\t{\n\t\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\t\tTFNotifier.success('Template deleted');\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: () => {\n\t\t\t\t\t\t\tTFNotifier.error('Template deletion failed');\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\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Anchor } from '@tf/ui';\n\nimport { useDownloadFileMutation } from '@/core/api/files';\n\nexport const DownloadTemplateLink: React.FC<{ file?: BackendTypes.FieldFile }> = ({ file }) => {\n\tconst downloadFileMutation = useDownloadFileMutation();\n\n\tif (!file) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t {\n\t\t\t\tdownloadFileMutation.mutate({ file });\n\t\t\t}}\n\t\t>\n\t\t\t{file.filename}\n\t\t\n\t);\n};\n","import React, { useRef } from 'react';\n\nimport { Button, FileButton, TFNotifier } from '@tf/ui';\n\nimport { useUploadCRATemplateMutation } from '@/core/api/craSettings';\n\nexport const UploadTemplateButton: React.FC<{ accountKind: string }> = ({ accountKind }) => {\n\tconst resetFileRef = useRef<() => void>(null);\n\n\tconst uploadCRATemplateMutation = useUploadCRATemplateMutation();\n\n\treturn (\n\t\t {\n\t\t\t\tif (file !== null) {\n\t\t\t\t\tuploadCRATemplateMutation.mutate(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taccountKind,\n\t\t\t\t\t\t\tdata: { filename: file },\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\t\t\tTFNotifier.success('Template uploaded');\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonError: () => {\n\t\t\t\t\t\t\t\tTFNotifier.error('Template upload failed');\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonSettled: () => {\n\t\t\t\t\t\t\t\tresetFileRef.current?.();\n\t\t\t\t\t\t\t},\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\t\t{(props) => (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\n\nimport { Box, TFDataTable, TFLoadingOverlay } from '@tf/ui';\nimport { fmt } from '@tf/utils';\n\nimport { useCraSettings } from '@/core/api/craSettings';\nimport { appStore } from '@/core/stores';\n\nimport { DeleteTemplateButton } from './DeleteTemplateButton';\nimport { DownloadTemplateLink } from './DownloadTemplateLink';\nimport { UploadTemplateButton } from './UploadTemplateButton';\n\nexport const CraSettingsTable = () => {\n\tconst { data, isPending, error } = useCraSettings();\n\tconst defs = useSelector(() => appStore.defs.get());\n\tconst accountOptions = [...defs.options['AccountKind']].sort((a, b) => a.value.localeCompare(b.value));\n\n\tconst craTemplates = data\n\t\t? accountOptions.map((accountOption) => {\n\t\t\t\treturn {\n\t\t\t\t\taccountKind: accountOption.value,\n\t\t\t\t\tlabel: accountOption.label,\n\t\t\t\t\tfile: data[accountOption.value],\n\t\t\t\t};\n\t\t })\n\t\t: [];\n\n\tif (isPending) {\n\t\treturn ;\n\t}\n\n\tif (error) {\n\t\treturn
Error, please try again
;\n\t}\n\n\treturn (\n\t\t {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Date uploaded',\n\t\t\t\t\tid: 'uploadDate',\n\t\t\t\t\taccessorFn: (template) => {\n\t\t\t\t\t\treturn template.file?.uploadDate\n\t\t\t\t\t\t\t? fmt.toDate(template.file?.uploadDate, { preset: 'full_date' })\n\t\t\t\t\t\t\t: '–';\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Action',\n\t\t\t\t\tid: 'action',\n\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{row.original.file ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\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\tname=\"cra-templates-list\"\n\t\t/>\n\t);\n};\n","import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\n\nimport { updateMonitoringSearchCommentMutation } from '@/core/mutations';\nimport { monitoringSearchDetailsQuery, monitoringSearchesQuery } from '@/core/queries';\n\nconst monitoringQueryOptions = (params: BackendTypes.MonitoringSearchesParams) => {\n\treturn queryOptions({\n\t\tqueryKey: ['monitoring', params],\n\t\tqueryFn: () => monitoringSearchesQuery(params),\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useMonitoringQuery = (params: BackendTypes.MonitoringSearchesParams) => {\n\treturn useQuery(monitoringQueryOptions(params));\n};\n\nconst monitoringMatchesQueryOptions = (params: BackendTypes.MonitoringSearchDetailsParams) => {\n\treturn queryOptions({\n\t\tqueryKey: ['monitoring-matches', params],\n\t\tqueryFn: () => monitoringSearchDetailsQuery(params),\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useMonitoringMatchesQuery = (params: BackendTypes.MonitoringSearchDetailsParams) => {\n\treturn useQuery(monitoringMatchesQueryOptions(params));\n};\n\nconst monitoringMatchesCommentsQueryOptions = (graphNodeId: number) => {\n\treturn queryOptions({\n\t\tqueryKey: ['monitoring-matches-comments', graphNodeId],\n\t\tqueryFn: () => monitoringSearchDetailsQuery({ graphNodeId, page: 1, limit: 10 }),\n\t\tstaleTime: 20 * 1000,\n\t\tselect: (data) => data?.comments || [],\n\t});\n};\n\nexport const useMonitoringMatchesCommentsQuery = (graphNodeId: number) => {\n\treturn useQuery(monitoringMatchesCommentsQueryOptions(graphNodeId));\n};\n\nexport const useUpdateMonitoringCommentMutation = ({\n\tentityId,\n\tmatchId,\n}: BackendTypes.MonitoringSearchMatchCommentCreateData) => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationKey: ['update-comment-match', entityId, matchId],\n\t\tmutationFn: (comment: string) => {\n\t\t\treturn updateMonitoringSearchCommentMutation({\n\t\t\t\tgraphNodeId: entityId,\n\t\t\t\tmatchId,\n\t\t\t\tcomment,\n\t\t\t});\n\t\t},\n\t\tonSuccess: () => {\n\t\t\treturn queryClient.invalidateQueries(monitoringMatchesCommentsQueryOptions(entityId));\n\t\t},\n\t});\n};\n\nexport const useAcknowledgeMonitoringSearchMutation = (graphNodeId: BackendTypes.GraphId) => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationKey: ['acknowledge-monitoring-search', graphNodeId],\n\t\tmutationFn: () => BackendClient.getInstance().monitoringSearchAcknowledge(graphNodeId),\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: ['monitoring'] });\n\t\t\tqueryClient.invalidateQueries({ queryKey: ['searchDetails'] });\n\t\t},\n\t});\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\n\nimport { Button } from '@tf/ui';\n\nimport { useAcknowledgeMonitoringSearchMutation } from '@/core/api/monitoring';\nimport { monitoringStore } from '@/core/stores';\n\nexport const AcknowledgeChangesButton = ({ graphId }: { graphId: number }) => {\n\tconst monitoring = useSelector(() => monitoringStore.get());\n\n\tconst count = monitoring?.searchInfo?.unacknowledgedChangesCount ?? 0;\n\tconst mutation = useAcknowledgeMonitoringSearchMutation(graphId);\n\treturn (\n\t\t\n\t);\n};\n","export const MonitoringCard: React.FC = ({ children }) => {\n\treturn <>{children};\n};\n","import React, { useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Link, useParams } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tcreateStyles,\n\tTFDataTable,\n\tTFText,\n\tUnstyledButton,\n\tuseDebouncedValue,\n\tuseLocalStorage,\n} from '@tf/ui';\nimport { fmt, S } from '@tf/utils';\n\nimport { useEntityAssociations } from '@/core/api/entities';\nimport { useOverviewData } from '@/core/api/overview';\nimport { appStore } from '@/core/stores';\nimport { getDisplayName } from '@/core/utils';\nimport {\n\tAssignedManagersView,\n\tHiddenAccountsNotice,\n\tPriorityView,\n\tReviewState,\n} from '@/components/shared';\nimport { getAccountsFilters } from '@/components/utils';\n\nconst useStyles = createStyles(({ colors }) => ({\n\taccountName: {\n\t\tfontSize: 13,\n\t\theight: 30,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.gray[9],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\nconst filtersNamesMap: Record = {\n\tkind: 'accountType',\n\t'values.accountStatus': 'accountStatus',\n\tverificationStatus: 'verificationStatus',\n\taccountStatus: 'accountStatus',\n\timportance: 'priority',\n};\n\nconst sortingNamesMap: Record = {\n\tname: 'ACCOUNT_NAME',\n\tkind: 'ACCOUNT_TYPE',\n\t'values.accountStatus': 'ACCOUNT_STATUS',\n\tverificationStatus: 'VERIFICATION_STATUS',\n\taccountStatus: 'ACCOUNT_STATUS',\n\timportance: 'PRIORITY',\n\t'values.nextKycReviewDate': 'KYC_VIEW',\n};\n\nexport const MonitoringCardAssociations = () => {\n\tconst { classes } = useStyles();\n\tconst params = useParams<{ graphId: string }>();\n\tconst entityId = parseInt(params.graphId as string, 10);\n\n\tconst [pagination, setPagination] = useState({ pageSize: 10, pageIndex: 0 });\n\n\tconst [searchValue, setSearchValue] = useLocalStorage({\n\t\tdefaultValue: '',\n\t\tkey: 'monitoring-associations-table-search',\n\t\tgetInitialValueInEffect: false,\n\t});\n\tconst [debouncedSearch] = useDebouncedValue(searchValue, 500);\n\n\tconst [filtersState, setFiltersState] = useLocalStorage<\n\t\t{\n\t\t\tid: string;\n\t\t\tvalue: unknown;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [],\n\t\tkey: 'monitoring-associations-table-filters',\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst [sortingState, setSortingState] = useLocalStorage<\n\t\t{\n\t\t\tdesc: boolean;\n\t\t\tid: string;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [{ desc: true, id: 'ACCOUNT_NAME' }],\n\t\tkey: 'monitoring-associations-table-sorting',\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst sortingParams =\n\t\tsortingState.length > 0\n\t\t\t? {\n\t\t\t\t\tsortBy: sortingNamesMap[sortingState[0].id] as BackendTypes.OverviewSortBy | undefined,\n\t\t\t\t\tsortOrder: sortingState[0].desc ? 'DESC' : ('ASC' as BackendTypes.OverviewSortOrder),\n\t\t\t }\n\t\t\t: undefined;\n\n\tconst filteringParams = filtersState.reduce>((acc, curr) => {\n\t\tacc[filtersNamesMap[curr.id]] = curr.value;\n\t\treturn acc;\n\t}, {});\n\n\tconst { data, isPending } = useEntityAssociations({\n\t\tentityId,\n\t\tpage: pagination.pageIndex + 1,\n\t\tlimit: pagination.pageSize,\n\t\tquery: debouncedSearch,\n\t\t...filteringParams,\n\t\t...sortingParams,\n\t});\n\n\tconst { data: overviewData } = useOverviewData();\n\tconst listUsers = overviewData?.listUsers ?? [];\n\n\tconst hasArchivedStatusMessage = Boolean(\n\t\t!filtersState.find((f) => f.value === 'ARCHIVED') && !!debouncedSearch\n\t);\n\n\tconst accountKinds = useSelector(() => appStore.defs.options['AccountKind'].get());\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\tname=\"associations-list\"\n\t\t\t\tisLoading={isPending}\n\t\t\t\tdata={data?.accounts.items ?? []}\n\t\t\t\tnoDataText={\n\t\t\t\t\thasArchivedStatusMessage ? (\n\t\t\t\t\t\t setFiltersState([{ id: 'values.accountStatus', value: 'ARCHIVED' }])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\tserverSorting={{\n\t\t\t\t\tonSortingChange: setSortingState,\n\t\t\t\t\tstate: sortingState,\n\t\t\t\t}}\n\t\t\t\tserverSearch={{\n\t\t\t\t\tstate: searchValue,\n\t\t\t\t\tonSearchChange: setSearchValue,\n\t\t\t\t}}\n\t\t\t\tserverFiltering={{\n\t\t\t\t\tonFiltersChange: setFiltersState,\n\t\t\t\t\tstate: filtersState,\n\t\t\t\t}}\n\t\t\t\tserverPagination={\n\t\t\t\t\tdata\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...pagination,\n\t\t\t\t\t\t\t\trowCount: data.accounts.count,\n\t\t\t\t\t\t\t\tonPaginationChange: setPagination,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdefs={[\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account name',\n\t\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst { nodeId, name } = row.original;\n\t\t\t\t\t\t\treturn (\n\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\t{name || 'N/A'}\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);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account type',\n\t\t\t\t\t\taccessorKey: 'kind',\n\t\t\t\t\t\tCell: ({ cell }) => {\n\t\t\t\t\t\t\tconst nextKind = accountKinds?.find((a: { value: string }) => a.value === cell.getValue());\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{nextKind?.label || 'Not defined'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account status',\n\t\t\t\t\t\taccessorKey: 'accountStatus',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst status = row.original.values?.accountStatus;\n\t\t\t\t\t\t\treturn status ? (\n\t\t\t\t\t\t\t\t{S.prettify(status)}\n\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\tNot defined\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Verification status',\n\t\t\t\t\t\taccessorKey: 'verificationStatus',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Assigned managers',\n\t\t\t\t\t\taccessorKey: 'assignedManagers',\n\t\t\t\t\t\tenableSorting: false,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Priority',\n\t\t\t\t\t\taccessorKey: 'importance',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Next KYC review',\n\t\t\t\t\t\taccessorKey: 'values.nextKycReviewDate',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst date: string | undefined = row.original.values.nextKycReviewDate;\n\t\t\t\t\t\t\treturn date ? (\n\t\t\t\t\t\t\t\t{fmt.toDate(date, { preset: 'full_date' })}\n\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\tNot defined\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t\tavailableFilters={getAccountsFilters(listUsers, accountKinds)}\n\t\t\t/>\n\t\t\t\n\t\t\t\t{hasArchivedStatusMessage && Boolean(data?.accounts.items.length) && (\n\t\t\t\t\t setFiltersState([{ id: 'values.accountStatus', value: 'ARCHIVED' }])}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\n\nimport {\n\tuseMonitoringMatchesCommentsQuery,\n\tuseUpdateMonitoringCommentMutation,\n} from '@/core/api/monitoring';\nimport { MonitoringCardCommentsList } from '@/components/monitoring';\n\ninterface Props {\n\tentityId: number;\n\tmatchId: string;\n}\n\nexport const MonitoringCardComments: React.FC = ({ entityId, matchId }: Props) => {\n\tconst { data: storedComments } = useMonitoringMatchesCommentsQuery(entityId);\n\tconst [comments, setComments] = useState(null);\n\n\tconst updateMonitoringCommentMutation = useUpdateMonitoringCommentMutation({ entityId, matchId });\n\n\tconst sendComment = async (comment: string) => {\n\t\tawait updateMonitoringCommentMutation.mutateAsync(comment, {\n\t\t\tonError: (error) => {\n\t\t\t\tTFNotifier.error('Could not save comment. Please try again later.');\n\t\t\t\tconsole.error(error);\n\t\t\t},\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!storedComments?.length) return;\n\t\tsetComments(storedComments.filter((item: any) => item.matchId === matchId) || null);\n\t}, [matchId, storedComments]);\n\n\treturn ;\n};\n","import React, { useEffect, useState } from 'react';\n\nimport type { UseQueryResult } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Button, Modal, useDisclosure } from '@tf/ui';\n\nimport { useMonitoringMatchesCommentsQuery } from '@/core/api/monitoring';\nimport { MonitoringCardComments } from '@/components/monitoring';\n\ninterface Props {\n\tentityId: number;\n\tmatchId: string;\n\tmonitoringMatchesQuery: UseQueryResult;\n}\n\nexport const MonitoringCardCommentsButton: React.FC = ({ entityId, matchId }: Props) => {\n\tconst { data: storedComments } = useMonitoringMatchesCommentsQuery(entityId);\n\tconst { isOpen, toggle } = useDisclosure();\n\n\tconst [commentsCount, setCommentsCount] = useState(null);\n\n\tconst buttonText = `Open ${commentsCount ? '(' + commentsCount + ')' : ''}`;\n\n\tuseEffect(() => {\n\t\tif (!storedComments?.length) return;\n\t\tsetCommentsCount(storedComments.filter((item: any) => item.matchId === matchId).length || null);\n\t}, [matchId, storedComments]);\n\n\tif (!isOpen) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\n\nimport { CommentsList } from '@/components/shared';\n\ninterface Props {\n\tsendComment: (comment: string) => void;\n\tcomments: BackendTypes.MonitoringComment[] | null;\n}\n\nexport const MonitoringCardCommentsList: React.FC = ({ sendComment, comments }) => {\n\tconst [isSubmitting, setIsSubmitting] = useState(false);\n\n\tconst handleSubmit = async (newComment: string) => {\n\t\tsetIsSubmitting(true);\n\t\tawait sendComment(newComment);\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsSubmitting(false);\n\t}, [comments]);\n\n\treturn (\n\t\t ({\n\t\t\t\t...item,\n\t\t\t\tdata: { text: item.text },\n\t\t\t}))}\n\t\t\tsendComment={handleSubmit}\n\t\t\tisSubmitting={isSubmitting}\n\t\t/>\n\t);\n};\n","import React from 'react';\n\nimport type { MonitoringHit } from '@tf/shared';\nimport { getResultHit, JobSearchResultCard } from '@tf/shared';\n\ninterface Props {\n\thit: MonitoringHit | null;\n}\n\nexport const MonitoringMatchCard: React.FC = ({ hit }) => {\n\tif (!hit) {\n\t\treturn null;\n\t}\n\n\treturn ;\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useParams, useSearchParams } from 'react-router-dom';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Group } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { useSelectedMonitoringEntity } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport { AcknowledgeChangesButton, MonitoringReportButton } from '@/components/monitoring';\nimport { MonitoringMatchCard } from '@/components/monitoring/MonitoringCard/MonitoringCardMatches';\n\ninterface Props {\n\thit: any | null;\n}\n\nexport const MonitoringMatchWrapper: React.FC = ({ hit }) => {\n\tconst [searchParams] = useSearchParams();\n\tconst params = useParams<{ graphId: string }>();\n\tconst graphId = parseInt(params.graphId as string, 10);\n\tconst entityData = useSelectedMonitoringEntity();\n\tconst tenant = useSelector(() => appStore.tenant?.get());\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\treturn (\n\t\t<>\n\t\t\t ({\n\t\t\t\t\tmarginBottom: 0,\n\t\t\t\t})}\n\t\t\t\ttitle={hit?.key_information?.name || 'N/A'}\n\t\t\t\tbreadcrumbs={[\n\t\t\t\t\t{ href: '/monitoring', title: 'Monitoring' },\n\t\t\t\t\t{ href: `/monitoring/${graphId}?${searchParams.toString()}`, title: entityData.name || 'N/A' },\n\t\t\t\t\t{\n\t\t\t\t\t\thref: `/monitoring/${graphId}/matches/${hit?.id}?${searchParams.toString()}`,\n\t\t\t\t\t\ttitle: hit?.key_information?.name || 'N/A',\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t\ttoolbar={\n\t\t\t\t\t\n\t\t\t\t\t\t\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\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\nimport type { FormSegment } from '@tf/utils';\n\nimport { AppFormBuilder } from '@/components/shared';\n\ninterface Props {\n\tdata: BackendTypes.SegmentsReadData;\n}\n\nexport const MonitoringCardForm: React.FC = ({ data }) => {\n\tconst initialValues = data.reduce((acc, { container }) => {\n\t\tconst { info, segment } = container;\n\t\treturn {\n\t\t\t...acc,\n\t\t\t[info.SegmentIdentity.segmentKind]: segment,\n\t\t};\n\t}, {} as Record);\n\n\tconst segments: FormSegment[] = data.map(({ container: { info } }) => {\n\t\treturn { accessMode: 'VIEW', ...info.SegmentIdentity, label: '' } satisfies FormSegment;\n\t});\n\n\treturn (\n\t\t Promise.resolve()}\n\t\t\tsegmentPreRenderer={() => null}\n\t\t\tsubmitButtonRenderer={() => null}\n\t\t\tstyles={{\n\t\t\t\tcontent: { ':not:first-of-type\".': { marginTop: '1rem' } },\n\t\t\t\tsegment: () => ({\n\t\t\t\t\tpadding: '.75rem 1rem 1rem',\n\t\t\t\t}),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, Grid, TFCard } from '@tf/ui';\nimport type { FormSegment } from '@tf/utils';\n\nimport { useSegmentsQuery } from '@/core/api/segments';\nimport { useSelectedMonitoringEntity } from '@/core/hooks';\nimport { MonitoringCardForm, MonitoringCardMatchesTable } from '@/components/monitoring';\nimport { FormLoader } from '@/components/shared';\n\nconst SEGMENTS = [\n\t'INDIVIDUAL_ENTITY__DETAILS',\n\t'INDIVIDUAL_ENTITY__ADDRESSES',\n\t'CORPORATE_ENTITY__DETAILS',\n\t'COMMON__BACKGROUND_CHECK',\n];\n\nexport const MonitoringCardMatches = () => {\n\tconst entityData = useSelectedMonitoringEntity();\n\tconst formSegments: FormSegment[] = entityData?.listSegments\n\t\t.filter((s: BackendTypes.SegmentInfo) => {\n\t\t\tconst segmentKind = s.SegmentIdentity.segmentKind;\n\t\t\treturn SEGMENTS.includes(segmentKind);\n\t\t})\n\t\t.map((s: BackendTypes.SegmentInfo) => ({ ...s.SegmentIdentity, accessMode: 'VIEW' }));\n\tconst segmentsQuery = useSegmentsQuery(formSegments);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{segmentsQuery.status === 'success' ? (\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\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\n\nimport { useNavigate, useParams, useSearchParams } from 'react-router-dom';\n\nimport {\n\tBox,\n\tcreateStyles,\n\tTFDataTable,\n\tTFText,\n\tUnstyledButton,\n\tuseDebouncedValue,\n\tuseLocalStorage,\n} from '@tf/ui';\nimport { fmt, S } from '@tf/utils';\n\nimport { useMonitoringMatchesQuery } from '@/core/api/monitoring';\nimport { useSelectedMonitoringEntity } from '@/core/hooks';\nimport { MonitoringCardCommentsButton, MonitoringCardMatchStatus } from '@/components/monitoring';\n\nconst useStyles = createStyles(({ colors }) => ({\n\tfullName: {\n\t\tfontSize: 13,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer',\n\t\tcolor: colors.gray[9],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\ntype Match = {\n\trawResponse: {\n\t\thit: {\n\t\t\tcreated_utc: string;\n\t\t\tid: string;\n\t\t\tkey_information: {\n\t\t\t\tentity_type: string;\n\t\t\t\tmatch_status: string;\n\t\t\t\tname: string;\n\t\t\t\tcountry_names: string;\n\t\t\t\tdate_of_birth: string;\n\t\t\t};\n\t\t};\n\t};\n};\n\nexport const MonitoringCardMatchesTable = () => {\n\tconst { classes } = useStyles();\n\tconst navigate = useNavigate();\n\tconst [searchParams] = useSearchParams();\n\tconst params = useParams<{ graphId: string }>();\n\tconst { entityKind } = useSelectedMonitoringEntity();\n\tconst entityId = parseInt(params.graphId as string, 10);\n\tconst isIndividual = entityKind === 'INDIVIDUAL_ENTITY';\n\n\tconst [pagination, setPagination] = useState({ pageSize: 10, pageIndex: 0 });\n\n\tconst [searchValue, setSearchValue] = useLocalStorage({\n\t\tdefaultValue: '',\n\t\tkey: 'monitoring-matches-table-search',\n\t\tgetInitialValueInEffect: false,\n\t});\n\tconst [debouncedSearch] = useDebouncedValue(searchValue, 500);\n\n\tconst monitoringMatchesQuery = useMonitoringMatchesQuery({\n\t\tlimit: pagination.pageSize,\n\t\tpage: pagination.pageIndex + 1,\n\t\tgraphNodeId: entityId,\n\t\tquery: debouncedSearch,\n\t});\n\n\tconst matches = (monitoringMatchesQuery.data?.matches as Match[]) ?? [];\n\n\tconst profiles = matches\n\t\t?.map((item) => item.rawResponse.hit)\n\t\t?.map((item) => {\n\t\t\treturn {\n\t\t\t\tid: item.id,\n\t\t\t\tdateOfIncorporation: item?.created_utc,\n\t\t\t\tmatchStatus: item?.key_information?.match_status,\n\t\t\t\tentityType: item?.key_information?.entity_type,\n\t\t\t\tfullName: item?.key_information?.name,\n\t\t\t\tcountries: item?.key_information?.country_names,\n\t\t\t\tdateOfBirth: item?.key_information?.date_of_birth,\n\t\t\t};\n\t\t});\n\n\tconst handleRowClick = (id: string) => {\n\t\tnavigate({\n\t\t\tpathname: `matches/${id}`,\n\t\t\tsearch: `?${searchParams.toString()}`,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\t\t\tconst { fullName, id } = row.original;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t handleRowClick(id)}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fullName || 'N/A'}\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);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Entity type',\n\t\t\t\t\t\taccessorKey: 'entityType',\n\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\tconst { entityType } = row.original;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{S.prettify(entityType) || 'N/A'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Countries',\n\t\t\t\t\t\taccessorKey: 'countries',\n\t\t\t\t\t\tsize: 150,\n\t\t\t\t\t\tenableSorting: true,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\tconst { countries } = row.original;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{countries || 'N/A'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Comment',\n\t\t\t\t\t\taccessorKey: 'id',\n\t\t\t\t\t\tsize: 150,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\tconst { id } = row.original;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: isIndividual ? 'Date of birth' : 'Date of incorporation',\n\t\t\t\t\t\taccessorKey: 'dateOfBirth',\n\t\t\t\t\t\tsize: 130,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\tconst { dateOfBirth, dateOfIncorporation } = row.original;\n\t\t\t\t\t\t\tconst date = isIndividual ? dateOfBirth : dateOfIncorporation;\n\t\t\t\t\t\t\tif (date) {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fmt.toDate(date, { preset: 'full_date' })}\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}\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tN/A\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Match status',\n\t\t\t\t\t\taccessorKey: 'matchStatus',\n\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\tconst { matchStatus, id } = row.original;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\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);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { useMutation } from '@tanstack/react-query';\nimport type { FC } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Modal, Select, TFNotifier } from '@tf/ui';\n\nimport { monitoringSearchMatchStatusUpdate } from '@/core/mutations';\nimport { MATCH_STATUSES } from '@/core/types';\nimport { MonitoringCardComments } from '@/components/monitoring';\n\ninterface Props {\n\tinitialMatchStatus: string;\n\tentityId: number;\n\tmatchId: string;\n}\n\nexport const MonitoringCardMatchStatus: FC = ({ initialMatchStatus, entityId, matchId }) => {\n\tconst [currentStatus, setCurrentStatus] = useState(null);\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst toggleModal = () => setIsOpen(!isOpen);\n\n\tconst updateMatchStatus = useMutation({\n\t\tmutationKey: ['update-status-match', entityId, matchId],\n\t\tmutationFn: ({ matchStatus }: any) => {\n\t\t\treturn monitoringSearchMatchStatusUpdate({\n\t\t\t\tgraphNodeId: entityId,\n\t\t\t\tdata: {\n\t\t\t\t\tmatchIds: [matchId],\n\t\t\t\t\tmatchStatus,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t});\n\n\tconst updateStatus = async (value: BackendTypes.MonitoringSearchMatchStatus) => {\n\t\ttry {\n\t\t\tawait updateMatchStatus.mutateAsync({\n\t\t\t\tmatchStatus: value,\n\t\t\t});\n\t\t\tsetCurrentStatus(value);\n\t\t\tsetIsOpen(true);\n\t\t} catch (e) {\n\t\t\tTFNotifier.error('Could not update match status');\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetCurrentStatus(initialMatchStatus);\n\t}, [initialMatchStatus]);\n\n\tif (!isOpen) {\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\tupdateStatus(value as BackendTypes.MonitoringSearchMatchStatus);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t {\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\tupdateStatus(value as BackendTypes.MonitoringSearchMatchStatus);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useNavigate, useParams } from 'react-router-dom';\n\nimport { Box, createStyles, Tabs } from '@tf/ui';\n\nconst useStyles = createStyles(({ colors, breakpoints }) => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmaxWidth: breakpoints.xl,\n\t\tmargin: '0 auto',\n\t\tcolor: colors.gray[7],\n\t\tborderWidth: '0 0 1px 0',\n\t\tborderStyle: 'solid',\n\t\tborderColor: colors.gray[2],\n\t},\n}));\n\ntype PathParams = {\n\tgraphId: string;\n};\n\nconst ROUTES = [\n\t{\n\t\tvalue: '/',\n\t\tlabel: 'Monitoring',\n\t},\n\t{\n\t\tvalue: '/associations',\n\t\tlabel: 'Associations',\n\t},\n] as const;\n\nexport const MonitoringCardTabs = () => {\n\tconst { classes } = useStyles();\n\n\tconst params = useParams();\n\tconst graphId = parseInt(params.graphId as string, 10);\n\tconst navigate = useNavigate();\n\n\tconst path = `/${location.pathname.split('/').slice(3, 4).join('/')}`;\n\n\treturn (\n\t\t\n\t\t\t ({\n\t\t\t\t\troot: { flexGrow: 1 },\n\t\t\t\t\ttab: {\n\t\t\t\t\t\tpadding: '.65rem 1rem',\n\t\t\t\t\t\tborderBottomWidth: 1.5,\n\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\t\"&[data-active='true']\": {\n\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\t\tbackgroundColor: colors.brand[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ttabsList: { borderBottomWidth: 0 },\n\t\t\t\t})}\n\t\t\t\tonChange={(value) => navigate(`/monitoring/${graphId}${value}`)}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{ROUTES.map(({ value, label }) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{label}\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);\n};\n","import { useSelector } from '@datagrid/state';\nimport { useParams } from 'react-router-dom';\n\nimport { BackendClient } from '@tf/api';\nimport { Button, Icon, TFNotifier } from '@tf/ui';\nimport { saveFile } from '@tf/utils';\n\nimport { monitoringStore } from '@/core/stores';\n\nexport const MonitoringReportButton = () => {\n\tconst entity = useSelector(() => monitoringStore.selected.get());\n\tconst params = useParams<{ graphId: string }>();\n\tconst graphId = parseInt(params.graphId as string, 10);\n\n\tconst getPdf = async () => {\n\t\ttry {\n\t\t\tconst res = await BackendClient.getInstance().monitoringSearchDetailsPdf(graphId);\n\n\t\t\tif (!res.ok) {\n\t\t\t\tTFNotifier.error('Cannot download certificate, please try again later');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blob = await new Response(res.body).arrayBuffer();\n\t\t\tsaveFile(blob, `${entity?.name || 'monitoring'}.pdf`);\n\t\t} catch (e) {\n\t\t\tTFNotifier.error('Cannot download certificate, please try again later');\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport { Link } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tcreateStyles,\n\tIcon,\n\tTFDataTable,\n\tTFText,\n\tTooltip,\n\tUnstyledButton,\n\tuseDebouncedValue,\n\tuseLocalStorage,\n} from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { useMonitoringQuery } from '@/core/api/monitoring';\n\nconst useStyles = createStyles(({ colors }) => ({\n\taccountName: {\n\t\tfontSize: 13,\n\t\theight: 30,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.brand[6],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\nconst sortingNamesMap: Record = {\n\tentityKind: 'ENTITY_TYPE',\n\ttotalHits: 'TOTAL_HITS',\n\ttotalMatches: 'TOTAL_MATCHES',\n\tmatchStatus: 'STATUS',\n};\n\nexport const MonitoringTable = () => {\n\tconst { classes } = useStyles();\n\n\tconst [searchValue, setSearchValue] = useLocalStorage({\n\t\tdefaultValue: '',\n\t\tkey: 'monitoring-table-search',\n\t\tgetInitialValueInEffect: false,\n\t});\n\tconst [debouncedSearch] = useDebouncedValue(searchValue, 500);\n\n\tconst [pagination, setPagination] = useState({ pageSize: 10, pageIndex: 0 });\n\n\tconst [sortingState, setSortingState] = useLocalStorage<\n\t\t{\n\t\t\tdesc: boolean;\n\t\t\tid: string;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [{ desc: true, id: 'ENTITY_TYPE' }],\n\t\tkey: `monitoring-table-sorting`,\n\t\tgetInitialValueInEffect: false,\n\t});\n\tconst sortingParams =\n\t\tsortingState.length > 0\n\t\t\t? {\n\t\t\t\t\tsortBy: sortingNamesMap[sortingState[0].id] as BackendTypes.MonitoringSortBy | undefined,\n\t\t\t\t\tsortOrder: sortingState[0].desc ? 'DESC' : ('ASC' as BackendTypes.MonitoringSortOrder),\n\t\t\t }\n\t\t\t: undefined;\n\n\tconst { data: monitoringList, isPending } = useMonitoringQuery({\n\t\tlimit: pagination.pageSize,\n\t\tpage: pagination.pageIndex + 1,\n\t\tquery: debouncedSearch,\n\t\t...sortingParams,\n\t});\n\n\treturn (\n\t\t\n\t\t\tname=\"monitoring-table\"\n\t\t\tisLoading={isPending}\n\t\t\tserverPagination={\n\t\t\t\tmonitoringList\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...pagination,\n\t\t\t\t\t\t\trowCount: monitoringList.count,\n\t\t\t\t\t\t\tonPaginationChange: setPagination,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tserverSearch={{\n\t\t\t\tstate: searchValue,\n\t\t\t\tonSearchChange: setSearchValue,\n\t\t\t}}\n\t\t\tserverSorting={{\n\t\t\t\tonSortingChange: setSortingState,\n\t\t\t\tstate: sortingState,\n\t\t\t}}\n\t\t\tdata={monitoringList?.entities ?? []}\n\t\t\tdefs={[\n\t\t\t\t{\n\t\t\t\t\theader: 'Name',\n\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\tsize: 400,\n\t\t\t\t\tenableSorting: false,\n\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\tconst { graphNodeId, name } = row.original;\n\t\t\t\t\t\treturn (\n\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{name || 'N/A'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Entity type',\n\t\t\t\t\taccessorKey: 'entityKind',\n\t\t\t\t\tsize: 200,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.MonitoringSearch } }) => {\n\t\t\t\t\t\tconst { entityKind } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{S.prettify(entityKind) || 'N/A'}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Total hits',\n\t\t\t\t\taccessorKey: 'totalHits',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.MonitoringSearch } }) => {\n\t\t\t\t\t\tconst { totalHits } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{totalHits}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Total matches',\n\t\t\t\t\taccessorKey: 'totalMatches',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.MonitoringSearch } }) => {\n\t\t\t\t\t\tconst { totalMatches } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{totalMatches}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Status',\n\t\t\t\t\taccessorKey: 'matchStatus',\n\t\t\t\t\tsize: 200,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.MonitoringSearch } }) => {\n\t\t\t\t\t\tconst { matchStatus } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{S.prettify(matchStatus) || 'N/A'}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Is changed',\n\t\t\t\t\taccessorKey: 'unacknowledgedChangesCount',\n\t\t\t\t\tsize: 200,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.MonitoringSearch } }) => {\n\t\t\t\t\t\tconst { unacknowledgedChangesCount: count } = row.original;\n\t\t\t\t\t\tif (!count) {\n\t\t\t\t\t\t\treturn 'No changes';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t 1 ? 'changes' : 'change'}`}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\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);\n};\n","import React, { useEffect } from 'react';\n\nimport { useObserveEffect, useSelector } from '@datagrid/state';\nimport { useNavigate } from 'react-router-dom';\n\nimport { TFLoadingOverlay, TFNotifier } from '@tf/ui';\n\nimport { useEntity } from '@/core/api/entities';\nimport { monitoringStore } from '@/core/stores';\n\ninterface Props extends React.PropsWithChildren {\n\tentityId: number;\n}\n\nexport const MonitoringProvider: React.FC = ({ children, entityId }) => {\n\tconst navigate = useNavigate();\n\n\tconst entityQuery = useEntity(entityId);\n\tconst selectedAccount = useSelector(() => monitoringStore.selected.get());\n\n\tuseObserveEffect(() => {\n\t\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\tmonitoringStore.set({ hits: null, selected: null });\n\t});\n\n\tuseEffect(() => {\n\t\tif (selectedAccount === null) {\n\t\t\tmonitoringStore.selected.set(entityQuery.data || null);\n\t\t} else {\n\t\t\tmonitoringStore.selected.assign(entityQuery.data || null);\n\t\t}\n\t}, [entityQuery.data]);\n\n\tuseEffect(() => {\n\t\tif (entityQuery.error) {\n\t\t\tTFNotifier.error('Could not read the entity information. Please try again later');\n\t\t\tnavigate('/monitoring');\n\t\t}\n\t}, [entityQuery.error, navigate]);\n\n\tif (selectedAccount === null) {\n\t\treturn ;\n\t}\n\n\treturn <>{children};\n};\n","import { useMutation, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\n\ninterface Payload {\n\taccountId: number;\n\tconnectionId: number;\n\tgraphId: number;\n\tformKind: string;\n\tsegmentIdentities: BackendTypes.SegmentIdentity[];\n\tstatus: BackendTypes.ReviewStatus;\n\tcomment?: string;\n}\n\nexport const useReviewDecisionMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tconnectionId,\n\t\t\tgraphId,\n\t\t\tformKind,\n\t\t\tsegmentIdentities,\n\t\t\tstatus,\n\t\t\tcomment,\n\t\t}: Payload): Promise => {\n\t\t\tconst api = BackendClient.getInstance();\n\n\t\t\tconst res = await api.reviewSegmentDecisionWrite({\n\t\t\t\tlistSegmentIdentities: segmentIdentities,\n\t\t\t\tstatus,\n\t\t\t});\n\n\t\t\tif (comment) {\n\t\t\t\tawait api.reviewFormCommentWrite({\n\t\t\t\t\treviewConnectionId: connectionId,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tformId: formKind,\n\t\t\t\t\t\tgraphId,\n\t\t\t\t\t\ttext: comment,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn res;\n\t\t},\n\t\tonSuccess: async (res, { accountId }) => {\n\t\t\tawait Promise.all([\n\t\t\t\tqueryClient.refetchQueries({ queryKey: ['accounts', accountId] }),\n\t\t\t\tqueryClient.refetchQueries({ queryKey: ['overviewAccounts'] }),\n\t\t\t]);\n\t\t},\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Something went wrong. Please try again later');\n\t\t},\n\t});\n};\n","import React, { useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tButton,\n\tcreateModal,\n\tIcon,\n\tMenu,\n\tTextarea,\n\tTFNotifier,\n\tTFText,\n\tuseDisclosure,\n} from '@tf/ui';\nimport type { FormSegment } from '@tf/utils';\n\nimport { useReviewDecisionMutation } from '@/core/api/reviewDecision';\nimport { useAccountParams } from '@/core/hooks';\nimport { ModalFooter } from '@/components/shared';\n\ninterface Props {\n\treviewStatus: string;\n\tsegments: FormSegment[];\n\tgraphId: number;\n}\n\nexport const ReviewDecisionButton: React.FC = ({ segments, reviewStatus, graphId }) => {\n\tconst { accountId, connectionId, formKind } = useAccountParams();\n\tconst { mutateAsync, isPending } = useReviewDecisionMutation();\n\tconst rejectModal = useDisclosure();\n\n\tconst makeDecision = async (status: BackendTypes.ReviewStatus, comment?: string) => {\n\t\tawait mutateAsync(\n\t\t\t{\n\t\t\t\taccountId,\n\t\t\t\tconnectionId,\n\t\t\t\tgraphId,\n\t\t\t\tformKind,\n\t\t\t\tsegmentIdentities: segments,\n\t\t\t\tstatus,\n\t\t\t\tcomment,\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tTFNotifier.success('Form review status updated');\n\t\t\t\t\trejectModal.close();\n\t\t\t\t},\n\t\t\t\tonError: () => {\n\t\t\t\t\tTFNotifier.error('Something went wrong. Please try again later');\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\tconst handleReject = () => rejectModal.open();\n\n\tconst handleApprove = async () => makeDecision('ACCEPTED');\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={reviewStatus === 'ACCEPTED'}\n\t\t\t\t\t\tonClick={handleApprove}\n\t\t\t\t\t>\n\t\t\t\t\t\tApprove\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\tonClick={handleReject}\n\t\t\t\t\t\tdisabled={reviewStatus === 'REJECTED'}\n\t\t\t\t\t>\n\t\t\t\t\t\tReject\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t makeDecision('REJECTED', comment),\n\t\t\t\t\tonClose: rejectModal.close,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n\ninterface RejectModalProps {\n\tonSubmit: (comment: string) => Promise;\n\tonClose: () => void;\n}\n\nexport const RejectModal = createModal(({ onSubmit, onClose }) => {\n\tconst [comment, setComment] = useState('');\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tIn addition to the decision, you can give reasons for refusal or information to clarify\n\t\t\t\t\tcustomer data.\n\t\t\t\t\n\t\t\t\t setComment(e.currentTarget.value)}\n\t\t\t\t/>\n\t\t\t\n\t\t\t onSubmit(comment)} />\n\t\t\n\t);\n});\n","import { useState } from 'react';\n\nimport { useQueryClient } from '@tanstack/react-query';\nimport type { FC } from 'react';\n\nimport { BackendClient } from '@tf/api';\nimport type { ButtonProps } from '@tf/ui';\nimport { Button, Group, Icon, Modal, TFText, useDisclosure } from '@tf/ui';\n\nimport { useAccountParams, useSelectedReview } from '@/core/hooks';\nimport { CommentsList, CounterBadge } from '@/components/shared';\n\ninterface Props {\n\tgraphId: number;\n\tformId: string;\n\tsize?: ButtonProps['size'];\n}\n\nexport const FormCommentsButton: FC = ({ graphId, formId, size }) => {\n\tconst [isSubmitting, setIsSubmitting] = useState(false);\n\tconst commentsModal = useDisclosure();\n\n\tconst { accountId, connectionId } = useAccountParams();\n\tconst review = useSelectedReview();\n\tconst api = BackendClient.getInstance();\n\tconst queryClient = useQueryClient();\n\n\t// * Pick comments for current form by graphId and formId\n\tconst comments = review.listFormComments\n\t\t.filter(({ data }) => data.graphId === graphId && data.formId === formId)\n\t\t.sort((a, b) => a.createdAt.localeCompare(b.createdAt));\n\n\tconst sendComment = async (nextComment: string) => {\n\t\ttry {\n\t\t\tif (nextComment.length === 0) return;\n\t\t\tsetIsSubmitting(true);\n\t\t\tawait api.reviewFormCommentWrite({\n\t\t\t\treviewConnectionId: connectionId,\n\t\t\t\tdata: { graphId, formId, text: nextComment },\n\t\t\t});\n\t\t\tawait queryClient.refetchQueries({ queryKey: ['accounts', accountId] });\n\t\t} finally {\n\t\t\tsetIsSubmitting(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t}\n\t\t\t\tonClick={commentsModal.open}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\tComments\n\t\t\t\t\t{comments.length > 0 ? : null}\n\t\t\t\t\n\t\t\t\n\n\t\t\t{commentsModal.isOpen && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { FormStatuses } from '@tf/shared';\nimport { createStyles, Group, Icon, type Sx, TFText, Tooltip } from '@tf/ui';\n\nimport { useSelectedReview } from '@/core/hooks';\n\ninterface Props {\n\tstatus: FormStatuses;\n\tisDecisionRequired: boolean;\n}\n\nconst badgeStyles: Sx = {\n\tflexWrap: 'nowrap',\n\tborderRadius: 4,\n\theight: 36,\n\tminWidth: 36,\n\tpadding: '0 12px',\n\tcursor: 'default',\n\tuserSelect: 'none',\n};\n\nconst useStyles = createStyles(({ colors, fontSizes }) => ({\n\ticon: {\n\t\tflexShrink: 0,\n\t},\n\ttext: {\n\t\tfontWeight: 500,\n\t\tfontSize: '0.825rem',\n\t},\n\tvalid: {\n\t\tbackgroundColor: colors.brand[0],\n\t\tcolor: colors.brand[6],\n\t\t...badgeStyles,\n\t},\n\tverified: {\n\t\tbackgroundColor: colors.green[0],\n\t\tcolor: colors.green[6],\n\t\t...badgeStyles,\n\t},\n\terrors: {\n\t\tbackgroundColor: colors.red[0],\n\t\tcolor: colors.red[5],\n\t\t...badgeStyles,\n\t},\n\tpending: {\n\t\tbackgroundColor: colors.gray[1],\n\t\tcolor: colors.gray[4],\n\t\t...badgeStyles,\n\t},\n}));\n\nconst State: React.FC<{\n\tclassName: string;\n\ttext: string;\n\ticonComponent: React.ComponentType<{ className: string; size: number }>;\n}> = ({ className, text, iconComponent: IconComponent }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{text}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const FormStatusLabel: React.FC = ({ status, isDecisionRequired }) => {\n\tconst { classes } = useStyles();\n\tconst review = useSelectedReview();\n\n\tif (review.state !== 'DRAFT') {\n\t\tswitch (status.review) {\n\t\t\tcase 'ACCEPTED':\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase 'REJECTED':\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn isDecisionRequired ? (\n\t\t\t\t\t\n\t\t\t\t) : null;\n\t\t}\n\t}\n\n\treturn ;\n};\n\nexport const FormStatusLabelBase: React.FC<{ status?: BackendTypes.FieldValidationStatus }> = ({\n\tstatus,\n}) => {\n\tconst { classes } = useStyles();\n\n\tswitch (status) {\n\t\tcase 'OK':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tcase 'VALIDATION_ERRORS':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tcase 'PENDING_FILL':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n","import React from 'react';\n\nimport { isFormDecisionRequired } from '@tf/shared';\nimport { Box, Button, Group, Icon, TFCard } from '@tf/ui';\nimport type { FormSegment } from '@tf/utils';\n\nimport type { ExtendedReviewContainer, FormState } from '@/core/types';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { ReviewDecisionButton } from '@/components/reviews';\n\nimport { FormCommentsButton } from './FormCommentsButton';\nimport { FormStatusLabel } from './FormStatusLabel';\n\ninterface Props {\n\tstate: FormState;\n\treview: ExtendedReviewContainer;\n\tisLoading: boolean;\n\tgraphId: number;\n\tsegments: FormSegment[];\n}\n\nexport const FormFooter: React.FC = ({ state, review, isLoading, graphId, segments }) => {\n\tconst canReviewAccounts = useCurrentUserCapabilityCheck(UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA);\n\tconst canPrepareAccountsData = useCurrentUserCapabilityCheck(\n\t\tUserCapabilities.CAN_PREPARE_ACCOUNTS_DATA\n\t);\n\n\tconst isReadOnly = segments.every((s) => s.accessMode === 'VIEW');\n\n\tconst isDecisionButtonVisible =\n\t\tcanReviewAccounts && review.state !== 'DRAFT' && isFormDecisionRequired(segments, review);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{isDecisionButtonVisible ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\t{canPrepareAccountsData && !isReadOnly && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useRef, useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { FormControl } from '@tf/form-builder';\nimport { getFormStatuses } from '@tf/shared';\nimport { TFNotifier } from '@tf/ui';\nimport type { FormSegment, SubmitHandler } from '@tf/utils';\nimport { rawRevision, T } from '@tf/utils';\n\nimport { accountQueryOptions } from '@/core/api/account';\nimport { useAccountParams, useProcessingScripts, useSelectedReview } from '@/core/hooks';\nimport { writeSegmentsMutation } from '@/core/mutations';\nimport { appStore } from '@/core/stores';\nimport type { FormState } from '@/core/types';\nimport { AppFormBuilder } from '@/components/shared';\n\nimport { FormFooter } from './FormFooter';\n\ninterface Props {\n\tdata: BackendTypes.SegmentsReadData;\n\tadditionalData:\n\t\t| BackendTypes.AdhocSearchEntityParams\n\t\t| BackendTypes.AdhocSearchPersonParams\n\t\t| undefined;\n\tvalidateInitialValues: boolean;\n}\n\ntype Revisions = Record;\n\nexport const Form: React.FC = ({ data, additionalData, validateInitialValues }) => {\n\tconst queryClient = useQueryClient();\n\tconst params = useAccountParams();\n\tconst review = useSelectedReview();\n\tconst defs = useSelector(() => appStore.defs.get().structs);\n\n\tconst formControl = useRef(null);\n\n\t// * Initial segments metadata\n\tconst segments: FormSegment[] = data.map(({ container: { info } }) => {\n\t\tconst label = defs[info.SegmentIdentity.segmentKind]?.label || '';\n\t\treturn { accessMode: info.AccessMode, ...info.SegmentIdentity, label } satisfies FormSegment;\n\t});\n\n\tconst currency = useSelector(() => appStore.currency?.get());\n\tT.assertNotNullish(currency, 'no currency in appStore');\n\n\t// * Segments processing scripts\n\tconst segmentKinds = segments.map(({ segmentKind }) => segmentKind);\n\tconst scripts = useProcessingScripts(segmentKinds);\n\n\t// * Initial revisions\n\tconst initialRevisions = data.reduce(\n\t\t(acc, { container: { info } }) => ({\n\t\t\t...acc,\n\t\t\t[info.SegmentIdentity.segmentKind]: info.Revision.revision,\n\t\t}),\n\t\t{} as Revisions\n\t);\n\n\tconst [revisions, setRevisions] = useState(initialRevisions);\n\n\t// * Initial values\n\tconst initialValues = data.reduce((acc, { container }) => {\n\t\tconst { info, segment } = container;\n\t\treturn {\n\t\t\t...acc,\n\t\t\t[info.SegmentIdentity.segmentKind]: segment,\n\t\t};\n\t}, {} as Record);\n\n\t// * Component action\n\tconst handleSubmit: SubmitHandler = async ({ values, segmentValidationStatuses }) => {\n\t\ttry {\n\t\t\t// * Accumulate segments data\n\t\t\tconst input: BackendTypes.SegmentsWritePayload = [];\n\t\t\tfor (const { container } of data) {\n\t\t\t\tconst { graphId, segmentKind } = container.info.SegmentIdentity;\n\t\t\t\tinput.push({\n\t\t\t\t\tsegmentIdentity: { graphId, segmentKind },\n\t\t\t\t\trevision: { ...rawRevision, revision: revisions[segmentKind] },\n\t\t\t\t\tsegment: values[segmentKind] ?? {},\n\t\t\t\t\tvalidationStatus: segmentValidationStatuses[segmentKind],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// * Write segments and updating revisions\n\t\t\tconst res = await writeSegmentsMutation(input);\n\t\t\tTFNotifier.info('Form successfully updated', { id: 'form-updated' });\n\t\t\tfor (const { container } of res) {\n\t\t\t\tsetRevisions((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\t[container.info.SegmentIdentity.segmentKind]: container.info.Revision.revision,\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\t// * Refetch account data\n\t\t\tawait queryClient.refetchQueries(accountQueryOptions(params.accountId));\n\t\t} catch (err) {\n\t\t\tconst message = err instanceof Error ? err.message : 'Something went wrong';\n\t\t\tTFNotifier.error(message);\n\t\t}\n\t};\n\n\t// * Compose FormLoader State\n\tconst state = {\n\t\tid: params.formKind,\n\t\tstatuses: getFormStatuses({\n\t\t\tcontainers: review.listSegmentReviewContainers,\n\t\t\tsegmentIdentities: segments,\n\t\t}),\n\t} satisfies FormState;\n\n\treturn (\n\t\t (\n\t\t\t\t\n\t\t\t)}\n\t\t\tstyles={{\n\t\t\t\tcontent: { marginTop: '1rem' },\n\t\t\t\tsegment: ({ colors }) => ({\n\t\t\t\t\tmarginBottom: '1rem',\n\t\t\t\t\tpadding: '.75rem 1rem 1rem',\n\t\t\t\t\tborderStyle: 'solid',\n\t\t\t\t\tborderRadius: 8,\n\t\t\t\t\tborderWidth: 0.5,\n\t\t\t\t\tborderColor: colors.gray[2],\n\t\t\t\t\tbackgroundColor: '#fff',\n\t\t\t\t\tboxShadow: '0 4px 20px -4px rgb(0 0 0 / 10%)',\n\t\t\t\t}),\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport { Box, createStyles, TFCard, Title } from '@tf/ui';\n\nimport { FormCommentsButton } from './FormCommentsButton';\n\nconst useStyles = createStyles(({ colors }) => ({\n\theader: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tborderBottomStyle: 'solid',\n\t\tborderBottomWidth: 1,\n\t\tborderBottomColor: colors.gray[2],\n\t\tpadding: '.75rem 1rem',\n\t},\n\ttitle: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t\tfontSize: '1.2rem',\n\t\tcolor: colors.gray[7],\n\t\tfontWeight: 500,\n\t},\n}));\n\ninterface Props extends React.PropsWithChildren {\n\tdef: ExtendedFormDefinition;\n\thideCommentsButton?: boolean;\n}\n\nexport const FormWrapper: React.FC = ({ children, def, hideCommentsButton = false }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{def.label}\n\t\t\t\t\t{!hideCommentsButton && (\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\t{children}\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport * as Sentry from '@sentry/react';\nimport { Navigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport { getFormHash, getFormStatuses, selectForm } from '@tf/shared';\nimport { S } from '@tf/utils';\n\nimport { useSegmentsQuery } from '@/core/api/segments';\nimport { useAccountParams, useSelectedAccount, useSelectedReview } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport { FormLoader } from '@/components/shared';\nimport { getAdditionalDataForBackgroundCheck } from '@/components/utils';\n\nimport { Form } from './Form';\nimport { FormWrapper } from './FormWrapper';\n\nconst isSelfSegment = (segment: BackendTypes.SegmentIdentity, selfSegmentKinds: string[]) =>\n\tselfSegmentKinds.includes(segment.segmentKind);\n\nconst getSegmentWithSelfSegmentDataDependency = (\n\tform: ExtendedFormDefinition\n) => form.segmentIdentities.find((s) => s.segmentKind === 'COMMON__BACKGROUND_CHECK');\n\nconst ReviewFormContent: React.FC<{\n\tform: ExtendedFormDefinition;\n\tsegmentIdentities: BackendTypes.SegmentIdentity[];\n\treview: ExtendedReviewContainer;\n}> = ({ form, segmentIdentities, review }) => {\n\t// Find segment which needs data from self-segment to work\n\t// Currently it is only Background check, it needs entity name\n\tconst additionalSegments: BackendTypes.SegmentIdentity[] = [];\n\n\tconst selfSegments = useSelector(() => appStore.defs.get().selfSegments);\n\tconst selfSegmentKinds = Object.values(selfSegments);\n\tconst segmentWithSelfSegmentDataDependency = getSegmentWithSelfSegmentDataDependency(form);\n\n\tif (segmentWithSelfSegmentDataDependency) {\n\t\t// Dependent segment lives on the entity, so we can find required self segment\n\t\tconst requiredSelfSegment = segmentIdentities.find(\n\t\t\t(s) =>\n\t\t\t\ts.graphId === segmentWithSelfSegmentDataDependency.graphId && isSelfSegment(s, selfSegmentKinds)\n\t\t);\n\t\tif (requiredSelfSegment) {\n\t\t\tadditionalSegments.push(requiredSelfSegment);\n\t\t}\n\t}\n\n\t// * Get initial form data\n\tconst segmentsQuery = useSegmentsQuery(\n\t\t// unique segment identities\n\t\t[...form.segmentIdentities, ...additionalSegments].filter((s, i, segmentsIdentities) => {\n\t\t\tconst sameSegmentIndex = segmentsIdentities.findIndex(\n\t\t\t\t(s2) => s.graphId === s2.graphId && s.segmentKind === s2.segmentKind\n\t\t\t);\n\t\t\treturn sameSegmentIndex === i;\n\t\t}),\n\t\t{\n\t\t\tenabled: Boolean(form.segmentIdentities),\n\t\t}\n\t);\n\n\tconst { structure } = getFormStatuses({\n\t\tcontainers: review.listSegmentReviewContainers,\n\t\tsegmentIdentities: form.segmentIdentities,\n\t});\n\tconst hasPrevErrors = structure === 'VALIDATION_ERRORS';\n\n\treturn (\n\t\t\n\t\t\t{segmentsQuery.status === 'success' ? (\n\t\t\t\t\n\t\t\t\t\t\tform.segmentIdentities.some(\n\t\t\t\t\t\t\t(item) => item.segmentKind === segment.container.info.SegmentIdentity.segmentKind\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t\tadditionalData={getAdditionalDataForBackgroundCheck(\n\t\t\t\t\t\tsegmentsQuery.data,\n\t\t\t\t\t\tform,\n\t\t\t\t\t\tselfSegmentKinds\n\t\t\t\t\t)}\n\t\t\t\t\tvalidateInitialValues={hasPrevErrors}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport const ReviewForm = () => {\n\tconst params = useAccountParams();\n\tconst account = useSelectedAccount();\n\tconst review = useSelectedReview();\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\n\t// Pick current form\n\tconst segmentIdentities = [\n\t\t...review.listEntities.flatMap(({ listSegments }) =>\n\t\t\tlistSegments.flatMap(({ SegmentIdentity }) => SegmentIdentity)\n\t\t),\n\t\t// Segments from connections:\n\t\t...review.listEntities.flatMap((entity) => {\n\t\t\treturn entity.listConnections.flatMap((connection) => {\n\t\t\t\treturn connection.listFromEntities.flatMap((connectionData) => {\n\t\t\t\t\treturn connectionData.listSegments.map((s) => s.SegmentIdentity);\n\t\t\t\t});\n\t\t\t});\n\t\t}),\n\t\t...review.listSegmentReviewContainers.flatMap(({ identity }) => identity),\n\t\t...account.meta.listSegments.map((s) => s.SegmentIdentity),\n\t];\n\n\t// Try to read form and redirect to parent entity in case of failure\n\tlet form: ExtendedFormDefinition | null = null;\n\ttry {\n\t\tform = selectForm({\n\t\t\tformDefs,\n\t\t\tsegmentIdentities,\n\t\t\tformName: params.formKind,\n\t\t\thash: params.searchParams.hash,\n\t\t});\n\t} catch (err) {\n\t\t// Lower level because we handle this with redirect\n\t\tSentry.captureException(err, { level: 'warning' });\n\t}\n\n\tif (!form) {\n\t\tconst connectionPath = `/accounts/${params.accountId}/${S.slugify(params.connectionKind)}`;\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\treturn ;\n};\n","import { useQueryClient } from '@tanstack/react-query';\nimport type { FC } from 'react';\n\nimport { BackendClient } from '@tf/api';\nimport { Button, Group, Icon, Modal, TFNotifier, TFText, Tooltip, useDisclosure } from '@tf/ui';\n\nimport { useOverviewAccount } from '@/core/api/overview';\nimport { useSelectedAccount } from '@/core/hooks';\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { ConfirmationModal } from '@/components/shared';\nimport { AssignedManagersWidget } from '@/components/shared/AssignedManagers';\n\ninterface Props {\n\treview: ExtendedReviewContainer;\n}\n\nexport const ReviewTransitionButton: FC = ({ review }) => {\n\tconst confirmationModal = useDisclosure();\n\n\t// * Check if user has permission to do transition\n\tif (!useCurrentUserCapabilityCheck(UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA)) {\n\t\treturn null;\n\t}\n\n\tif (review.state === 'READY_TO_REVIEW') {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\tSend\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn null;\n};\n\ninterface ModalProps {\n\tisOpen: boolean;\n\tonClose: () => void;\n\treview: ExtendedReviewContainer;\n}\n\nexport const ReviewTransitionModal: React.FC = ({ isOpen, onClose, review }) => {\n\tconst { meta } = useSelectedAccount();\n\tconst accountId = meta.graphNodeId;\n\tconst { data } = useOverviewAccount(accountId);\n\tconst listUsers = data?.listUsers;\n\n\tconst assignedManagers = data?.account.assignedManagers ?? [];\n\n\tconst api = BackendClient.getInstance();\n\tconst queryClient = useQueryClient();\n\n\tconst setReadiness = async (isReady: boolean) => {\n\t\ttry {\n\t\t\tawait api.reviewTransition(review.graphLinkId, {\n\t\t\t\tisReady,\n\t\t\t\trevisionCounter: review.revisionCounter,\n\t\t\t});\n\t\t\tawait queryClient.refetchQueries({ queryKey: ['accounts', meta.graphNodeId] });\n\t\t\tawait queryClient.refetchQueries({ queryKey: ['overviewAccount', meta.graphNodeId] });\n\t\t\tonClose();\n\t\t\tTFNotifier.success('Account sent to review');\n\t\t} catch (e) {\n\t\t\tconst message = e instanceof Error ? e.message : 'Unknown error';\n\t\t\tTFNotifier.error(message);\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t setReadiness(true)}\n\t\t\t\tonCancel={onClose}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\tAssigned managers:\n\t\t\t\t\t {\n\t\t\t\t\t\t\treturn m.listRoleCapabilities.some((capability) => {\n\t\t\t\t\t\t\t\treturn capability === UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA;\n\t\t\t\t\t\t\t});\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);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, Button, Group, Icon, TFCard } from '@tf/ui';\nimport type { FormSegment } from '@tf/utils';\n\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { FormStatusLabelBase } from '@/components/reviews/ReviewForm/FormStatusLabel';\n\ninterface Props {\n\tisLoading: boolean;\n\tgraphId: number;\n\tsegments: FormSegment[];\n\tstatus?: BackendTypes.FieldValidationStatus;\n}\n\nexport const EntityFormFooter: React.FC = ({ isLoading, segments, status }) => {\n\tconst canPrepareAccountsData = useCurrentUserCapabilityCheck(\n\t\tUserCapabilities.CAN_PREPARE_ACCOUNTS_DATA\n\t);\n\n\tconst isReadOnly = segments.every((s) => s.accessMode === 'VIEW');\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{canPrepareAccountsData && !isReadOnly && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { useOutletContext, useParams } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport { extractForms, getEntityFormStatus } from '@tf/shared';\nimport { TFNotifier } from '@tf/ui';\nimport type { FormSegment, SubmitHandler } from '@tf/utils';\nimport { rawRevision, T } from '@tf/utils';\n\nimport { segmentsQueryOptions } from '@/core/api/segments';\nimport { useProcessingScripts } from '@/core/hooks';\nimport { writeSegmentsMutation } from '@/core/mutations';\nimport { appStore } from '@/core/stores';\nimport { FormWrapper } from '@/components/reviews/ReviewForm/FormWrapper';\nimport { AppFormBuilder } from '@/components/shared';\nimport { getAdditionalDataForBackgroundCheck } from '@/components/utils';\n\nimport { EntityFormFooter } from './EntityFormFooter';\n\ntype Revisions = Record;\n\nexport const EntityReviewForm = () => {\n\tconst currency = useSelector(() => appStore.currency?.get());\n\tconst { entity, segmentsReadData } = useOutletContext<{\n\t\tentity: BackendTypes.Entity;\n\t\tsegmentsReadData: BackendTypes.SegmentsReadData;\n\t}>();\n\tconst { formKind } = useParams<{ formKind: string }>();\n\tconst defs = useSelector(() => appStore.defs.get().structs);\n\tconst selfSegments = useSelector(() => appStore.defs.get().selfSegments);\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\tconst queryClient = useQueryClient();\n\n\tT.assertNotNullish(currency, 'no currency in appStore');\n\n\tconst forms = extractForms({\n\t\tformDefs,\n\t\tsegmentIdentities: entity.listSegments.map((s) => s.SegmentIdentity),\n\t});\n\n\tconst form = forms.find((f) => f.name === formKind)!;\n\n\tconst selfSegmentKinds = Object.values(selfSegments);\n\n\tconst segmentsData = segmentsReadData.filter((segment) =>\n\t\tform.segmentIdentities.some(\n\t\t\t(item) => item.segmentKind === segment.container.info.SegmentIdentity.segmentKind\n\t\t)\n\t);\n\n\tconst segments: FormSegment[] =\n\t\tsegmentsData?.map(({ container: { info } }) => {\n\t\t\tconst label = defs[info.SegmentIdentity.segmentKind]?.label || '';\n\t\t\treturn { accessMode: info.AccessMode, ...info.SegmentIdentity, label } satisfies FormSegment;\n\t\t}) ?? [];\n\n\tconst segmentKinds = segments.map(({ segmentKind }) => segmentKind);\n\tconst scripts = useProcessingScripts(segmentKinds);\n\n\tconst initialValues = segmentsData?.reduce((acc, { container }) => {\n\t\tconst { info, segment } = container;\n\t\treturn {\n\t\t\t...acc,\n\t\t\t[info.SegmentIdentity.segmentKind]: segment,\n\t\t};\n\t}, {} as Record);\n\n\tconst formStatus = getEntityFormStatus({\n\t\tsegmentsData: segmentsReadData,\n\t\tsegmentIdentities: form.segmentIdentities,\n\t});\n\n\tconst initialRevisions = segmentsData.reduce(\n\t\t(acc, { container: { info } }) => ({\n\t\t\t...acc,\n\t\t\t[info.SegmentIdentity.segmentKind]: info.Revision.revision,\n\t\t}),\n\t\t{} as Revisions\n\t);\n\tconst [revisions, setRevisions] = useState(initialRevisions);\n\tconst handleSubmit: SubmitHandler = async ({ values, segmentValidationStatuses }) => {\n\t\ttry {\n\t\t\tconst input: BackendTypes.SegmentsWritePayload = [];\n\t\t\tfor (const { container } of segmentsData) {\n\t\t\t\tconst { graphId, segmentKind } = container.info.SegmentIdentity;\n\t\t\t\tinput.push({\n\t\t\t\t\tsegmentIdentity: { graphId, segmentKind },\n\t\t\t\t\trevision: { ...rawRevision, revision: revisions[segmentKind] },\n\t\t\t\t\tsegment: values[segmentKind] ?? {},\n\t\t\t\t\tvalidationStatus: segmentValidationStatuses[segmentKind],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst res = await writeSegmentsMutation(input);\n\t\t\tTFNotifier.info('Form successfully updated', { id: 'form-updated' });\n\t\t\tfor (const { container } of res) {\n\t\t\t\tsetRevisions((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\t[container.info.SegmentIdentity.segmentKind]: container.info.Revision.revision,\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\tawait queryClient.refetchQueries(segmentsQueryOptions(segments));\n\t\t} catch (err) {\n\t\t\tconst message = err instanceof Error ? err.message : 'Something went wrong';\n\t\t\tTFNotifier.error(message);\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\tstyles={{\n\t\t\t\t\tcontent: { marginTop: '1rem' },\n\t\t\t\t\tsegment: ({ colors }) => ({\n\t\t\t\t\t\tmarginBottom: '1rem',\n\t\t\t\t\t\tpadding: '.75rem 1rem 1rem',\n\t\t\t\t\t\tborderStyle: 'solid',\n\t\t\t\t\t\tborderRadius: 8,\n\t\t\t\t\t\tborderWidth: 0.5,\n\t\t\t\t\t\tborderColor: colors.gray[2],\n\t\t\t\t\t\tbackgroundColor: '#fff',\n\t\t\t\t\t\tboxShadow: '0 4px 20px -4px rgb(0 0 0 / 10%)',\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport type { ChangeEvent, FC } from 'react';\n\nimport { type BackendTypes } from '@tf/api';\nimport { Box, Button, Checkbox, Stack, TextInput, TFCard, TFField, TFNotifier, TFSection } from '@tf/ui';\n\nimport { useUpdateUserMutation } from '@/core/api/users';\nimport { useCurrentUser } from '@/core/hooks';\nimport { UserCapabilities } from '@/core/types';\nimport { getCapabilities } from '@/core/utils';\n\nconst capabilitiesDescription: Record = {\n\t[UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA]:\n\t\t'Create new client accounts, add and edit client information, submit accounts for review, add comments, assign other managers, update client status across customer lifecycle',\n\t[UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA]:\n\t\t'Review client profiles, manage customer risk assessment, perform perpetual CDD, approve or reject client applications, add comments, assign other managers',\n\t[UserCapabilities.CAN_MANAGE_MONITORING]:\n\t\t'Use real-time third-party databases to perform ongoing monitoring on all clients and related entities',\n\t[UserCapabilities.CAN_MANAGE_USERS]:\n\t\t'Invite new users to TrustForm and manage their permissions and data access',\n\t[UserCapabilities.CAN_EXPORT_ACCOUNT_DATA]:\n\t\t'Export client account data for reporting, compliance, or further analysis',\n\t[UserCapabilities.CAN_MANAGE_API_TOKENS]: 'Create new API tokens, view and revoke existing tokens',\n};\n\ninterface Props {\n\tuser: BackendTypes.UserInfo;\n}\n\nexport const UserCard: FC = ({ user }) => {\n\tconst currentUser = useCurrentUser();\n\tconst isEditingThemself = currentUser.userId !== user.userId;\n\tconst allCapabilities = getCapabilities();\n\n\tconst [firstName, setFirstName] = useState(user.firstName || '');\n\tconst [lastName, setLastName] = useState(user.lastName || '');\n\tconst [capabilities, setCapabilities] = useState>(\n\t\tallCapabilities.reduce((acc, c) => {\n\t\t\treturn {\n\t\t\t\t...acc,\n\t\t\t\t[c.value]: user.listRoleCapabilities.includes(c.value),\n\t\t\t};\n\t\t}, {} as Record)\n\t);\n\n\tconst handleFirstNameChange = (e: ChangeEvent) => setFirstName(e.target.value);\n\tconst handleLastNameChange = (e: ChangeEvent) => setLastName(e.target.value);\n\n\tconst handleToggleCapability = (capability: BackendTypes.RoleCapabilityValue) => {\n\t\tsetCapabilities((prevCapabilities) => ({\n\t\t\t...prevCapabilities,\n\t\t\t[capability]: !prevCapabilities[capability],\n\t\t}));\n\t};\n\n\tconst updateUserMutation = useUpdateUserMutation();\n\tconst saveChanges = async () => {\n\t\tif (Object.values(capabilities).filter(Boolean).length === 0) {\n\t\t\treturn TFNotifier.error('Please select at least one capability');\n\t\t}\n\t\tawait updateUserMutation.mutateAsync(\n\t\t\t{\n\t\t\t\tid: user.userId,\n\t\t\t\tdata: {\n\t\t\t\t\tlastName,\n\t\t\t\t\tfirstName,\n\t\t\t\t\tuserParams: {\n\t\t\t\t\t\tlistRoleCapabilities: Object.entries(capabilities)\n\t\t\t\t\t\t\t.filter(([, isEnabled]) => isEnabled)\n\t\t\t\t\t\t\t.map(([capability]) => capability as BackendTypes.RoleCapabilityValue),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\tTFNotifier.success('User profile updated');\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{allCapabilities.map((capability) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t handleToggleCapability(capability.value)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\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\t ({\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tjustifyContent: 'end',\n\t\t\t\t\tpadding: '1rem',\n\t\t\t\t\tmarginTop: '.5rem',\n\t\t\t\t\tborderTopStyle: 'solid',\n\t\t\t\t\tborderTopWidth: '1px',\n\t\t\t\t\tborderTopColor: colors.gray[2],\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport { BackendClient } from '@tf/api';\nimport { Button, Icon, TFModals, TFNotifier } from '@tf/ui';\n\nimport { useUsers } from '@/core/api/users';\nimport { ConfirmationModal } from '@/components/shared';\n\ninterface Props {\n\tuserId: string;\n}\n\nexport const UserDeleteButton: React.FC = ({ userId }) => {\n\tconst api = BackendClient.getInstance();\n\tconst users = useUsers();\n\tconst navigate = useNavigate();\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tconst suspendUser = async () => {\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\t\t\tawait api.deleteUser(userId);\n\t\t\tawait users.refetch();\n\t\t\tTFNotifier.info('User suspended');\n\t\t\tnavigate('/settings/users');\n\t\t} catch {\n\t\t\tTFNotifier.error('Unknown error');\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tconst handleSuspend = () =>\n\t\tTFModals.open({\n\t\t\tchildren: (\n\t\t\t\t\n\t\t\t),\n\t\t});\n\n\treturn (\n\t\t}\n\t\t>\n\t\t\tDelete user\n\t\t\n\t);\n};\n","import { nanoid } from 'nanoid';\nimport { Controller, useFieldArray, useForm } from 'react-hook-form';\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tActionIcon,\n\tBox,\n\tButton,\n\tDivider,\n\tFlex,\n\tGroup,\n\tIcon,\n\tInput,\n\tMultiSelect,\n\tStack,\n\tTextInput,\n\tTFCard,\n\tTFNotifier,\n} from '@tf/ui';\nimport { isValidEmail } from '@tf/utils';\n\nimport { useUserInvitationMutation } from '@/core/api/users';\nimport { getCapabilities } from '@/core/utils';\n\nexport const UserInvitationForm = () => {\n\tconst navigate = useNavigate();\n\tconst allCapabilities = getCapabilities();\n\tconst userInvitationMutation = useUserInvitationMutation();\n\n\tconst { control, handleSubmit } = useForm({\n\t\tdefaultValues: {\n\t\t\tinvites: [\n\t\t\t\t{\n\t\t\t\t\tid: nanoid(),\n\t\t\t\t\temail: '',\n\t\t\t\t\tfirstName: '',\n\t\t\t\t\tlastName: '',\n\t\t\t\t\tuserParams: {\n\t\t\t\t\t\tlistRoleCapabilities: [],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t});\n\tconst { fields, append, remove } = useFieldArray({\n\t\tcontrol,\n\t\tname: 'invites',\n\t});\n\n\tconst submit = async ({ invites }: { invites: BackendTypes.UserInvitation[] }) => {\n\t\tawait userInvitationMutation.mutateAsync(invites, {\n\t\t\tonSuccess: () => {\n\t\t\t\tTFNotifier.success('Invitations sent');\n\t\t\t\tnavigate('/settings/users/invitations');\n\t\t\t},\n\t\t\tonError: () => {\n\t\t\t\tTFNotifier.error('Unable to send invitations');\n\t\t\t},\n\t\t});\n\t};\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{fields.map((field, idx) => (\n\t\t\t\t\t\t\n\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 (\n\t\t\t\t\t\t\t\t\t\t\t\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\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\t\t\t\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\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\t\t\t\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\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\n\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\t\treturn (\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\t\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);\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\n\t\t\t\t\t\t\t\t{idx !== fields.length - 1 && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t remove(idx)}\n\t\t\t\t\t\t\t\t\tcolor=\"gray\"\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t= 5}\n\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\tappend({\n\t\t\t\t\t\t\t\tid: nanoid(),\n\t\t\t\t\t\t\t\tfirstName: '',\n\t\t\t\t\t\t\t\tlastName: '',\n\t\t\t\t\t\t\t\temail: '',\n\t\t\t\t\t\t\t\tuserParams: {\n\t\t\t\t\t\t\t\t\tlistRoleCapabilities: [],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tleftSection={}\n\t\t\t\t\t>\n\t\t\t\t\t\tAdd user\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSend\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Button, createStyles, Flex, TFDataTable, TFLoadingOverlay, TFText, Tooltip } from '@tf/ui';\n\nimport { useRevokeUserInvitationMutation, useUsersInvitations } from '@/core/api/users';\nimport { capabilities, capabilitiesIcons, getDisplayName } from '@/core/utils';\n\nconst useStyles = createStyles(({ colors }) => ({\n\ticon: {\n\t\tcolor: colors.gray[6],\n\t},\n}));\n\nexport const UserInvitationsTable = () => {\n\tconst { classes } = useStyles();\n\tconst { isPending, isError, data: usersInvitations } = useUsersInvitations();\n\tconst revokeUserInvitationMutation = useRevokeUserInvitationMutation();\n\n\tif (isPending) {\n\t\treturn ;\n\t}\n\n\tif (isError) {\n\t\treturn
Error, please try again
;\n\t}\n\n\treturn (\n\t\t\n\t\t\tname=\"inviations-table\"\n\t\t\tdata={usersInvitations}\n\t\t\tdefs={[\n\t\t\t\t{\n\t\t\t\t\theader: 'Name',\n\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\taccessorFn: (user) =>\n\t\t\t\t\t\tgetDisplayName({ firstName: user.firstName, lastName: user.lastName, username: 'N/A' }),\n\t\t\t\t\tsize: 150,\n\t\t\t\t\tsortingFn: (rowA, rowB) => {\n\t\t\t\t\t\tconst rowAName = getDisplayName({\n\t\t\t\t\t\t\tfirstName: rowA.original.firstName,\n\t\t\t\t\t\t\tlastName: rowA.original.lastName,\n\t\t\t\t\t\t\tusername: 'N/A',\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst rowBName = getDisplayName({\n\t\t\t\t\t\t\tfirstName: rowB.original.firstName,\n\t\t\t\t\t\t\tlastName: rowB.original.lastName,\n\t\t\t\t\t\t\tusername: 'N/A',\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn rowAName.localeCompare(rowBName);\n\t\t\t\t\t},\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInvitation } }) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{getDisplayName({\n\t\t\t\t\t\t\t\t\tfirstName: row.original.firstName,\n\t\t\t\t\t\t\t\t\tlastName: row.original.lastName,\n\t\t\t\t\t\t\t\t\tusername: 'N/A',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Email',\n\t\t\t\t\taccessorKey: 'email',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInvitation } }) => {\n\t\t\t\t\t\tconst { email } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{email}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Capabilities',\n\t\t\t\t\taccessorKey: 'capabilities',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInvitation } }) => {\n\t\t\t\t\t\tconst { userParams } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{userParams.listRoleCapabilities.map((cap) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{capabilitiesIcons[cap]}\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\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Revoke invitation',\n\t\t\t\t\taccessorKey: 'revoke',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tenableSorting: false,\n\t\t\t\t\tenableResizing: false,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInvitation } }) => {\n\t\t\t\t\t\tconst { email } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tawait revokeUserInvitationMutation.mutateAsync({ email });\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tsize={'xs'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tRevoke\n\t\t\t\t\t\t\t\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);\n};\n","import React, { useEffect } from 'react';\n\nimport { useQueryClient } from '@tanstack/react-query';\nimport { Link } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Anchor, createStyles, Flex, Icon, TFDataTable, TFLoadingOverlay, TFText } from '@tf/ui';\nimport { fmt } from '@tf/utils';\n\nimport { useUsers } from '@/core/api/users';\nimport { getDisplayName } from '@/core/utils';\n\nconst useStyles = createStyles(({ colors }) => ({\n\ttwoFactorContainer: {\n\t\talignItems: 'center',\n\t\tfill: colors.green[7],\n\t\tcolor: colors.green[7],\n\t},\n\ttwoFactorIcon: {\n\t\tmargin: '0 .25rem 0 .75rem',\n\t},\n\tanchor: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport const UserTable = () => {\n\tconst { classes } = useStyles();\n\tconst { isPending, data: users, isError } = useUsers();\n\tconst queryClient = useQueryClient();\n\n\tuseEffect(() => {\n\t\tqueryClient.invalidateQueries({ queryKey: ['users'] });\n\t}, [users]);\n\n\tif (isPending) {\n\t\treturn ;\n\t}\n\n\tif (isError) {\n\t\treturn
Error, please try again
;\n\t}\n\n\treturn (\n\t\t\n\t\t\tname=\"users-table\"\n\t\t\tdata={users ?? []}\n\t\t\tdefs={[\n\t\t\t\t{\n\t\t\t\t\theader: 'Name',\n\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\taccessorFn: (user) => getDisplayName(user.userInfo),\n\t\t\t\t\tsize: 150,\n\t\t\t\t\tsortingFn: (rowA, rowB) => {\n\t\t\t\t\t\tconst rowAName = getDisplayName(rowA.original.userInfo);\n\t\t\t\t\t\tconst rowBName = getDisplayName(rowB.original.userInfo);\n\t\t\t\t\t\treturn rowAName.localeCompare(rowBName);\n\t\t\t\t\t},\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInfoWithClerkData } }) => {\n\t\t\t\t\t\treturn (\n\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{getDisplayName(row.original.userInfo)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{row.original.isTwoFactorEnabled && (\n\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\t2FA\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\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Email',\n\t\t\t\t\taccessorKey: 'username',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tsortingFn: (rowA, rowB) => {\n\t\t\t\t\t\treturn rowA.original.userInfo.username.localeCompare(rowB.original.userInfo.username);\n\t\t\t\t\t},\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInfoWithClerkData } }) => {\n\t\t\t\t\t\tconst { username } = row.original.userInfo;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{username}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Last active at',\n\t\t\t\t\taccessorKey: 'lastActiveAt',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.UserInfoWithClerkData } }) => {\n\t\t\t\t\t\tconst { lastActiveAt } = row.original;\n\t\t\t\t\t\tif (!lastActiveAt) return 'N/A';\n\t\t\t\t\t\treturn fmt.toDate(lastActiveAt, { preset: 'full_date_with_time' });\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t]}\n\t\t/>\n\t);\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { SignUp, useAuth, useClerk } from '@clerk/clerk-react';\nimport type { ClerkAPIError } from '@clerk/types';\nimport { Link, Navigate, useNavigate, useSearchParams } from 'react-router-dom';\n\nimport { TFErrorTemplate, useSignInWithTicket } from '@tf/shared';\nimport { Anchor, Center, TFLoadingOverlay, TFText } from '@tf/ui';\nimport { S } from '@tf/utils';\n\ninterface ClerkAPIErrorResponse {\n\terrors: ClerkAPIError[];\n}\n\nconst clerkDefaultError: ClerkAPIError = {\n\tcode: 'unknown invitation error',\n\tmessage: 'Error accepting invitation',\n\tlongMessage: 'Try to sign in or ask your administrator to send an invitation again',\n};\n\nexport const AcceptInvitationRoute: React.FC = () => {\n\tconst [params] = useSearchParams();\n\tconst clerkStatus = params.get('__clerk_status');\n\tconst clerkTicket = params.get('__clerk_ticket');\n\n\tconst [state, setState] = useState<'sign_in' | 'sign_up' | 'complete' | ClerkAPIError>(\n\t\t!!clerkTicket &&\n\t\t\t(clerkStatus === 'sign_in' || clerkStatus === 'sign_up' || clerkStatus === 'complete')\n\t\t\t? clerkStatus\n\t\t\t: clerkDefaultError\n\t);\n\n\tconst navigate = useNavigate();\n\tconst signInWithTicket = useSignInWithTicket();\n\tconst { signOut } = useClerk();\n\tconst { isSignedIn } = useAuth();\n\n\tuseEffect(() => {\n\t\tconst logout = async () => {\n\t\t\tif (isSignedIn) {\n\t\t\t\tawait signOut({ redirectUrl: window.location.href });\n\t\t\t}\n\t\t};\n\t\tlogout();\n\t}, [isSignedIn]);\n\n\tuseEffect(() => {\n\t\tif (!clerkTicket || state !== 'sign_in' || !signInWithTicket) {\n\t\t\treturn;\n\t\t}\n\n\t\tsignInWithTicket(clerkTicket)\n\t\t\t.then(() => {\n\t\t\t\tnavigate('/');\n\t\t\t})\n\t\t\t.catch((data: ClerkAPIErrorResponse) => {\n\t\t\t\tconst error = data.errors[0] ?? clerkDefaultError;\n\n\t\t\t\tif (error?.code === 'organization_invitation_already_accepted') {\n\t\t\t\t\tsetState('sign_in');\n\t\t\t\t\tnavigate('/sign-in');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetState(error);\n\t\t\t});\n\t}, [clerkTicket, navigate, signInWithTicket, state]);\n\n\tif (state === 'sign_in' || isSignedIn) {\n\t\treturn ;\n\t}\n\n\tif (state === 'sign_up') {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n\n\t// temporary Clerk invitations fix\n\tif (state === 'complete') {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tError code: {state.code}\n\t\t\t\n\t\t\t\n\t\t\t\tGo to Sign in\n\t\t\t\n\t\t\n\t);\n};\n","import { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { AccountTable } from '@/components/accounts';\nimport { AddAccountButton } from '@/components/shared';\n\nconst AccountListRoute = () => {\n\tconst canEditAccounts = useCurrentUserCapabilityCheck(UserCapabilities.CAN_PREPARE_ACCOUNTS_DATA);\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\treturn (\n\t\t<>\n\t\t\t} />\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default AccountListRoute;\n","import React from 'react';\n\nimport { Outlet, useLocation, useNavigate } from 'react-router-dom';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Box, createStyles, Tabs } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\n\nconst TABS = [\n\t{ href: '/settings/cra', title: 'CRA settings' },\n\t{ href: '/settings/cra/auto-assigned', title: 'Auto-assigned settings' },\n] as const;\n\nconst useStyles = createStyles(({ colors }) => ({\n\ttabs: {\n\t\tmarginTop: '-.75rem',\n\t},\n\ttabsList: {\n\t\tborderBottomWidth: 1,\n\t\tborderColor: colors.gray[2],\n\t\tborderBottomStyle: 'solid',\n\t},\n\ttab: {\n\t\tdisplay: 'flex',\n\t\tgap: '.35rem',\n\t},\n}));\n\nexport const CRASettingsLayout: React.FC = () => {\n\tconst { classes } = useStyles();\n\n\tconst navigate = useNavigate();\n\tconst { pathname } = useLocation();\n\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\tconst canManageUsers = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_USERS);\n\n\treturn (\n\t\t<>\n\t\t\t t.href === pathname) ?? TABS[0],\n\t\t\t\t]}\n\t\t\t/>\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\tnavigate(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tstyles={({ colors }) => ({\n\t\t\t\t\t\troot: { flexGrow: 1, borderBottomWidth: 2 },\n\t\t\t\t\t\ttab: {\n\t\t\t\t\t\t\tpadding: '.65rem 1rem',\n\t\t\t\t\t\t\tborderBottomWidth: 1.5,\n\t\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\t\t\"&[data-active='true']\": {\n\t\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\t\t\tbackgroundColor: colors.brand[0],\n\t\t\t\t\t\t\t\tborderBottom: `1.5px solid ${colors.brand[6]}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlist: { borderBottom: `1px solid ${colors.gray[2]}` },\n\t\t\t\t\t})}\n\t\t\t\t\tclassName={classes.tabs}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{TABS.map(({ href, title }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\t\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);\n};\n","import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport type { BackendTypes } from '@tf/api';\nimport { BackendClient } from '@tf/api';\n\nconst accountsExportHistoryOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['dataExport'],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst res = await BackendClient.getInstance().listAccountsExport();\n\t\t\treturn res.json();\n\t\t},\n\t});\n};\n\nexport const useAccountsExportHistoryQuery = () => {\n\treturn useQuery(accountsExportHistoryOptions());\n};\n\nexport const useOrderAccountsExportMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async (): Promise => {\n\t\t\treturn await BackendClient.getInstance().orderAccountsExport();\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries(accountsExportHistoryOptions());\n\t\t},\n\t});\n};\n\nexport const useDownloadAccountsExportMutation = () => {\n\treturn useMutation({\n\t\tmutationFn: async ({ jobId }: { jobId: BackendTypes.JobId }) => {\n\t\t\tconst res = await BackendClient.getInstance().downloadAccountsExport(jobId);\n\t\t\treturn res.arrayBuffer();\n\t\t},\n\t});\n};\n","import React from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Button, TFDataTable, TFLoadingOverlay, TFNotifier } from '@tf/ui';\nimport { fmt, S, saveFile } from '@tf/utils';\n\nimport { useAccountsExportHistoryQuery, useDownloadAccountsExportMutation } from '@/core/api/dataExport';\n\nconst statusesMap: Record = {\n\tSUSPENDED: 'File ready',\n\tACTIVE: 'Processing, might take a few mins',\n};\n\nexport const ExportHistoryTable: React.FC = () => {\n\tconst exportHistoryQuery = useAccountsExportHistoryQuery();\n\n\tconst downloadAccountsExportMutation = useDownloadAccountsExportMutation();\n\tconst downloadResult = (item: BackendTypes.AccountsExport) => {\n\t\tdownloadAccountsExportMutation.mutate(\n\t\t\t{ jobId: item.key },\n\t\t\t{\n\t\t\t\tonSuccess: (file) => {\n\t\t\t\t\tsaveFile(\n\t\t\t\t\t\tfile,\n\t\t\t\t\t\t`${item.result?.filename}` ??\n\t\t\t\t\t\t\t`Data Export of ${fmt.toDate(item.createdAt, { preset: 'full_date' })}.xlsx`\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonError: () => {\n\t\t\t\t\tTFNotifier.error('Failed to download file');\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\tif (exportHistoryQuery.error) {\n\t\treturn
Error, please try again
;\n\t}\n\n\tif (exportHistoryQuery.data) {\n\t\treturn (\n\t\t\t\n\t\t\t\thideSearchbar\n\t\t\t\tname=\"export-history\"\n\t\t\t\tdata={exportHistoryQuery.data}\n\t\t\t\tdefs={[\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Date',\n\t\t\t\t\t\taccessorKey: 'createdAt',\n\t\t\t\t\t\tenableSorting: true,\n\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\treturn fmt.toDate(row.original.createdAt, { preset: 'full_date_with_time' });\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Status',\n\t\t\t\t\t\taccessorKey: 'status',\n\t\t\t\t\t\tenableSorting: true,\n\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\treturn statusesMap[row.original.status] ?? S.prettify(row.original.status);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Result',\n\t\t\t\t\t\taccessorKey: 'result',\n\t\t\t\t\t\tenableSorting: true,\n\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\tCell: ({ row }) => {\n\t\t\t\t\t\t\tif (!row.original.result) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t downloadResult(row.original)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tDownload\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\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}\n\n\treturn ;\n};\n","import React from 'react';\n\nimport { Button, TFModals } from '@tf/ui';\n\nimport { useOrderAccountsExportMutation } from '@/core/api/dataExport';\nimport { ConfirmationModal } from '@/components/shared';\n\nexport const OrderExportButton: React.FC = () => {\n\tconst orderAccountsExportMutation = useOrderAccountsExportMutation();\n\n\tconst orderExport = () => {\n\t\tTFModals.open({\n\t\t\tchildren: (\n\t\t\t\t\n\t\t\t),\n\t\t});\n\t};\n\n\treturn ;\n};\n","import React from 'react';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Alert, Box, createStyles } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { ExportHistoryTable, OrderExportButton } from '@/components/data-export';\n\nconst useStyles = createStyles(() => ({\n\talert: {\n\t\tbackgroundColor: '#F1F3F5',\n\t\tborderColor: '#F1F3F5',\n\t\tborderRadius: '8px',\n\t\tcolor: '#1A1B1E',\n\t\tmarginBottom: '0.75rem',\n\t},\n\ttextContainer: {\n\t\tmaxWidth: '800px',\n\t\tcolor: '#475467',\n\t\tfontWeight: 400,\n\t\tfontSize: '14px',\n\t},\n}));\nexport const DataExportRoute: React.FC = () => {\n\tconst tenant = appStore.tenant?.get();\n\tconst { classes } = useStyles();\n\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\treturn (\n\t\t<>\n\t\t\t} />\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tKey data for all active accounts will be exported and available to download as a .XLSX file.\n\t\t\t\t\t\tPlease note the file will not contain information on any related entities (such as directors\n\t\t\t\t\t\tand shareholders, if applicable), nor account opening documentation, nor ownership\n\t\t\t\t\t\tstructures.\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Link } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tcreateStyles,\n\tEntityBadge,\n\tFlex,\n\tTFDataTable,\n\tTFText,\n\tTooltip,\n\tUnstyledButton,\n\tuseLocalStorage,\n} from '@tf/ui';\nimport { fmt, S } from '@tf/utils';\n\nimport { useEntities } from '@/core/api/entities';\nimport { useGetEntityLabel } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\n\nconst useStyles = createStyles(({ colors }) => ({\n\tentityName: {\n\t\tfontSize: 13,\n\t\theight: 32,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.brand[6],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\nconst filtersNamesMap: Record = {\n\tkind: 'accountType',\n\t'values.accountStatus': 'accountStatus',\n\tverification: 'verificationStatus',\n\timportance: 'priority',\n};\n\nconst sortingNamesMap: Record = {\n\tname: 'ENTITY_NAME',\n\tkind: 'ENTITY_TYPE',\n\tcreatedAt: 'CREATED_AT',\n};\n\nexport const EntitiesTable = () => {\n\tconst { classes } = useStyles();\n\tconst entityKinds = useSelector(() => appStore.defs.options['EntityKind'].get());\n\tconst getEntityLabel = useGetEntityLabel();\n\n\tconst [pagination, setPagination] = useState({ pageSize: 10, pageIndex: 0 });\n\n\tconst [filtersState, setFiltersState] = useLocalStorage<\n\t\t{\n\t\t\tid: string;\n\t\t\tvalue: unknown;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [],\n\t\tkey: 'entities-table-filters',\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst [sortingState, setSortingState] = useLocalStorage<\n\t\t{\n\t\t\tdesc: boolean;\n\t\t\tid: string;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [{ desc: true, id: 'ENTITY_NAME' }],\n\t\tkey: 'entities-table-sorting',\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst sortingParams =\n\t\tsortingState.length > 0\n\t\t\t? {\n\t\t\t\t\tsortBy: sortingNamesMap[sortingState[0].id] as\n\t\t\t\t\t\t| BackendTypes.EntityObserverItemSortBy\n\t\t\t\t\t\t| undefined,\n\t\t\t\t\tsortOrder: sortingState[0].desc ? 'DESC' : ('ASC' as BackendTypes.EntityObserverItemSortOrder),\n\t\t\t }\n\t\t\t: undefined;\n\n\tconst filteringParams = filtersState.reduce>((acc, curr) => {\n\t\tacc[filtersNamesMap[curr.id]] = curr.value;\n\t\treturn acc;\n\t}, {});\n\n\tconst { data: entities, isPending } = useEntities({\n\t\tpage: pagination.pageIndex + 1,\n\t\tlimit: pagination.pageSize,\n\t\t...filteringParams,\n\t\t...sortingParams,\n\t});\n\n\treturn (\n\t\t\n\t\t\tname=\"entites-list\"\n\t\t\tisLoading={isPending}\n\t\t\tserverSorting={{\n\t\t\t\tonSortingChange: setSortingState,\n\t\t\t\tstate: sortingState,\n\t\t\t}}\n\t\t\tserverFiltering={{\n\t\t\t\tonFiltersChange: setFiltersState,\n\t\t\t\tstate: filtersState,\n\t\t\t}}\n\t\t\tserverPagination={\n\t\t\t\tentities\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...pagination,\n\t\t\t\t\t\t\trowCount: entities.count,\n\t\t\t\t\t\t\tonPaginationChange: setPagination,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tdata={entities?.items ?? []}\n\t\t\tdefs={[\n\t\t\t\t{\n\t\t\t\t\theader: 'Entity name',\n\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\tsize: 200,\n\t\t\t\t\tCell: ({ cell }) => {\n\t\t\t\t\t\tconst { graphNodeId, name } = cell.row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{name || 'N/A'}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Entity type',\n\t\t\t\t\taccessorKey: 'entityKind',\n\t\t\t\t\tCell: ({ cell }) => {\n\t\t\t\t\t\tconst { entityKind } = cell.row.original;\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Entity status',\n\t\t\t\t\taccessorKey: 'connectionStatus',\n\t\t\t\t\tenableSorting: false,\n\t\t\t\t\taccessorFn: (item) => S.prettify(item.connectionStatus || ''),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Date created',\n\t\t\t\t\taccessorKey: 'createdAt',\n\t\t\t\t\taccessorFn: (item) => fmt.toDate(item.createdAt, { preset: 'full_date_with_time' }),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Relations',\n\t\t\t\t\taccessorKey: 'relations',\n\t\t\t\t\tenableSorting: false,\n\t\t\t\t\tCell: ({ cell }) => {\n\t\t\t\t\t\tconst { relations } = cell.row.original;\n\t\t\t\t\t\tif (relations.length === 0) {\n\t\t\t\t\t\t\treturn None;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (relations.length === 1) {\n\t\t\t\t\t\t\treturn {relations[0].name};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{relations[0].name}\n\t\t\t\t\t\t\t\t r.name).join(', ')} position=\"top\" withArrow>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tand more\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\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\tavailableFilters={[\n\t\t\t\t{\n\t\t\t\t\tname: 'connectionStatus',\n\t\t\t\t\tlabel: 'Entity status',\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tvalue: [\n\t\t\t\t\t\t{ value: 'ACTIVE', label: 'Active' },\n\t\t\t\t\t\t{ value: 'INACTIVE', label: 'Inactive' },\n\t\t\t\t\t\t{ value: 'ARCHIVED', label: 'Archived' },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'entityKind',\n\t\t\t\t\tlabel: 'Entity type',\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tvalue: entityKinds,\n\t\t\t\t},\n\t\t\t]}\n\t\t/>\n\t);\n};\n","import React, { useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Link, useParams } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport {\n\tBox,\n\tcreateStyles,\n\tTFDataTable,\n\tTFText,\n\tUnstyledButton,\n\tuseDebouncedValue,\n\tuseLocalStorage,\n} from '@tf/ui';\nimport { fmt, S } from '@tf/utils';\n\nimport { useEntityAssociations } from '@/core/api/entities';\nimport { useOverviewData } from '@/core/api/overview';\nimport { appStore } from '@/core/stores';\nimport { getDisplayName } from '@/core/utils';\nimport {\n\tAssignedManagersView,\n\tHiddenAccountsNotice,\n\tPriorityView,\n\tReviewState,\n} from '@/components/shared';\nimport { getAccountsFilters } from '@/components/utils';\n\nconst useStyles = createStyles(({ colors }) => ({\n\taccountName: {\n\t\tfontSize: 13,\n\t\theight: 30,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.gray[9],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\nconst filtersNamesMap: Record = {\n\tkind: 'accountType',\n\t'values.accountStatus': 'accountStatus',\n\tverificationStatus: 'verificationStatus',\n\taccountStatus: 'accountStatus',\n\timportance: 'priority',\n};\n\nconst sortingNamesMap: Record = {\n\tname: 'ACCOUNT_NAME',\n\tkind: 'ACCOUNT_TYPE',\n\t'values.accountStatus': 'ACCOUNT_STATUS',\n\tverificationStatus: 'VERIFICATION_STATUS',\n\taccountStatus: 'ACCOUNT_STATUS',\n\timportance: 'PRIORITY',\n\t'values.nextKycReviewDate': 'KYC_VIEW',\n};\n\nexport const EntityRelationsTable = () => {\n\tconst { classes } = useStyles();\n\tconst params = useParams<{ entityId: string }>();\n\tconst entityId = Number(params.entityId);\n\n\tconst [pagination, setPagination] = useState({ pageSize: 10, pageIndex: 0 });\n\n\tconst [searchValue, setSearchValue] = useLocalStorage({\n\t\tdefaultValue: '',\n\t\tkey: 'entity-relations-table-search',\n\t\tgetInitialValueInEffect: false,\n\t});\n\tconst [debouncedSearch] = useDebouncedValue(searchValue, 500);\n\n\tconst [filtersState, setFiltersState] = useLocalStorage<\n\t\t{\n\t\t\tid: string;\n\t\t\tvalue: unknown;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [],\n\t\tkey: 'entity-relations-table-filters',\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst [sortingState, setSortingState] = useLocalStorage<\n\t\t{\n\t\t\tdesc: boolean;\n\t\t\tid: string;\n\t\t}[]\n\t>({\n\t\tdefaultValue: [{ desc: true, id: 'ACCOUNT_NAME' }],\n\t\tkey: 'entity-relations-table-sorting',\n\t\tgetInitialValueInEffect: false,\n\t});\n\n\tconst sortingParams =\n\t\tsortingState.length > 0\n\t\t\t? {\n\t\t\t\t\tsortBy: sortingNamesMap[sortingState[0].id] as BackendTypes.OverviewSortBy | undefined,\n\t\t\t\t\tsortOrder: sortingState[0].desc ? 'DESC' : ('ASC' as BackendTypes.OverviewSortOrder),\n\t\t\t }\n\t\t\t: undefined;\n\n\tconst filteringParams = filtersState.reduce>((acc, curr) => {\n\t\tacc[filtersNamesMap[curr.id]] = curr.value;\n\t\treturn acc;\n\t}, {});\n\n\tconst { data, isPending } = useEntityAssociations({\n\t\tentityId,\n\t\tpage: pagination.pageIndex + 1,\n\t\tlimit: pagination.pageSize,\n\t\tquery: debouncedSearch,\n\t\t...filteringParams,\n\t\t...sortingParams,\n\t});\n\n\tconst { data: overviewData } = useOverviewData();\n\tconst listUsers = overviewData?.listUsers ?? [];\n\n\tconst accountKinds = useSelector(() => appStore.defs.options['AccountKind'].get());\n\tconst hasArchivedStatusMessage = Boolean(\n\t\t!filtersState.find((f) => f.value === 'ARCHIVED') && !!debouncedSearch\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\tname=\"entity-relations-list\"\n\t\t\t\tisLoading={isPending}\n\t\t\t\tnoDataText={\n\t\t\t\t\thasArchivedStatusMessage ? (\n\t\t\t\t\t\t setFiltersState([{ id: 'values.accountStatus', value: 'ARCHIVED' }])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\tdata={data?.accounts.items ?? []}\n\t\t\t\tserverSorting={{\n\t\t\t\t\tonSortingChange: setSortingState,\n\t\t\t\t\tstate: sortingState,\n\t\t\t\t}}\n\t\t\t\tserverSearch={{\n\t\t\t\t\tstate: searchValue,\n\t\t\t\t\tonSearchChange: setSearchValue,\n\t\t\t\t}}\n\t\t\t\tserverFiltering={{\n\t\t\t\t\tonFiltersChange: setFiltersState,\n\t\t\t\t\tstate: filtersState,\n\t\t\t\t}}\n\t\t\t\tserverPagination={\n\t\t\t\t\tdata\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...pagination,\n\t\t\t\t\t\t\t\trowCount: data.accounts.count,\n\t\t\t\t\t\t\t\tonPaginationChange: setPagination,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tdefs={[\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account name',\n\t\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst { nodeId, name } = row.original;\n\t\t\t\t\t\t\treturn (\n\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\t{name || 'N/A'}\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);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account type',\n\t\t\t\t\t\taccessorKey: 'kind',\n\t\t\t\t\t\tCell: ({ cell }) => {\n\t\t\t\t\t\t\tconst nextKind = accountKinds?.find((a: { value: string }) => a.value === cell.getValue());\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{nextKind?.label || 'Not defined'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Account status',\n\t\t\t\t\t\taccessorKey: 'accountStatus',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst status = row.original.values?.accountStatus;\n\t\t\t\t\t\t\treturn status ? (\n\t\t\t\t\t\t\t\t{S.prettify(status)}\n\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\tNot defined\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Verification status',\n\t\t\t\t\t\taccessorKey: 'verificationStatus',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Assigned managers',\n\t\t\t\t\t\taccessorKey: 'assignedManagers',\n\t\t\t\t\t\tenableSorting: false,\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Priority',\n\t\t\t\t\t\taccessorKey: 'importance',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: 'Next KYC review',\n\t\t\t\t\t\taccessorKey: 'values.nextKycReviewDate',\n\t\t\t\t\t\tCell: ({ row }: { row: { original: BackendTypes.OverviewAccount } }) => {\n\t\t\t\t\t\t\tconst date: string | undefined = row.original.values.nextKycReviewDate;\n\t\t\t\t\t\t\treturn date ? (\n\t\t\t\t\t\t\t\t{fmt.toDate(date, { preset: 'full_date' })}\n\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\tNot defined\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t\tavailableFilters={getAccountsFilters(listUsers, accountKinds)}\n\t\t\t/>\n\t\t\t\n\t\t\t\t{hasArchivedStatusMessage && Boolean(data?.accounts.items.length) && (\n\t\t\t\t\t setFiltersState([{ id: 'values.accountStatus', value: 'ARCHIVED' }])}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n","import { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { EntitiesTable } from '@/components/entities';\n\nexport const EntityListRoute = () => {\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { Outlet } from \"react-router-dom\";\n\nconst InstantCheckRoute = () => {\n\n\treturn (\n\t\t\n\t)\n};\n\nexport default InstantCheckRoute;\n","import React from 'react';\n\nimport * as Sentry from '@sentry/react';\nimport { Link, Outlet, useLocation } from 'react-router-dom';\n\nimport { TFPageContent } from '@tf/shared';\nimport { Anchor, Stack, TFText } from '@tf/ui';\n\nimport { useAccountParams } from '@/core/hooks';\nimport { AccountHeader, AccountPathResolver, AccountProvider } from '@/components/accounts';\n\nconst AccountCardError: React.FC = ({ children }) => {\n\tconst location = useLocation();\n\tconst { accountId } = useAccountParams();\n\n\treturn (\n\t\t {\n\t\t\t\tscope.setTag('location', 'accountCard');\n\t\t\t}}\n\t\t\tfallback={\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAn unexpected error occurred on this page. If this issue persists or you need immediate\n\t\t\t\t\t\t\tassistance, feel free to reach out to our support team.\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tGo to account page\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\t\t{children}\n\t\t\n\t);\n};\n\nexport const AccountCardLayout = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport { Box, Checkbox, Modal, Stack, TFText } from '@tf/ui';\n\nimport { useReviewDecisionMutation } from '@/core/api/reviewDecision';\nimport { useAccountParams } from '@/core/hooks';\nimport { ModalFooter } from '@/components/shared';\n\ninterface Props {\n\tgraphId: number;\n\tforms: ExtendedFormDefinition[];\n\tisOpened: boolean;\n\tonClose: () => void;\n}\n\nconst stepTitle = {\n\tSELECT: 'Select forms',\n\tCONFIRM: 'Action confirmation',\n};\n\nexport const BulkReviewModal: React.FC = ({ graphId, forms, isOpened, onClose }) => {\n\tconst initialForms = forms.reduce((formSelection, form) => {\n\t\treturn { ...formSelection, [form.name]: false };\n\t}, {} as Record);\n\n\tconst [step, setStep] = useState<'SELECT' | 'CONFIRM'>('SELECT');\n\tconst [formsState, setFormsState] = useState>(initialForms);\n\n\tconst closeModal = () => {\n\t\tsetStep('SELECT');\n\t\tsetFormsState(initialForms);\n\t\tonClose();\n\t};\n\n\tconst toggleForm = (formName: string) => {\n\t\tsetFormsState((prevForms) => {\n\t\t\treturn { ...prevForms, [formName]: !prevForms[formName] };\n\t\t});\n\t};\n\n\tconst isFormSelected = (formName: string) => formsState[formName];\n\n\tconst { accountId, connectionId, formKind } = useAccountParams();\n\tconst { mutateAsync } = useReviewDecisionMutation();\n\n\tconst handleSubmit = async () => {\n\t\tconst segmentsToApprove = forms\n\t\t\t.filter((form) => isFormSelected(form.name))\n\t\t\t.flatMap((form) => form.segmentIdentities);\n\n\t\tawait mutateAsync({\n\t\t\taccountId,\n\t\t\tconnectionId,\n\t\t\tgraphId,\n\t\t\tformKind,\n\t\t\tsegmentIdentities: segmentsToApprove,\n\t\t\tstatus: 'ACCEPTED',\n\t\t});\n\n\t\tcloseModal();\n\t};\n\n\tconst isAnyFormSelected = forms.some((form) => isFormSelected(form.name));\n\n\treturn (\n\t\t\n\t\t\t{step === 'SELECT' ? (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\tSelect forms you'd like to approve:\n\t\t\t\t\t\t{forms.map((form) => (\n\t\t\t\t\t\t\t toggleForm(form.name)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\n\t\t\t\t\t setStep('CONFIRM')}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) : null}\n\n\t\t\t{step === 'CONFIRM' ? (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\tPlease confirm you'd like to approve all selected forms\n\t\t\t\t\t\n\n\t\t\t\t\t setStep('SELECT')} onSubmit={handleSubmit} />\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};\n","import React, { useState } from 'react';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport { getFormStatuses, isFormDecisionRequired } from '@tf/shared';\nimport { Box, Button } from '@tf/ui';\n\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\n\nimport { BulkReviewModal } from './BulkReviewModal';\n\ninterface Props {\n\tgraphId: number;\n\treview: ExtendedReviewContainer;\n\tforms: ExtendedFormDefinition[];\n}\n\nexport const BulkReviewButton: React.FC = ({ graphId, review, forms }) => {\n\tconst [isOpened, setIsOpened] = useState(false);\n\tconst toggleIsOpened = () => setIsOpened(!isOpened);\n\n\tconst canReviewAccounts = useCurrentUserCapabilityCheck(UserCapabilities.CAN_REVIEW_ACCOUNTS_DATA);\n\n\tconst formsToReview = forms.filter((form) => isFormDecisionRequired(form.segmentIdentities, review));\n\n\tconst hasFormsToApprove = formsToReview.some((form) => {\n\t\tconst status = getFormStatuses({\n\t\t\tcontainers: review.listSegmentReviewContainers,\n\t\t\tsegmentIdentities: form.segmentIdentities,\n\t\t});\n\n\t\treturn status.review !== 'ACCEPTED';\n\t});\n\n\tif (!canReviewAccounts || review.state === 'DRAFT' || !hasFormsToApprove) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport { extractForms, getFormHash, getFormStatuses, isFormDecisionRequired } from '@tf/shared';\nimport { Box, Stack } from '@tf/ui';\n\nimport { useAccountParams } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport { useNavigateToEntity } from '@/core/utils/routes';\nimport {\n\tEntityConnections,\n\tEntityKindIcon,\n\tFormStatusIndicator,\n\tSideMenu,\n\tSideMenuItem,\n} from '@/components/shared';\nimport { BulkReviewButton } from '@/components/shared/BulkReviewButton';\n\ninterface Props {\n\tentity: BackendTypes.Entity;\n\treview: ExtendedReviewContainer;\n}\n\nexport const AccountEntityWidget: React.FC = ({ review, entity }) => {\n\tconst navigate = useNavigate();\n\tconst params = useAccountParams();\n\tconst { navigateToEntity, getEntityPath } = useNavigateToEntity();\n\tconst name = review.listEntities.find((e) => e.graphNodeId === entity.graphNodeId)?.name || 'Unknown';\n\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\tconst forms = extractForms({\n\t\tformDefs,\n\t\tsegmentIdentities: entity.listSegments.map((s) => s.SegmentIdentity),\n\t});\n\n\tconst navigateToForm = (form: ExtendedFormDefinition) => {\n\t\twindow.scrollTo(0, 0);\n\t\tconst hash = getFormHash(form);\n\t\treturn navigate(\n\t\t\t`${getEntityPath(review.graphLinkId, review.connectionKind, entity.graphNodeId)}/${\n\t\t\t\tform.name\n\t\t\t}?hash=${hash}`\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t}\n\t\t\t\t\tonClick={() => navigateToEntity(review.graphLinkId, review.connectionKind, entity.graphNodeId)}\n\t\t\t\t/>\n\n\t\t\t\t{forms.map((form) => {\n\t\t\t\t\tconst key = `${review.graphLinkId}.${form.name}` as const;\n\t\t\t\t\tconst status = getFormStatuses({\n\t\t\t\t\t\tcontainers: review.listSegmentReviewContainers,\n\t\t\t\t\t\tsegmentIdentities: form.segmentIdentities,\n\t\t\t\t\t});\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={() => navigateToForm(form)}\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\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useAccountParams, useSelectedAccount } from '@/core/hooks';\n\nimport { AccountEntityWidget } from './AccountEntityWidget';\n\nexport const Menu = () => {\n\tconst { reviews } = useSelectedAccount();\n\tconst { connectionId, entityId } = useAccountParams();\n\n\tconst review = reviews.find((r) => r.graphLinkId === connectionId);\n\tconst entity = review?.listEntities.find((e) => e.graphNodeId === entityId);\n\tif (!entity || !review) {\n\t\tthrow new Error('Entity not found');\n\t}\n\n\treturn ;\n};\n","import React, { useState } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Outlet } from 'react-router-dom';\n\nimport { Box, Tabs } from '@tf/ui';\n\nimport { configStore } from '@/core/stores';\nimport { EntityRelationsTable } from '@/components/entities/EntityRelationsTable';\nimport { SideMenuLayout } from '@/components/shared';\n\nimport { Menu } from './Menu';\n\nconst TABS = {\n\tentity: 'Entity',\n\trelations: 'Relations',\n};\n\nexport const AccountEntityLayout = () => {\n\tconst [active, setActiveTab] = useState('entity');\n\tconst config = useSelector(() => configStore.get());\n\tconst withEntityObserver = Boolean(Number(config.feature_flags?.['entity_observer']));\n\treturn (\n\t\t<>\n\t\t\t ({ maxWidth: breakpoints.xl, margin: '0 auto' })}>\n\t\t\t\t ({\n\t\t\t\t\t\ttab: {\n\t\t\t\t\t\t\tpadding: '.65rem 1rem',\n\t\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\t\t\"&[data-active='true']\": {\n\t\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\t\t\tbackgroundColor: colors.brand[0],\n\t\t\t\t\t\t\t\tborderBottom: `1.5px solid ${colors.brand[6]}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlist: { borderBottom: `1px solid ${colors.gray[2]}` },\n\t\t\t\t\t})}\n\t\t\t\t\tonChange={(value) => {\n\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\tsetActiveTab(value);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{withEntityObserver && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{Object.entries(TABS).map(([value, label]) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{label}\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})}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\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);\n};\n","import { Box, createStyles, TFText } from '@tf/ui';\n\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport { getLabel } from '@/core/utils';\nimport { ReviewTransitionButton } from '@/components/reviews';\n\ninterface Props {\n\treview: ExtendedReviewContainer;\n}\n\nconst useStyles = createStyles(({ colors }) => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'default',\n\t\tuserSelect: 'none',\n\t\tfontWeight: 500,\n\t\tfontSize: '0.8rem',\n\t\tpadding: '.5rem .25rem .5rem 1.25rem',\n\t\tcolor: colors.gray[5],\n\t\t'&[data-state=\"DRAFT\"]': {\n\t\t\tcolor: colors.gray[6],\n\t\t\tbackgroundColor: colors.gray[1],\n\t\t},\n\t\t'&[data-state=\"READY_TO_REVIEW\"]': {\n\t\t\tcolor: colors.brand[4],\n\t\t\tbackgroundColor: colors.brand[0],\n\t\t},\n\t\t'&[data-state=\"UPDATE_REQUIRED\"]': {\n\t\t\tcolor: colors.red[6],\n\t\t\tbackgroundColor: colors.red[0],\n\t\t},\n\t\t'&[data-state=\"VERIFIED\"]': {\n\t\t\tcolor: colors.green[8],\n\t\t\tbackgroundColor: colors.green[0],\n\t\t},\n\t},\n\tlabel: {\n\t\tflex: 1,\n\t},\n}));\n\nexport const MenuLabel: React.FC = ({ review }) => {\n\tconst { classes } = useStyles();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tStatus: {getLabel(review.state, { kind: 'reviewState' })}\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport {\n\textractForms,\n\tgetFormHash,\n\tgetFormStatuses,\n\tgetSegmentsForReview,\n\tisFormDecisionRequired,\n} from '@tf/shared';\nimport { Box, createStyles, Stack } from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport type { ExtendedReviewContainer } from '@/core/types';\nimport {\n\tAddConnectionButton,\n\tConnectionMenu,\n\tEntityConnections,\n\tEntityKindIcon,\n\tFormStatusIndicator,\n\tReviewGroupConnections,\n\tSideMenu,\n\tSideMenuItem,\n} from '@/components/shared';\nimport { BulkReviewButton } from '@/components/shared/BulkReviewButton';\n\nimport { MenuLabel } from './MenuLabel';\n\ninterface Props {\n\treviews: ExtendedReviewContainer[];\n}\n\nconst useStyles = createStyles(() => ({\n\troot: {\n\t\twidth: 280,\n\t\tmarginRight: '1rem',\n\t},\n\theader: {\n\t\toverflow: 'hidden',\n\t\tborderRadius: '8px 8px 0 0',\n\t},\n}));\n\nexport const Menu: React.FC = ({ reviews }) => {\n\tconst { classes } = useStyles();\n\tconst params = useAccountParams();\n\tconst account = useSelectedAccount();\n\tconst navigate = useNavigate();\n\tconst isApplicant = params.connectionKind === 'APPLICANT';\n\tconst currentReview = reviews.find((r) => r.connectionKind === params.connectionKind);\n\n\tconst basePath = ['/accounts', params.accountId, S.slugify(params.connectionKind)].join('/');\n\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\tconst navigateToForm = (\n\t\tform: ExtendedFormDefinition,\n\t\tconnectionId: number\n\t) => {\n\t\twindow.scrollTo(0, 0);\n\t\tconst hash = getFormHash(form);\n\t\treturn navigate(`${basePath}/${connectionId}/${form.name}?hash=${hash}`);\n\t};\n\tconst navigateToEntity = (connectionId: number, entityId: number) => {\n\t\twindow.scrollTo(0, 0);\n\t\treturn navigate(`${basePath}/${connectionId}/entity/${entityId}`);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{reviews.map((r) => {\n\t\t\t\tconst { connectionKind, graphLinkId } = r;\n\t\t\t\tconst rootEntity = r.listEntities.find((e) => e.graphNodeId === r.graphNodeId)!;\n\t\t\t\tconst segmentIdentities = getSegmentsForReview(account.meta, r).filter((c) => {\n\t\t\t\t\treturn [account.meta.graphNodeId, r.graphNodeId, r.graphLinkId].includes(c.graphId);\n\t\t\t\t});\n\t\t\t\tconst entityForms = extractForms({ formDefs, segmentIdentities });\n\n\t\t\t\t// * Segments on connections\n\t\t\t\tconst accountEntity = r.listEntities.find((e) => {\n\t\t\t\t\treturn e.graphNodeId === params.accountId;\n\t\t\t\t});\n\t\t\t\tconst accountEntityConnection = accountEntity?.listConnections.find((e) => {\n\t\t\t\t\treturn r.connectionKind === e.connectionKind;\n\t\t\t\t});\n\t\t\t\tconst rootFromEntity = accountEntityConnection?.listFromEntities.find((e) => {\n\t\t\t\t\treturn e.graphNodeId === r.graphNodeId && e.graphLinkId === r.graphLinkId;\n\t\t\t\t});\n\t\t\t\tconst connectionSegments = rootFromEntity?.listSegments.map((s) => s.SegmentIdentity) || [];\n\t\t\t\tconst connectionForms = extractForms({ formDefs, segmentIdentities: connectionSegments });\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t{isApplicant && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\t{isApplicant && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{entityForms.map((f) => {\n\t\t\t\t\t\t\t\t\t\tconst key = `${r.graphLinkId}.${f.name}` as const;\n\t\t\t\t\t\t\t\t\t\tconst status = getFormStatuses({\n\t\t\t\t\t\t\t\t\t\t\tcontainers: r.listSegmentReviewContainers,\n\t\t\t\t\t\t\t\t\t\t\tsegmentIdentities: f.segmentIdentities,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tconst selected =\n\t\t\t\t\t\t\t\t\t\t\tparams.formKind === f.name && params.searchParams.hash === getFormHash(f);\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t navigateToForm(f, r.graphLinkId)}\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={selected}\n\t\t\t\t\t\t\t\t\t\t\t\trightSection={\n\t\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}\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})}\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{!isApplicant && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t navigateToEntity(graphLinkId, rootEntity.graphNodeId)}\n\t\t\t\t\t\t\t\t\t\tleftSection={}\n\t\t\t\t\t\t\t\t\t\trightSection={\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\tdisabled={isApplicant}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{connectionForms.map((f) => {\n\t\t\t\t\t\t\t\t\t\tconst key = `${r.graphLinkId}.${f.name}` as const;\n\t\t\t\t\t\t\t\t\t\tconst status = getFormStatuses({\n\t\t\t\t\t\t\t\t\t\t\tcontainers: r.listSegmentReviewContainers,\n\t\t\t\t\t\t\t\t\t\t\tsegmentIdentities: f.segmentIdentities,\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tconst selected = params.formKind === f.name && r.graphLinkId === params.connectionId;\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t navigateToForm(f, r.graphLinkId)}\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={selected}\n\t\t\t\t\t\t\t\t\t\t\t\trightSection={\n\t\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}\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})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{/* Render internal connections */}\n\t\t\t\t\t\t{isApplicant && }\n\n\t\t\t\t\t\t{/*\tRender review group connections */}\n\t\t\t\t\t\t{isApplicant && }\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{!isApplicant && currentReview && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import { Outlet } from 'react-router-dom';\n\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\nimport { EmptyConnectionScreen, SideMenuLayout } from '@/components/shared';\n\nimport { Menu } from './Menu';\n\nexport const AccountReviewLayout = () => {\n\tconst account = useSelectedAccount();\n\tconst params = useAccountParams();\n\tconst reviews = account.reviews.filter((r) => r.connectionKind === params.connectionKind);\n\n\tif (reviews.length === 0) return ;\n\n\treturn (\n\t\t}>\n\t\t\t\n\t\t\n\t);\n};\n","import { Alert, Box, createStyles, TFText } from '@tf/ui';\n\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\n\nconst useStyles = createStyles(({ colors, breakpoints }) => ({\n\troot: {\n\t\tbackgroundColor: colors.gray[0],\n\t\tmargin: '.75rem auto',\n\t\tmaxWidth: breakpoints.xl,\n\t},\n\talert: {\n\t\tborderStyle: 'solid',\n\t\tborderWidth: 1,\n\t\tborderColor: colors.brand[1],\n\t},\n\ttext: {\n\t\tfontSize: '.8rem',\n\t},\n}));\n\nexport const AccountAlert = () => {\n\tconst { connectionKind } = useAccountParams();\n\tconst { reviews } = useSelectedAccount();\n\tconst { classes } = useStyles();\n\n\tconst isApplicant = connectionKind === 'APPLICANT';\n\n\tif (isApplicant) {\n\t\tconst applicant = Array.from(reviews.values()).find((r) => r.connectionKind === 'APPLICANT');\n\t\tconst isNotFilled = applicant?.listSegmentReviewContainers.some((c) => c.status === 'PENDING_FILL');\n\n\t\tif (isNotFilled && applicant?.state === 'DRAFT') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPlease fill in the following forms to complete the application.\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}\n\n\treturn null;\n};\n","import React from 'react';\n\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { Box, createStyles, Tabs } from '@tf/ui';\nimport { S } from '@tf/utils';\n\nimport { useClientCasesRequests } from '@/core/api/caseRequests';\nimport { useAccountParams, useEntityConnectionLabels, useSelectedAccount } from '@/core/hooks';\nimport { CounterBadge } from '@/components/shared';\n\ninterface RouteBinding {\n\tpath: string;\n\tlabel: string;\n\tcount?: number;\n}\n\nconst useStyles = createStyles(({ colors, breakpoints }) => ({\n\troot: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmaxWidth: breakpoints.xl,\n\t\tmargin: '0 auto',\n\t\tcolor: colors.gray[7],\n\t\tborderWidth: '0 0 1px 0',\n\t\tborderStyle: 'solid',\n\t\tborderColor: colors.gray[2],\n\t},\n\ttab: {\n\t\tdisplay: 'flex',\n\t\tgap: '.35rem',\n\t},\n}));\n\nexport const AccountTabs = () => {\n\tconst location = useLocation();\n\tconst navigate = useNavigate();\n\tconst { classes } = useStyles();\n\tconst { accountId } = useAccountParams();\n\tconst account = useSelectedAccount();\n\n\tconst connectionLabels = useEntityConnectionLabels(account.meta.entityKind);\n\n\tconst connections = account.meta.listConnections.filter((c) => c.isReview);\n\tconst path = `/${location.pathname.split('/').slice(3, 4).join('/')}`;\n\tconst { data: clientCases } = useClientCasesRequests(accountId);\n\n\tconst routeBindings: RouteBinding[] = [\n\t\t{\n\t\t\tpath: '/',\n\t\t\tlabel: 'Overview',\n\t\t},\n\t\t...(connections || [])\n\t\t\t// Sort by connectionKind to have same order in different locales\n\t\t\t.sort((a, b) => a.connectionKind.localeCompare(b.connectionKind))\n\t\t\t.map(({ connectionKind: kind }) => {\n\t\t\t\tconst count = account.reviews.filter((r) => r.connectionKind === kind).length;\n\n\t\t\t\treturn {\n\t\t\t\t\tpath: `/${S.slugify(kind)}`,\n\t\t\t\t\tlabel: connectionLabels[kind].plural,\n\t\t\t\t\tcount,\n\t\t\t\t};\n\t\t\t}),\n\t];\n\n\treturn (\n\t\t\n\t\t\t ({\n\t\t\t\t\troot: { flexGrow: 1 },\n\t\t\t\t\ttab: {\n\t\t\t\t\t\tpadding: '.65rem 1rem',\n\t\t\t\t\t\tborderBottomWidth: 1.5,\n\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\t\"&[data-active='true']\": {\n\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\t\tbackgroundColor: colors.brand[0],\n\t\t\t\t\t\t\tborderBottom: `1.5px solid ${colors.brand[6]}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tlist: { borderBottomWidth: 0 },\n\t\t\t\t})}\n\t\t\t\tonChange={(value) => navigate(`/accounts/${accountId}${value}`)}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{routeBindings.map(({ path, label, count }) => {\n\t\t\t\t\t\treturn (\n\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{label}\n\t\t\t\t\t\t\t\t\t{count ? : null}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCases\n\t\t\t\t\t\t\t{clientCases?.length ? : null}\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);\n};\n","import { Outlet } from 'react-router-dom';\n\nimport { TFPageContent } from '@tf/shared';\n\nimport { AccountAlert } from './AccountAlert';\nimport { AccountTabs } from './AccountTabs';\n\nexport const AccountTabsLayout = () => {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate, useParams } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport type { ExtendedFormDefinition } from '@tf/shared';\nimport { extractForms, getEntityFormStatus } from '@tf/shared';\nimport { Stack } from '@tf/ui';\n\nimport { appStore } from '@/core/stores';\nimport { EntityKindIcon, SideMenu, SideMenuItem } from '@/components/shared';\nimport { FormStatusIndicatorBase } from '@/components/shared/FormStatusIndicator';\n\ninterface Props {\n\tentity: BackendTypes.Entity;\n\tsegmentsReadData: BackendTypes.SegmentsReadData;\n}\n\nexport const EntityWidget: React.FC = ({ entity, segmentsReadData }) => {\n\tconst navigate = useNavigate();\n\tconst params = useParams<{ formKind: string }>();\n\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\tconst forms = extractForms({\n\t\tformDefs,\n\t\tsegmentIdentities: entity.listSegments.map((s) => s.SegmentIdentity),\n\t});\n\n\tconst navigateToForm = (form: ExtendedFormDefinition) => {\n\t\twindow.scrollTo(0, 0);\n\t\tnavigate(`/entities/${entity.graphNodeId}/${form.name}`);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t navigate(`/entities/${entity.graphNodeId}`)}\n\t\t\t\t\tlabel={entity.name}\n\t\t\t\t\tleftSection={}\n\t\t\t\t/>\n\n\t\t\t\t{forms.map((form) => {\n\t\t\t\t\tconst formStatus = getEntityFormStatus({\n\t\t\t\t\t\tsegmentsData: segmentsReadData,\n\t\t\t\t\t\tsegmentIdentities: form.segmentIdentities,\n\t\t\t\t\t});\n\t\t\t\t\treturn (\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={() => navigateToForm(form)}\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);\n};\n","import React from 'react';\n\nimport { Outlet, useParams, useSearchParams } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport { TFPageHeader } from '@tf/shared';\nimport { Box, EntityBadge, Tabs, TFLoadingOverlay } from '@tf/ui';\nimport type { FormSegment } from '@tf/utils';\n\nimport { useEntity } from '@/core/api/entities';\nimport { useSegmentsQuery } from '@/core/api/segments';\nimport { EntityRelationsTable } from '@/components/entities';\nimport { SideMenuLayout } from '@/components/shared';\n\nimport { EntityWidget } from './EntityWidget';\n\nconst TABS = {\n\tentity: 'Entity',\n\trelations: 'Relations',\n};\n\nexport const EntityLayout = () => {\n\tconst params = useParams<{ entityId: string }>();\n\tconst entityId = Number(params.entityId);\n\n\tconst [searchParams, setSearchParams] = useSearchParams();\n\tconst activeTab = searchParams.get('tab') || 'entity';\n\tconst { data: entity, isPending } = useEntity(entityId);\n\n\tconst formSegments: FormSegment[] =\n\t\tentity?.listSegments.map((s: BackendTypes.SegmentInfo) => ({\n\t\t\t...s.SegmentIdentity,\n\t\t\taccessMode: 'VIEW',\n\t\t})) ?? [];\n\n\tconst { data: segmentsReadData } = useSegmentsQuery(formSegments);\n\n\tif (isPending || !entity || !segmentsReadData) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t ({ maxWidth: breakpoints.xl, margin: '0 auto' })}>\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t ({\n\t\t\t\t\t\ttab: {\n\t\t\t\t\t\t\tpadding: '.65rem 1rem',\n\t\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\t\t\"&[data-active='true']\": {\n\t\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\t\t\tbackgroundColor: colors.brand[0],\n\t\t\t\t\t\t\t\tborderBottom: `1.5px solid ${colors.brand[6]}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlist: { borderBottom: `1px solid ${colors.gray[2]}` },\n\t\t\t\t\t})}\n\t\t\t\t\tonChange={(value) => {\n\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\tsetSearchParams({ tab: value });\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{Object.entries(TABS).map(([value, label]) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\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);\n};\n","import React, { useEffect } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate } from 'react-router-dom';\n\nimport { getResultHit, JobSearchResultCard, TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Box, Button, Icon } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { appStore, instantCheckStore } from '@/core/stores';\n\nconst InstantCheckHitsLayout = () => {\n\tconst navigate = useNavigate();\n\tconst { hits, selectedId } = useSelector(() => instantCheckStore.get());\n\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\tconst hit = (hits || [])[selectedId];\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\tuseEffect(() => {\n\t\tif (!hit) navigate('/instant-check');\n\t}, [hit]);\n\n\tconst onNewSearch = () => {\n\t\tinstantCheckStore.set((s) => ({ ...s, hits: null, selectedId: null }));\n\t\tnavigate('/instant-check');\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t} onClick={onNewSearch}>\n\t\t\t\t\t\tNew Search\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default InstantCheckHitsLayout;\n","import { useState } from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport type { BackendTypes } from '@tf/api';\nimport { Box, Button, createStyles, SegmentedControl, TFNotifier } from '@tf/ui';\nimport type { SubmitHandler } from '@tf/utils';\n\nimport { useProcessingScripts } from '@/core/hooks';\nimport { instantCheckQuery } from '@/core/queries';\nimport { instantCheckStore } from '@/core/stores';\nimport { AppFormBuilder } from '@/components/shared';\n\nenum AvailableEntities {\n\tPerson = 'ADHOC_SEARCH_PERSON_PARAMS',\n\tEntity = 'ADHOC_SEARCH_ENTITY_PARAMS',\n}\n\nconst availableEntities = [\n\t{ value: AvailableEntities.Person, label: 'Person' },\n\t{ value: AvailableEntities.Entity, label: 'Entity' },\n];\n\nconst useStyles = createStyles(() => ({\n\tsearchButtonWrapper: {\n\t\tmargin: '0.75rem',\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-end',\n\t\tjustifyContent: 'flex-end',\n\t},\n}));\n\nexport const InstantCheckSearchForm = () => {\n\tconst { classes } = useStyles();\n\tconst navigate = useNavigate();\n\tconst scripts = useProcessingScripts([AvailableEntities.Person, AvailableEntities.Entity]);\n\n\tconst [selectedKind, setSelectedKind] = useState(availableEntities[0].value);\n\tconst [isSearching, setIsSearching] = useState(false);\n\n\tconst handleSubmit: SubmitHandler = async ({ values }: any) => {\n\t\tconst instantCheckParams: BackendTypes.AdhocSearchParams = {};\n\n\t\tif (values[AvailableEntities.Person]) {\n\t\t\tconst person = values[AvailableEntities.Person].person;\n\t\t\tinstantCheckParams.person = person;\n\t\t\tinstantCheckStore.set((s) => ({ ...s, searchName: `${person.firstName} ${person.lastName}` }));\n\t\t}\n\n\t\tif (values[AvailableEntities.Entity]) {\n\t\t\tconst entity = values[AvailableEntities.Entity].entity;\n\t\t\tinstantCheckParams.entity = entity;\n\t\t\tinstantCheckStore.set((s) => ({ ...s, searchName: entity.entityName }));\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSearching(true);\n\t\t\tconst res = await instantCheckQuery(instantCheckParams);\n\t\t\tconst hits = (res.rawResponse as any).hits as any[];\n\t\t\tconst searchId = String(res.searchId);\n\t\t\tif (hits.length === 0) {\n\t\t\t\tTFNotifier.info('No results found');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinstantCheckStore.set((s) => ({ ...s, hits, searchId }));\n\t\t\tnavigate('/instant-check/hits');\n\t\t} catch (e) {\n\t\t\tTFNotifier.error('Could not perform instant check. Please try again later.');\n\t\t} finally {\n\t\t\tsetIsSearching(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t {\n\t\t\t\t\tsetSelectedKind(value as AvailableEntities);\n\t\t\t\t}}\n\t\t\t\tfullWidth\n\t\t\t\tdata={availableEntities.map((kind: any) => ({ value: kind.value, label: kind.label }))}\n\t\t\t\tm=\".75rem .75rem .5rem\"\n\t\t\t/>\n\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\tonSubmit={handleSubmit}\n\t\t\t/>\n\t\t\n\t);\n};\n","import type { BackendTypes } from '@tf/api';\nimport { Box, Center, createStyles, Stack, TFDataTable, TFText, Title, UnstyledButton } from '@tf/ui';\nimport { fmt, S } from '@tf/utils';\n\ninterface Props {\n\thits: BackendTypes.AdhocSearchResult['rawResponse'];\n\tonRowClick: (id: number) => void;\n}\n\nconst useStyles = createStyles(({ colors }) => ({\n\tfullName: {\n\t\tfontSize: 13,\n\t\theight: 30,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcolor: colors.gray[9],\n\t\t'&:hover': {\n\t\t\tcolor: colors.brand[6],\n\t\t\ttextDecoration: 'underline',\n\t\t},\n\t},\n}));\n\ninterface Hit {\n\tentityType: string;\n\tfullName: string;\n\tcountries: string[];\n\tdateOfBirth: string;\n}\n\nexport const InstantCheckTable: React.FC = ({ hits, onRowClick }) => {\n\tconst { classes } = useStyles();\n\n\tconst profiles = hits\n\t\t? // @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\t hits.map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\tentityType: item.doc.entity_type,\n\t\t\t\t\tfullName: item.doc.name,\n\t\t\t\t\tcountries: item.doc?.fields\n\t\t\t\t\t\t? item.doc?.fields.filter((i: any) => i.tag === 'country_names').map((i: any) => i.value)\n\t\t\t\t\t\t: [],\n\t\t\t\t\tdateOfBirth: item.doc?.fields\n\t\t\t\t\t\t? item.doc?.fields\n\t\t\t\t\t\t\t\t.filter((i: any) => i.tag === 'date_of_birth' && i.source === 'complyadvantage')\n\t\t\t\t\t\t\t\t.map((i: any) => i.value)\n\t\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t\t: '',\n\t\t\t\t};\n\t\t })\n\t\t: [];\n\n\treturn (\n\t\t<>\n\t\t\t{/* @ts-expect-error FIXME TS error is suppressed for migration, fix it later */}\n\t\t\t{hits?.length ? (\n\t\t\t\t\n\t\t\t\t\tname=\"Instant-Check-list\"\n\t\t\t\t\tdata={profiles}\n\t\t\t\t\tdefs={[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theader: 'Full name',\n\t\t\t\t\t\t\taccessorKey: 'fullName',\n\t\t\t\t\t\t\tenableSorting: true,\n\t\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\t\tCell: (info: { row: { original: Hit; id: string } }) => {\n\t\t\t\t\t\t\t\tconst { fullName } = info.row.original;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tonRowClick(parseInt(info.row.id));\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\t\n\t\t\t\t\t\t\t\t\t\t\t{fullName || 'N/A'}\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);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theader: 'Entity type',\n\t\t\t\t\t\t\taccessorKey: 'entityType',\n\t\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\t\tCell: (info: { row: { original: Hit } }) => {\n\t\t\t\t\t\t\t\tconst { entityType } = info.row.original;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{S.prettify(entityType) || 'N/A'}\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},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theader: 'Countries',\n\t\t\t\t\t\t\taccessorKey: 'countries',\n\t\t\t\t\t\t\tsize: 200,\n\t\t\t\t\t\t\tenableSorting: true,\n\t\t\t\t\t\t\tCell: (info: { row: { original: Hit } }) => {\n\t\t\t\t\t\t\t\tconst { countries } = info.row.original;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{countries && countries.length\n\t\t\t\t\t\t\t\t\t\t\t? countries.map((item: string, index: number) => (\n\t\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\t\t{item || 'N/A'}\n\t\t\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: 'N/A'}\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},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theader: 'Date of birth',\n\t\t\t\t\t\t\taccessorKey: 'dateOfBirth',\n\t\t\t\t\t\t\tsize: 100,\n\t\t\t\t\t\t\tCell: (info: { row: { original: Hit } }) => {\n\t\t\t\t\t\t\t\tconst { dateOfBirth } = info.row.original;\n\t\t\t\t\t\t\t\tif (dateOfBirth)\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{fmt.toDate(dateOfBirth, { preset: 'full_date' })}\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\telse\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tN/A\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},\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\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNo records found\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);\n};\n","import React, { useEffect } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useDownloadMonitoringSearchCertificateMutation } from '@tf/form-builder/lib';\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Box, Button, Flex, Icon } from '@tf/ui';\nimport { saveFile, T } from '@tf/utils';\n\nimport { appStore, instantCheckStore } from '@/core/stores';\nimport { InstantCheckTable } from '@/components/instant-check';\n\nconst InstantCheckHitsLayout = () => {\n\tconst navigate = useNavigate();\n\tconst { hits, searchId } = useSelector(() => instantCheckStore.get());\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\tuseEffect(() => {\n\t\tif (!hits) navigate('/instant-check');\n\t}, [hits]);\n\n\tconst onOpenCard = (selectedId: number) => {\n\t\tinstantCheckStore.set((s) => ({ ...s, selectedId }));\n\t\tnavigate('/instant-check/card');\n\t};\n\tconst onNewSearch = () => {\n\t\tinstantCheckStore.set((s) => ({ ...s, hits: null }));\n\t\tnavigate('/instant-check');\n\t};\n\n\tconst downloadCertificateMutation = useDownloadMonitoringSearchCertificateMutation();\n\tconst searchName = instantCheckStore.searchName.get();\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={onNewSearch}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tNew Search\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (!searchId) return;\n\t\t\t\t\t\t\t\tconst res = await downloadCertificateMutation.mutateAsync(searchId);\n\t\t\t\t\t\t\t\tsaveFile(res, `${searchName || 'instant check'}.pdf`);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdisabled={downloadCertificateMutation.isPending}\n\t\t\t\t\t\t\tleftSection={}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDownload search certificate\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\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default InstantCheckHitsLayout;\n","import React from 'react';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Box, Center, createStyles, TFCard } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { InstantCheckSearchForm } from '@/components/instant-check';\n\nconst useStyles = createStyles(() => ({\n\tsearchForm: {\n\t\twidth: '600px',\n\t\tmargin: '1rem',\n\t},\n}));\nconst InstantCheckSearchLayout = () => {\n\tconst { classes } = useStyles();\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t ({ margin: '.75rem auto', maxWidth: breakpoints.xl })}>\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\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
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default InstantCheckSearchLayout;\n","import { Outlet, useParams } from 'react-router-dom';\n\nimport { MonitoringCard, MonitoringProvider } from '@/components/monitoring';\n\nexport const MonitoringCardLayout = () => {\n\tconst params = useParams<{ graphId: string }>();\n\tconst graphId = parseInt(params.graphId as string, 10);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Outlet, useParams, useSearchParams } from 'react-router-dom';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Group } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { useMonitoringHits, useSelectedMonitoringEntity } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport {\n\tAcknowledgeChangesButton,\n\tMonitoringCardTabs,\n\tMonitoringReportButton,\n} from '@/components/monitoring';\n\nexport const MonitoringCardTabsLayout = () => {\n\tconst [searchParams] = useSearchParams();\n\tconst tenant = useSelector(() => appStore.tenant?.get());\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\tconst params = useParams<{ graphId: string }>();\n\tconst graphId = parseInt(params.graphId as string, 10);\n\tuseMonitoringHits({\n\t\tgraphId,\n\t\tpage: 1,\n\t\tlimit: 100,\n\t});\n\n\tconst data = useSelectedMonitoringEntity();\n\n\treturn (\n\t\t<>\n\t\t\t ({\n\t\t\t\t\tmarginBottom: 0,\n\t\t\t\t})}\n\t\t\t\ttitle={data.name}\n\t\t\t\ttenant={tenant}\n\t\t\t\tbreadcrumbs={[\n\t\t\t\t\t{ href: '/monitoring', title: 'Monitoring' },\n\t\t\t\t\t{ href: `/monitoring/${graphId}?${searchParams.toString()}`, title: data.name },\n\t\t\t\t]}\n\t\t\t\ttoolbar={\n\t\t\t\t\t\n\t\t\t\t\t\t\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\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React, { useEffect } from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { useNavigate, useParams } from 'react-router-dom';\n\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { useMonitoringHits } from '@/core/hooks';\nimport { monitoringStore } from '@/core/stores';\nimport { MonitoringMatchWrapper } from '@/components/monitoring';\n\ntype PathParams = {\n\tmatchId: string;\n\tgraphId: string;\n};\n\nexport const MonitoringMatchLayout = () => {\n\tconst navigate = useNavigate();\n\tconst params = useParams();\n\tconst monitoring = useSelector(() => monitoringStore.get());\n\n\tconst matchId = params.matchId;\n\tconst graphId = parseInt(params.graphId as string, 10);\n\tuseMonitoringHits({\n\t\tgraphId,\n\t\tpage: 1,\n\t\tlimit: 100,\n\t});\n\n\tuseEffect(() => {\n\t\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\t\tconst hit = monitoring?.hits?.find((item) => item.id === matchId);\n\n\t\tif (!hit) {\n\t\t\tgoToMatchesList();\n\t\t}\n\t}, [monitoring.hits]);\n\n\tconst goToMatchesList = () => {\n\t\tnavigate(`/monitoring/${graphId}`);\n\t};\n\n\t// @ts-expect-error FIXME TS error is suppressed for migration, fix it later\n\tif (monitoring?.hits?.find((item) => item.id === matchId)) {\n\t\treturn (\n\t\t\t item.id === matchId)}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn ;\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Navigate } from 'react-router-dom';\n\nimport { extractForms, getFormHash } from '@tf/shared';\nimport { T } from '@tf/utils';\n\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\n\nexport const NavigateToFirstAccountEntityFormRoute: React.FC = () => {\n\tconst account = useSelectedAccount();\n\tconst { connectionId, entityId, connectionKind } = useAccountParams();\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\n\tconst reviews = account.reviews.filter((r) => r.connectionKind === connectionKind);\n\tconst review = reviews.find((r) => r.graphLinkId === connectionId);\n\tconst entity = review?.listEntities.find((e) => e.graphNodeId === entityId);\n\n\tT.assertNotNullish(review, 'review not found');\n\tT.assertNotNullish(entity, 'entity not found');\n\n\tconst forms = extractForms({\n\t\tformDefs,\n\t\tsegmentIdentities: entity.listSegments.map((s) => s.SegmentIdentity),\n\t});\n\n\tconst firstForm = forms[0];\n\n\treturn ;\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Navigate, useParams } from 'react-router-dom';\n\nimport { extractForms } from '@tf/shared';\n\nimport { useEntity } from '@/core/api/entities';\nimport { appStore } from '@/core/stores';\n\nexport const NavigateToFirstEntityFormRoute: React.FC = () => {\n\tconst { entityId } = useParams<{ entityId: string }>();\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\n\tconst { data: entity } = useEntity(Number(entityId));\n\n\tif (!entity) return null;\n\n\tconst forms = extractForms({\n\t\tformDefs,\n\t\tsegmentIdentities: entity.listSegments.map((s) => s.SegmentIdentity),\n\t});\n\n\tconst firstForm = forms[0];\n\n\treturn ;\n};\n","import React from 'react';\n\nimport { useSelector } from '@datagrid/state';\nimport { Navigate } from 'react-router-dom';\n\nimport { extractForms, getFormHash, getSegmentsForReview } from '@tf/shared';\nimport { Center, Stack, TFCard, Title } from '@tf/ui';\nimport { S, T } from '@tf/utils';\n\nimport { useAccountParams, useSelectedAccount } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\n\nexport const NavigateToFirstFormRoute: React.FC = () => {\n\tconst account = useSelectedAccount();\n\tconst { connectionKind } = useAccountParams();\n\tconst formDefs = useSelector(() => appStore.defs.get().forms);\n\n\tconst reviews = account.reviews.filter((r) => r.connectionKind === connectionKind);\n\tconst currentReview = reviews.find((r) => r.connectionKind === connectionKind);\n\n\tT.assertNotNullish(currentReview, 'review not found');\n\n\tconst segmentIdentities = getSegmentsForReview(account.meta, currentReview).filter((c) => {\n\t\treturn [account.meta.graphNodeId, currentReview.graphNodeId, currentReview.graphLinkId].includes(\n\t\t\tc.graphId\n\t\t);\n\t});\n\n\tconst forms = extractForms({ formDefs, segmentIdentities });\n\tconst firstForm = forms[0];\n\n\tif (connectionKind === 'APPLICANT')\n\t\treturn (\n\t\t\t\n\t\t);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPlease select {S.prettify(connectionKind).toLowerCase()}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","import React from 'react';\n\nimport { Link, Outlet, useLocation, useNavigate } from 'react-router-dom';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Box, Button, createStyles, Icon, Tabs } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\n\nconst useStyles = createStyles(({ colors }) => ({\n\ttabs: {\n\t\tmarginTop: '-.75rem',\n\t},\n\tlist: {\n\t\tborderBottomWidth: 1,\n\t\tborderColor: colors.gray[2],\n\t},\n\ttab: {\n\t\tdisplay: 'flex',\n\t\tgap: '.35rem',\n\t},\n}));\n\nconst TABS = [\n\t{ href: '/settings/users', title: 'Users' },\n\t{ href: '/settings/users/invitations', title: 'Invitations' },\n] as const;\n\nexport const UserTablesLayout = () => {\n\tconst { classes } = useStyles();\n\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\tconst navigate = useNavigate();\n\tconst { pathname } = useLocation();\n\tconst canManageUsers = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_USERS);\n\n\treturn (\n\t\t<>\n\t\t\t t.href === pathname) ?? TABS[0],\n\t\t\t\t]}\n\t\t\t\ttoolbar={\n\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\tInvite users\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\tnavigate(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={classes.tabs}\n\t\t\t\t\tstyles={({ colors }) => ({\n\t\t\t\t\t\troot: { flexGrow: 1, borderBottomWidth: 2 },\n\t\t\t\t\t\ttab: {\n\t\t\t\t\t\t\tpadding: '.65rem 1rem',\n\t\t\t\t\t\t\tborderBottomWidth: 1.5,\n\t\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\t\t\"&[data-active='true']\": {\n\t\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\tcolor: colors.brand[6],\n\t\t\t\t\t\t\t\tbackgroundColor: colors.brand[0],\n\t\t\t\t\t\t\t\tborderBottom: `1.5px solid ${colors.brand[6]}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlist: { borderBottom: `1px solid ${colors.gray[2]}` },\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{TABS.map(({ href, title }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\t\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);\n};\n","import React from 'react';\n\nimport { SignIn } from '@clerk/clerk-react';\n\nimport { Center, MobileNotice, useLocalStorage, useViewportSize } from '@tf/ui';\n\nexport const LoginRoute = () => {\n\tconst viewport = useViewportSize();\n\tconst [agreeWithNotice, setAgreeWithNotice] = useLocalStorage({\n\t\tdefaultValue: false,\n\t\tkey: 'trustform-mobile-notice',\n\t});\n\n\tif (viewport.width < 743 && !agreeWithNotice) {\n\t\treturn setAgreeWithNotice(true)} />;\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n","import { useNavigate } from 'react-router-dom';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { MonitoringTable } from '@/components/monitoring';\n\nexport const MonitoringRoute = () => {\n\tconst navigate = useNavigate();\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\tif (!useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_MONITORING)) {\n\t\tnavigate('/');\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useClerk } from '@clerk/clerk-react';\n\nimport { TFErrorTemplate } from '@tf/shared';\nimport { Anchor, Button, TFText } from '@tf/ui';\n\nexport interface NoPermissionsRouteProps {\n\temail?: string;\n}\n\nexport const NoPermissionsRoute: React.FC = ({ email }) => {\n\tconst { signOut } = useClerk();\n\n\tconst handleLogout = async () => {\n\t\tawait signOut();\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tFor details, please email us {email ? 'at' : ''}{' '}\n\t\t\t\t{email}\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useSelector } from '@datagrid/state';\n\nimport { useClusterId } from '@/core/appMeta';\nimport { appStore } from '@/core/stores';\n\nexport const useTenantSchemaId = (tag: string) => {\n\tconst clusterId = useClusterId();\n\tconst tenant = useSelector(() => appStore.tenant?.get());\n\n\treturn `json-ir://${tenant}@${clusterId}/${tag}`;\n};\n","import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { nanoid } from 'nanoid';\n\nimport { gql, GraphQLClient } from '@/core/api/client/graphql';\nimport { useTenantSchemaId } from '@/core/api/schemas';\n\nconst allPaymentsOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['payments', 'all'],\n\t\tqueryFn: async () => {\n\t\t\treturn GraphQLClient.getInstance().request(gql`\n\t\t\t\tquery AllPayments {\n\t\t\t\t\tsearch(rootFilter: { archetype: \"payment\" }) {\n\t\t\t\t\t\tid\n\t\t\t\t\t\tmeta\n\t\t\t\t\t\tlabels\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`);\n\t\t},\n\t});\n};\n\nexport const useAllPayments = () => {\n\treturn useQuery(allPaymentsOptions());\n};\n\n// TODO: accountPayments is a separate query\n\nexport const useCreatePayment = () => {\n\tconst schemaId = useTenantSchemaId('payment/finance/INTERNAL');\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async () => {\n\t\t\treturn GraphQLClient.getInstance().request(\n\t\t\t\tgql`\n\t\t\t\t\tmutation CreatePayment($create: [ObjectInput]) {\n\t\t\t\t\t\tmutate(create: $create) {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t\t{\n\t\t\t\t\tcreate: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'new://1',\n\t\t\t\t\t\t\tschema: schemaId,\n\t\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\t\torder_id: `Order #${nanoid(4)}`,\n\t\t\t\t\t\t\t\taccount_name: 'Test Corporate Account',\n\t\t\t\t\t\t\t\taccount_external_id: '123456',\n\t\t\t\t\t\t\t\tamount: 340.12,\n\t\t\t\t\t\t\t\tamount_currency: 'RUB',\n\t\t\t\t\t\t\t\tassigned_managers: [],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tinstruction: {\n\t\t\t\t\t\t\t\t\tsender_account_number: '123456',\n\t\t\t\t\t\t\t\t\trecipient_account_number: '654321',\n\t\t\t\t\t\t\t\t\tamount_usd: '10',\n\t\t\t\t\t\t\t\t\tpayment_date: '2021-01-01T00:00:00Z',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tconnections: {\n\t\t\t\t\t\t\t\t\tPROFILE: {\n\t\t\t\t\t\t\t\t\t\t'@object': 'new://1.ca-create.json/ca_with_na',\n\t\t\t\t\t\t\t\t\t\t'@relationKind': 'PROFILE',\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},\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\tonMutate: () => {\n\t\t\tqueryClient.refetchQueries(allPaymentsOptions());\n\t\t},\n\t});\n};\n","import { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { Box, Button } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { useAllPayments, useCreatePayment } from '@/core/api/graphql';\nimport { appStore } from '@/core/stores';\n\nexport const TestGraphQLRoute: React.FC = () => {\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\tconst allPaymentsQuery = useAllPayments();\n\n\tconst createPaymentMutation = useCreatePayment();\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tcreatePaymentMutation.mutate();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tCreate payment\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{allPaymentsQuery.data?.search.map((payment: any, index: number) => (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{index + 1}) {payment.labels.order_id ?? '–'}, {payment.meta['@createdAt']}\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);\n};\n","import * as Sentry from '@sentry/react';\nimport type { UseMutationResult } from '@tanstack/react-query';\nimport { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport type { PublicApiTypes } from '@tf/api';\nimport { PublicApiClient } from '@tf/api';\nimport { TFNotifier } from '@tf/ui';\n\nconst tokensQueryOptions = () => {\n\treturn queryOptions({\n\t\tqueryKey: ['api-tokens'],\n\t\tqueryFn: async (): Promise => {\n\t\t\tconst api = PublicApiClient.getInstance();\n\t\t\tconst res = await api.tokenControllerListTokens();\n\t\t\treturn res.json();\n\t\t},\n\t\tstaleTime: 20 * 1000,\n\t});\n};\n\nexport const useTokens = () => {\n\treturn useQuery(tokensQueryOptions());\n};\n\nexport const useCreateTokenMutation: () => UseMutationResult<\n\tPublicApiTypes.TokenResponseDto,\n\tError,\n\tPublicApiTypes.CreateTokenDto\n> = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async (\n\t\t\tdata: PublicApiTypes.CreateTokenDto\n\t\t): Promise => {\n\t\t\tconst api = PublicApiClient.getInstance();\n\t\t\tconst res = await api.tokenControllerCreateToken(data);\n\t\t\treturn res.json();\n\t\t},\n\t\tonSuccess: async () => {\n\t\t\tawait queryClient.invalidateQueries(tokensQueryOptions());\n\t\t},\n\t\tonError: () => {\n\t\t\tTFNotifier.error('Failed to create API token. Please try again');\n\t\t},\n\t});\n};\n\nexport const useDeleteTokenMutation = () => {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({ id }: { id: string }) => {\n\t\t\tconst api = PublicApiClient.getInstance();\n\t\t\tconst res = await api.tokenControllerDeleteToken(id);\n\t\t\treturn res.json();\n\t\t},\n\t\tonSuccess: async () => {\n\t\t\tawait queryClient.invalidateQueries(tokensQueryOptions());\n\t\t\tTFNotifier.success('API token deleted successfully');\n\t\t},\n\t\tonError: (err) => {\n\t\t\tconst message = \"Couldn't delete API token\";\n\t\t\tSentry.captureException(new Error(message, { cause: err }));\n\t\t\tTFNotifier.error('Failed to delete API token. Please try again');\n\t\t},\n\t});\n};\n","import type { PublicApiTypes } from '@tf/api';\nimport { Button, TFDataTable, TFLoadingOverlay, TFText } from '@tf/ui';\n\nimport { useDeleteTokenMutation, useTokens } from '@/core/api/tokens';\n\ntype CellProps = {\n\trow: {\n\t\toriginal: PublicApiTypes.TokenControllerListTokensData;\n\t};\n};\n\nexport const TokensTable = () => {\n\tconst { isPending, data: tokens, isError } = useTokens();\n\n\tconst deleteTokenMutation = useDeleteTokenMutation();\n\n\tif (isPending) {\n\t\treturn ;\n\t}\n\n\tif (isError) {\n\t\treturn
Error, please try again
;\n\t}\n\n\treturn (\n\t\t\n\t\t\tname=\"tokens-table\"\n\t\t\tdata={tokens ?? []}\n\t\t\tdefs={[\n\t\t\t\t{\n\t\t\t\t\theader: 'Name',\n\t\t\t\t\taccessorKey: 'name',\n\t\t\t\t\tsize: 150,\n\t\t\t\t\tsortingFn: (rowA, rowB) => {\n\t\t\t\t\t\tconst rowAName = rowA.original.name;\n\t\t\t\t\t\tconst rowBName = rowB.original.name;\n\t\t\t\t\t\treturn rowAName.localeCompare(rowBName);\n\t\t\t\t\t},\n\t\t\t\t\tCell: ({ row }: CellProps) => {\n\t\t\t\t\t\tconst { name } = row.original;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theader: 'Actions',\n\t\t\t\t\taccessorKey: 'actions',\n\t\t\t\t\tsize: 100,\n\t\t\t\t\tenableSorting: false,\n\t\t\t\t\tenableResizing: false,\n\t\t\t\t\tCell: ({ row }: CellProps) => {\n\t\t\t\t\t\tconst { id } = row.original;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tawait deleteTokenMutation.mutateAsync({ id });\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tsize={'xs'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tRevoke\n\t\t\t\t\t\t\t\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);\n};\n","import { useState } from 'react';\n\nimport type { ChangeEventHandler } from 'react';\n\nimport {\n\tActionIcon,\n\tBox,\n\tButton,\n\tCopyButton,\n\tcreateModal,\n\tcreateStyles,\n\tIcon,\n\trem,\n\tTextarea,\n\tTextInput,\n\tTFText,\n\tTooltip,\n\tuseModalControl,\n} from '@tf/ui';\n\nimport { useCreateTokenMutation } from '@/core/api/tokens';\n\nconst useStyles = createStyles(() => {\n\treturn {\n\t\ttoken: {\n\t\t\tfontFamily: 'monospace',\n\t\t\tpaddingRight: '2.5rem',\n\t\t\tborder: 'none',\n\t\t},\n\t};\n});\n\nexport const AddTokenModal = createModal(() => {\n\tconst { classes } = useStyles();\n\tconst { onClose } = useModalControl();\n\n\tconst createTokenMutation = useCreateTokenMutation();\n\n\tconst [selectedName, setSelectedName] = useState('');\n\tconst [displayedToken, setDisplayedToken] = useState('');\n\n\tconst handleNameChange: ChangeEventHandler = (e) => setSelectedName(e.target.value);\n\n\tconst handleSave = async () => {\n\t\tawait createTokenMutation.mutateAsync(\n\t\t\t{\n\t\t\t\tname: selectedName,\n\t\t\t\tgrants: ['data_import'], // hardcoded value!\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: (data) => {\n\t\t\t\t\tsetDisplayedToken(data.token);\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\tif (!displayedToken) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\n\t\t\t\t ({\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\tgap: '0.75rem',\n\t\t\t\t\t\tpadding: '0.75rem',\n\t\t\t\t\t\tmarginTop: '1rem',\n\t\t\t\t\t\tborderTopStyle: 'solid',\n\t\t\t\t\t\tborderTopWidth: '1px',\n\t\t\t\t\t\tborderTopColor: colors.gray[2],\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tCreate\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\tYour new token has been successfully created\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t{({ copied, copy }) => (\n\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{copied ? (\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\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\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t\n\t\t\t\tMake sure you save it — you won't be able to access it again\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n});\n","import React from 'react';\n\nimport { Button, Icon, useDisclosure } from '@tf/ui';\n\nimport { AddTokenModal } from './AddTokenModal';\n\nexport const AddTokenButton: React.FC = () => {\n\tconst addTokenModal = useDisclosure();\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n","import { Navigate } from 'react-router-dom';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { TFLoadingOverlay } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { useTokens } from '@/core/api/tokens';\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { TokensTable } from '@/components/settings/TokensTable';\nimport { AddTokenButton } from '@/components/settings/TokensTable/AddTokenButton';\n\nexport const TokenListRoute = () => {\n\tconst { isLoading } = useTokens();\n\n\tconst canManageApiTokens = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_API_TOKENS);\n\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\tif (!canManageApiTokens) {\n\t\treturn ;\n\t}\n\n\tif (isLoading) return ;\n\n\treturn (\n\t\t<>\n\t\t\t} />\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { useSelector } from '@datagrid/state';\nimport { useParams } from 'react-router-dom';\n\nimport { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { TFLoadingOverlay } from '@tf/ui';\nimport { T } from '@tf/utils';\n\nimport { useUsers } from '@/core/api/users';\nimport { useCurrentUser } from '@/core/hooks';\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { getDisplayName, useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { UserCard, UserDeleteButton } from '@/components/settings';\n\nexport const UserCardRoute = () => {\n\tconst { userId } = useParams();\n\tconst { data: users } = useUsers();\n\tconst tenant = useSelector(() => appStore.tenant?.get());\n\tconst currentUser = useCurrentUser();\n\tconst canManageUsers = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_USERS);\n\n\t// TODO: handle state from query\n\tif (!users || users.length === 0) {\n\t\treturn ;\n\t}\n\n\tconst selectedUser = users.find((u) => u.userInfo.userId === userId);\n\tT.assertNotNullish(selectedUser, 'User not found');\n\n\tconst title = getDisplayName(selectedUser.userInfo);\n\tconst canDeleteUser = currentUser.userId !== selectedUser.userInfo.userId;\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\n\treturn (\n\t\t<>\n\t\t\t : undefined}\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import { TFPageContent, TFPageHeader } from '@tf/shared';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { UserCapabilities } from '@/core/types';\nimport { useCurrentUserCapabilityCheck } from '@/core/utils';\nimport { UserInvitationForm } from '@/components/settings';\n\nexport const UserInvitationRoute = () => {\n\tconst tenant = appStore.tenant?.get();\n\tT.assertNotNullish(tenant, 'no tenant in appStore');\n\tconst canManageUsers = useCurrentUserCapabilityCheck(UserCapabilities.CAN_MANAGE_USERS);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useAuth } from '@clerk/clerk-react';\nimport { BrowserRouter, Navigate, Outlet, Route, Routes } from 'react-router-dom';\n\nimport { TFNotFoundRoute } from '@tf/shared';\nimport { T } from '@tf/utils';\n\nimport { appStore } from '@/core/stores';\nimport { AccountOverview } from '@/components/accounts';\nimport { ClientCasesTable, EditClientCase } from '@/components/cases';\nimport { AutoAssignedSettings, CraSettingsTable } from '@/components/cra-settings';\nimport { MonitoringCardAssociations, MonitoringCardMatches } from '@/components/monitoring';\nimport { ReviewForm } from '@/components/reviews';\nimport { EntityReviewForm } from '@/components/reviews/EntityReviewForm';\nimport { UserInvitationsTable, UserTable } from '@/components/settings';\nimport { AppLayout } from '@/components/shared';\nimport { AcceptInvitationRoute } from '@/routes/AcceptInvitationRoute';\nimport AccountListRoute from '@/routes/AccountListRoute';\nimport { CRASettingsLayout } from '@/routes/CRASettingsLayout';\nimport { DataExportRoute } from '@/routes/DataExportRoute';\nimport { EntityListRoute } from '@/routes/EntitytListRoute';\nimport InstantCheckRoute from '@/routes/InstantCheckRoute';\nimport { AccountCardLayout } from '@/routes/layouts/AccountCardLayout';\nimport { AccountEntityLayout } from '@/routes/layouts/AccountEntityLayout';\nimport { AccountReviewLayout } from '@/routes/layouts/AccountReviewLayout';\nimport { AccountTabsLayout } from '@/routes/layouts/AccountTabsLayout';\nimport { EntityLayout } from '@/routes/layouts/EntityLayout';\nimport {\n\tInstantCheckCardLayout,\n\tInstantCheckHitsLayout,\n\tInstantCheckSearchLayout,\n} from '@/routes/layouts/InstantCheckLayout';\nimport {\n\tMonitoringCardLayout,\n\tMonitoringCardTabsLayout,\n\tMonitoringMatchLayout,\n} from '@/routes/layouts/MonitoringLayout';\nimport { NavigateToFirstAccountEntityFormRoute } from '@/routes/layouts/NavigateToFirstAccountEntityFormRoute';\nimport { NavigateToFirstEntityFormRoute } from '@/routes/layouts/NavigateToFirstEntityFormRoute';\nimport { NavigateToFirstFormRoute } from '@/routes/layouts/NavigateToFirstFormRoute';\nimport { UserTablesLayout } from '@/routes/layouts/UserTablesLayout';\nimport { LoginRoute } from '@/routes/LoginRoute';\nimport { MonitoringRoute } from '@/routes/MonitoringRoute';\nimport { NoPermissionsRoute } from '@/routes/NoPermissionsRoute';\nimport { TestGraphQLRoute } from '@/routes/TestGraphQLRoute';\nimport { TokenListRoute } from '@/routes/TokenListRoute';\nimport { UserCardRoute } from '@/routes/UserCardRoute';\nimport { UserInvitationRoute } from '@/routes/UserInvitationRoute';\n\nconst AuthRouteGuard: React.FC<{\n\tallowWhen: (isSignedIn: boolean) => boolean;\n\tredirectTo: string;\n\tlayoutWrapper?: React.ComponentType;\n}> = ({ allowWhen, redirectTo, layoutWrapper: LayoutWrapper }) => {\n\tconst { isSignedIn } = useAuth();\n\tT.assertNotNullish(isSignedIn, 'isSignedIn is undefined');\n\n\tif (!allowWhen(isSignedIn)) {\n\t\treturn ;\n\t}\n\n\treturn LayoutWrapper ? : ;\n};\n\nexport const Router: React.FC = () => {\n\tconst state = appStore.state.get();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t} />\n\t\t\t\t{/*non-authenticated users*/}\n\t\t\t\t !isSignedIn} redirectTo=\"/\" />}\n\t\t\t\t>\n\t\t\t\t\t} />\n\t\t\t\t\t} />\n\t\t\t\t\n\n\t\t\t\t{/* no permission routes */}\n\t\t\t\t{state === 'no_permissions' && (\n\t\t\t\t\t\n\t\t\t\t\t\t} />\n\t\t\t\t\t\t} />\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{/* authenticated routes */}\n\t\t\t\t Boolean(isSignedIn)}\n\t\t\t\t\t\t\tredirectTo=\"/sign-in\"\n\t\t\t\t\t\t\tlayoutWrapper={AppLayout}\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t} />\n\n\t\t\t\t\t}>\n\t\t\t\t\t\t} />\n\t\t\t\t\t\t} />\n\t\t\t\t\t\n\n\t\t\t\t\t} />\n\n\t\t\t\t\t}>\n\t\t\t\t\t\t} />\n\t\t\t\t\t\t} />\n\t\t\t\t\t\n\n\t\t\t\t\t} />\n\t\t\t\t\t} />\n\t\t\t\t\t}>\n\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}>\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\tshouldRevalidate={() => true}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\t} shouldRevalidate={() => true} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t} />\n\n\t\t\t\t\t}>\n\t\t\t\t\t\t} />\n\t\t\t\t\t\t} />\n\t\t\t\t\t\t} />\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t} />\n\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\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t} />\n\t\t\t\t\t\t}>\n\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} />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} />\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t} />\n\t\t\t\t\n\n\t\t\t\t} />\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport { useAuth } from '@clerk/clerk-react';\nimport { useSelector } from '@datagrid/state';\n\nimport { TFLoadingOverlay } from '@tf/ui';\n\nimport { appStore } from '@/core/stores';\nimport { Router } from '@/routes/index';\n\nexport const App = () => {\n\tconst appState = useSelector(() => appStore.state.get());\n\tconst { isSignedIn } = useAuth();\n\tconst isLoading = isSignedIn === undefined || (isSignedIn && appState === 'unauthorized');\n\tif (isLoading) return ;\n\n\treturn ;\n};\n","import React from 'react';\n\nimport { enableState } from '@datagrid/state';\nimport * as Sentry from '@sentry/react';\nimport { createRoot } from 'react-dom/client';\n\nimport { DGLayout } from '@tf/ui';\n\nimport { AmplitudeInitialization, AppProvider, SentryInitialization } from '@/core/providers';\n\nimport { App } from './App';\n\nenableState();\n\n(window as any).APP_VERSION = import.meta.env.VITE_APP_VERSION;\n\ncreateRoot(document.getElementById('root') as HTMLElement).render(\n\t {\n\t\t\tscope.setTag('location', 'global');\n\t\t}}\n\t\tfallback={() => }\n\t>\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n);\n\n// we don't have a Mantine/Emotion provider at the top-level error boundary, so we're using plain css for this component\nconst VanillaInitializationError = () => {\n\treturn (\n\t\t
\n\t);\n};\n\nconst styles: Record = {\n\tcontainer: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\theight: '100vh',\n\t\tbackgroundColor: '#fff',\n\t\tfontFamily: 'Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif',\n\t},\n\terrorBox: {\n\t\tminWidth: '480px',\n\t\tmaxWidth: '640px',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\talignItems: 'center',\n\t\tgap: '1rem',\n\t\tcolor: '#000',\n\t\tborder: '0.5px solid #E5E7EB',\n\t\tbackgroundColor: 'white',\n\t\tpadding: '1.5rem 1.25rem',\n\t\tborderRadius: '8px',\n\t\tboxShadow: '0 4px 20px -4px rgb(0 0 0 / 10%)',\n\t},\n\ttitle: {\n\t\tfontSize: '18px',\n\t\tfontWeight: 600,\n\t\tmargin: '0 0 8px 0',\n\t\tpadding: '0',\n\t\tcolor: '#333',\n\t},\n\tmessage: {\n\t\tfontSize: '14px',\n\t\tmargin: '0',\n\t\tpadding: '0',\n\t\tcolor: '#4B5563',\n\t},\n\tlink: {\n\t\tcolor: '#2563EB',\n\t\ttextDecoration: 'none',\n\t},\n};\n"],"file":"assets/index-2fa11f76.js"}