{"version":3,"file":"143.chunk.js","mappings":"iZAKMA,GAAOC,EAAAA,EAAAA,IAASC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,oGAShBC,GAAOC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACzCC,SAAU,WACVC,IAAKF,EAAMG,QAAQ,IACnBC,OAAQJ,EAAMG,QAAQ,GACtBE,MAAO,OACPC,OAAQ,eAAFC,OAAiBP,EAAMG,QAAQ,IAAG,KACxCK,YAAYC,EAAAA,EAAAA,IAAMT,EAAMU,QAAQC,OAAOC,MAAO,IAC9CC,OAAQ,IACT,IAEKC,GAAUhB,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BG,SAAU,WACVC,IAAK,MACLa,KAAM,MACNC,UAAW,0BAGPC,GAAUnB,EAAAA,EAAAA,GAAOoB,EAAAA,EAAPpB,CAAwB,CACtCqB,UAAW,GAAFZ,OAAKd,EAAI,yBAcpB,QAXmB,WAAH,OACd2B,EAAAA,EAAAA,KAACvB,EAAI,CAAAwB,UACHD,EAAAA,EAAAA,KAACN,EAAO,CAAAO,UACND,EAAAA,EAAAA,KAACH,EAAO,CACNK,SAAS,QACTC,MAAM,iBAGL,E,wBCtCIC,GAAuBC,EAAAA,EAAAA,eAAgCC,EAAAA,IAEvDC,EAAwBH,EAAqBI,SCL7CC,GAAoBJ,EAAAA,EAAAA,eAAsB,IAE1CK,EAA4BD,EAAkBD,SAE9CG,EAAuB,WAAH,OAASC,EAAAA,EAAAA,YAAWH,EAAkB,ECG1DI,GAAiBR,EAAAA,EAAAA,eAA8B,CAC1DS,gBAAiB,WAAO,IAGbC,EAAyBF,EAAeL,SCP/C/B,GAAOC,EAAAA,EAAAA,GAAOsC,EAAAA,EAAPtC,EAAa,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACxCqC,OAAQrC,EAAMG,QAAQ,GACtBF,SAAU,WACVqC,QAAS,QACTC,WAAY,SACZjC,OAAQ,GACRiB,MAAOvB,EAAMU,QAAQF,WAAWgC,MAChCC,OAAQ,YACRC,YAAa1C,EAAMU,QAAQiC,QAAQC,KACnCpC,WAAYR,EAAMU,QAAQiC,QAAQC,KAClCC,UAAW,SACXC,cAAe,YACfC,eAAgB,OAChBC,cAAe,SACfC,OAAQ,UACRC,gBAAiB,aACjBC,UAAW,aACXC,SAAU,OACVC,WAAY,OACZC,aAAc,QACdC,WAAY,oCACZ,UAAW,CACTC,UAAW,oCACXxC,UAAW,cACXO,MAAOvB,EAAMU,QAAQF,WAAWgC,OAEnC,IAEKiB,GAAQ3D,EAAAA,EAAAA,GAAO4D,EAAAA,EAAP5D,EAAmB,SAAA6D,GAAA,IAAG3D,EAAK2D,EAAL3D,MAAK,MAAQ,CAC/CqD,WAAY,OACZO,WAAY,GAAFrD,OAAKP,EAAMG,QAAQ,IAC9B,IAEY0D,EAAoC,SAAHC,GAAqB,IAAfzC,EAAQyC,EAARzC,SAC5C0C,EAAahC,IACXiC,GAAcC,EAAAA,EAAAA,KAAdD,UAER,OACE5C,EAAAA,EAAAA,KAACvB,EAAI,CACHqE,KAAMH,EACN,cAAaC,EAAU,UAAU3C,UAEjCD,EAAAA,EAAAA,KAACqC,EAAK,CAACU,QAAM,EAAA9C,SAAEA,KAGrB,E,oBCvCMxB,GAAOC,EAAAA,EAAAA,GAAOsE,EAAAA,EAAPtE,EAAe,SAAAC,GAAQ,MAAQ,CAC1CM,MAAO,oBACPgC,OAFkCtC,EAALC,MAEfG,QAAQ,GACvB,IAEYkE,EAAoC,SAAHV,GAAoB,IAAdW,EAAOX,EAAPW,QAC1CN,GAAcC,EAAAA,EAAAA,KAAdD,UAER,OACEO,EAAAA,EAAAA,MAAC1E,EAAI,CACH,cAAamE,EAAU,8BACvBQ,QAAQ,YACRjD,MAAM,YACN+C,QAASA,EAAQjD,SAAA,EAEjBD,EAAAA,EAAAA,KAACqD,EAAAA,EAAK,KACNrD,EAAAA,EAAAA,KAACsD,EAAAA,EAAgB,CAACC,GAAIC,EAAAA,GAAAA,oBAG5B,E,UChBM/E,GAAOC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAC,GAAQ,MAAQ,CACzCS,WAAY,+DACZJ,OAAQ,EACR+C,UAAW,aACX0B,YAAa,WACbC,QALiC/E,EAALC,MAKbG,QAAQ,GACvBF,SAAU,WACVI,MAAO,OACPQ,OAAQ,EACT,IAOYkE,EAA0B,SAAHpB,GAAmC,IAA7BqB,EAAsBrB,EAAtBqB,uBACxCC,GAA4BC,EAAAA,EAAAA,WAAkB,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA7CI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GACxBI,GAA0CL,EAAAA,EAAAA,UAAiC,CAAC,GAAEM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAAvEE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAEhCG,GAAiBC,EAAAA,EAAAA,OAAKC,iBAAA,OAAY,qDAA0B,IAE5DC,GAAeC,EAAAA,EAAAA,cAAY,WAE/BC,YAAW,WACTV,GAAU,IACVW,EAAAA,EAAAA,IAAI,4BACN,GACF,GAAG,CAACX,IAEEY,GAAcH,EAAAA,EAAAA,cAAYF,iBAC9B,IAAQM,SAAeC,EAAAA,EAAAA,OAAfD,KAERH,YAAW,WACTV,GAAU,GACVI,EAAiBS,EACnB,GACF,GAAG,CAACb,IAEJ,OACEf,EAAAA,EAAAA,MAAC1E,EAAI,CAAAwB,SAAA,EACHD,EAAAA,EAAAA,KAACyC,EAAU,CAAAxC,UACTD,EAAAA,EAAAA,KAACsD,EAAAA,EAAgB,CAACC,GAAIC,EAAAA,GAAAA,eAEvBI,GACCT,EAAAA,EAAAA,MAAA8B,EAAAA,SAAA,CAAAhF,SAAA,EACED,EAAAA,EAAAA,KAACiD,EAAW,CAACC,QAAS4B,KACtB9E,EAAAA,EAAAA,KAACkF,EAAAA,SAAQ,CAACC,UAAUnF,EAAAA,EAAAA,KAACoF,EAAM,IAAInF,UAC7BD,EAAAA,EAAAA,KAACuE,EAAc,CACbN,OAAQA,EACRI,cAAeA,EACfgB,QAASX,SAIb,OAGV,ECjEMjG,GAAOC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACzCM,OAAQ,GACRL,SAAU,WACVY,OAAQ,EACRyB,QAAS,OACTwC,QAAS9E,EAAMG,QAAQ,EAAG,GAC1BgD,UAAW,aACXuD,WAAY,SACZrG,MAAO,OACPG,WAAY,kEACZe,MAAOvB,EAAMU,QAAQiG,KAAKC,UAC3B,IAEKC,IAAa/G,EAAAA,EAAAA,GAAO,IAAPA,EAAY,SAAA6D,GAAQ,MAAQ,CAC7CpC,MADqCoC,EAAL3D,MACnBU,QAAQiG,KAAKhE,QAC1BI,eAAgB,OACjB,IAEY+D,GAAmC,SAAHhD,GAAqB,IAAfiD,EAAQjD,EAARiD,SAC3ChD,EAAahC,IACXiC,GAAcC,EAAAA,EAAAA,KAAdD,UAER,OACE5C,EAAAA,EAAAA,KAACvB,EAAI,CAAC,cAAamE,EAAU,UAAU3C,UACrCD,EAAAA,EAAAA,KAACsC,EAAAA,EAAU,CAACc,QAAQ,KAAInD,UACtBkD,EAAAA,EAAAA,MAACsC,GAAU,CACT3C,KAAMH,EACN,cAAaC,EAAU,sBAAsB3C,SAAA,EAE7CD,EAAAA,EAAAA,KAACsD,EAAAA,EAAgB,CAACC,GAAIC,EAAAA,GAAAA,SAA0B,KAAGmC,EAASC,WAAW,UAKjF,E,iEC3BKC,GAAY,SAAZA,GAAY,OAAZA,EAAY,yBAAZA,EAAY,6BAAZA,EAAY,+BAAZA,CAAY,EAAZA,IAAY,ICMXpH,IAAOC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAkH,EAAAA,EAAAA,GAAA,CACjCR,WAAY,SACZS,UAAW,WACX7E,QAAS,OACTrC,SAAU,WACVI,MAAO,KAENL,EAAMoH,YAAYC,GAAG,MAAQ,CAC5BF,UAAW,SACXG,WAAY,GACb,IAGUC,GAA0C,SAAHzD,GAU9C,IATW0D,EAAM1D,EAArB,eACA2D,EAAY3D,EAAZ2D,aACAC,EAAa5D,EAAb4D,cACAC,EAAY7D,EAAZ6D,aACAC,EAAe9D,EAAf8D,gBACAC,EAAQ/D,EAAR+D,SACAC,EAAUhE,EAAVgE,WACAC,EAAWjE,EAAXiE,YAGAC,EDtB+B,SAAHjI,GAOE,IAN9B0H,EAAY1H,EAAZ0H,aACAG,EAAe7H,EAAf6H,gBACAC,EAAQ9H,EAAR8H,SACAC,EAAU/H,EAAV+H,WACAC,EAAWhI,EAAXgI,YACAE,EAAgBlI,EAAhBkI,iBAEMC,GAAWC,EAAAA,EAAAA,QAAyB,MACpCC,GAAiBD,EAAAA,EAAAA,SAAO,GACxBE,GAAiBF,EAAAA,EAAAA,SAAO,GAC9BG,GAAwBC,EAAAA,EAAAA,aAAW,SAACC,GAAS,OAAKA,EAAI,CAAC,GAAE,GAAhDC,GAAkDrD,EAAAA,EAAAA,GAAAkD,EAAA,GAAvC,GACdI,GAAQP,EAAAA,EAAAA,QAAqBP,GAC7Be,GAAW5C,EAAAA,EAAAA,cACf,SAAC6C,GACKA,IAAaF,EAAMG,SACrB5C,EAAAA,GAAAA,IAAI,+DAAgE2C,IAEpEF,EAAMG,QAAUD,GAChB3C,EAAAA,GAAAA,IAAI,+CAAgD2C,GACpDH,IAEJ,GACA,CAACC,IAGGI,GAAiB/C,EAAAA,EAAAA,cACrB,SAACgD,EAA0BC,GAazB,IAZA/C,EAAAA,GAAAA,IACE,8CACA8C,EACA,oBACAnB,EACA,gBACAG,EACA,mBACAiB,GAIiB,MAAfD,EAKJ,GAAmB,KAAfA,GAAqBE,OAAOC,MAAMH,GAChCC,IAAiB/B,GAAakC,YAEhCR,EAASf,GAITe,EAASI,OAPb,CAcA,IAAIK,EAAeL,EAGfK,EAAe,IACjBA,EAAe,GACfnD,EAAAA,GAAAA,IAAI,kFAGFmD,EAAe,IAAM3B,IACvB2B,EAAe,GACfnD,EAAAA,GAAAA,IAAI,8DAGFmD,EAAerB,IACjBqB,EAAerB,GACf9B,EAAAA,GAAAA,IAAI,6CAAD1F,OAA8CwH,EAAW,OAQ5DqB,IAAiBxB,GAChBQ,EAAeS,SAAWG,IAAiB/B,GAAaoC,eAGzDV,EAASS,IAQXf,EAAeQ,SAAU,GACzB5C,EAAAA,GAAAA,IAAI,uCASJ0C,EAASS,GAETnB,EAAiB,CACfJ,SAAAA,EACAC,WAAAA,EACAf,SAAUqC,EACVE,iBAAkB1B,IACjB2B,MAde,WAChBlB,EAAeQ,SAAU,GACzB5C,EAAAA,GAAAA,IAAI,uCACN,IA5CA,CAwDF,GACA,CAACwB,EAAcG,EAAiBC,EAAUC,EAAYC,EAAaE,EAAkBU,IAMnFf,IAAoBc,EAAMG,SAAaT,EAAeS,UAAWR,EAAeQ,WAClF5C,EAAAA,GAAAA,IAAI,0CAAD1F,OACyCqH,EAAe,gBAAArH,OAAemI,EAAMG,QAAO,SAEvFF,EAASf,IAGX,IAuCM4B,GAAezD,EAAAA,EAAAA,cACnB,SAACgD,GAAwB,OAAKD,EAAeC,EAAY9B,GAAawC,cAAc,GACpF,CAACX,IAGH,MAAO,CACLZ,SAAAA,EACAE,eAAgBA,EAAeS,QAC/BR,eAAgBA,EAAeQ,QAC/Ba,WAtCkB,SAACC,GACnBvB,EAAeS,SAAU,EACzB,IAEeO,EAFIO,EAAXC,OAEAlB,MAENI,EADmB,KAAjBM,GAAwC,MAAjBA,EACVA,EAEAH,OAAOY,SAAST,EAAc,IAFhBnC,GAAakC,YAI9C,EA6BEK,aAAAA,EACAM,YAlDmB,SAACH,GACpBvB,EAAeS,SAAU,EACzB,IACMkB,EADaJ,EAAXC,OAEOR,EAAiBW,EAAxBrB,OACRzC,EAAAA,GAAAA,IAAI,6CAA8CmD,GAElDW,EAAMC,kBAAkB,EAAGZ,EAAaa,OAC1C,EA2CEC,cA7BqB,SAACP,GACtB,IAAQQ,EAAgBR,EAAhBQ,IAAKP,EAAWD,EAAXC,OAEb,IADA3D,EAAAA,GAAAA,IAAI,qCAAsCkE,GACpB,YAAlBC,EAAAA,GAAAA,GAAOR,IAzJG,UAyJoBO,EAAlC,CAIA,IACef,EADDQ,EACNlB,MACF2B,EAAepB,OAAOG,IAC5BnD,EAAAA,GAAAA,IAAI,8CAA+CmD,EAAc,eAAgBiB,GAC5D,KAAjBjB,GAAuBH,OAAOC,MAAMmB,IAGxCvB,EAAeuB,EAAcpD,GAAaoC,eAT1C,CAUF,EAeEV,SAAAA,EACAD,MAAOA,EAAMG,QAEjB,CC9JIyB,CAAkB,CAChB7C,aAAAA,EACAG,gBAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAE,iBATYnE,EAAhBmE,mBAEQC,EAAQF,EAARE,SAAUwB,EAAU1B,EAAV0B,WAAYF,EAAYxB,EAAZwB,aAAcM,EAAW9B,EAAX8B,YAAaI,EAAalC,EAAbkC,cAAexB,EAAKV,EAALU,MAUxE,OACEtH,EAAAA,EAAAA,KAACvB,GAAI,CAAAwB,UACHD,EAAAA,EAAAA,KAACmJ,GAAAA,GAAO,CACNC,wBACE,CACE,cAAe,GAAFjK,OAAKiH,EAAM,cAG5BiD,UAAW/C,EACXgD,wBACE,CACE,cAAe,GAAFnK,OAAKiH,EAAM,cAG5BmD,WACE,CACEC,KAAM,MACN1C,SAAAA,EACA2C,QAASf,EACTgB,OAAQpB,EACRqB,UAAWb,GAGfc,SAAUjD,EACVkD,SAAUtD,EAAe,EAAIC,EAC7Bc,MAAOA,EACPwC,SAAU1B,KAIlB,E,sBC1EM3J,IAAOC,EAAAA,EAAAA,GAAOqL,GAAAA,GAAPrL,EAAmB,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CAC9C0G,WAAY,SACZpE,QAAS,OACThB,SAAUtB,EAAMoL,WAAWC,QAAQ,IACnC9J,MAAOvB,EAAMU,QAAQC,OAAO2K,MAC5BhL,OAAQ,GACRiL,eAAgB,SAChBxK,KAAMf,EAAMG,SAAS,GACrBF,SAAU,WACVC,IAAKF,EAAMG,QAAQ,GACnBE,MAAO,GACPQ,OAAQ,EACT,IAEK2K,IAAO1L,EAAAA,EAAAA,GAAO2L,GAAAA,EAAP3L,EAAY,SAAA6D,GAAQ,MAAQ,CACvCrC,SAD+BqC,EAAL3D,MACVoL,WAAWC,QAAQ,IACnCrK,UAAW,gBACZ,IAEY0K,GAA0B,SAAH5H,GAAA,IAAqB0D,EAAM1D,EAArB,eAAuBQ,EAAOR,EAAPQ,QAAO,OACtElD,EAAAA,EAAAA,KAACvB,GAAI,CACH0B,MAAM,UACNiD,QAAQ,YACR,cAAagD,EACblD,QAASA,EAAQjD,UAEjBD,EAAAA,EAAAA,KAACoK,GAAI,KACA,E,ykBC7BT,IAAMG,GAAqB,SAAC3L,GAAY,MACrC,CACCsD,aAAc,MACdhB,QAAS,eACThC,OAAQ,EACR+B,OAAQrC,EAAMG,QAAQ,EAAG,EAAG,IAAK,GACjCE,MAAO,EACR,EAEGuL,IAAoB9L,EAAAA,EAAAA,GAAO,MAAPA,EACxB,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAqBQ,EAAUT,EAAxB8L,WAAcrL,WAAU,OAAAsL,GAAAA,GAAA,GAC7BH,GAAmB3L,IAAM,IAC5BQ,WAAAA,GAAU,IAIRuL,IAAoBjM,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAA6D,GAAA,IAAG3D,EAAK2D,EAAL3D,MAAK,OAAO2L,GAAmB3L,EAAM,IAKnEgM,GAAsC,SAAHlI,GAAwC,IAIhF+H,EAPmBI,EAG2BC,EAAYpI,EAAZoI,aAAcC,EAAarI,EAAbqI,cAC5DC,EAAgBF,aAAY,EAAZA,EAAcG,MAAM,KAAKC,QAAO,SAACC,GAAO,OAAKC,QAAQD,EAAQ,IAEnF,OAAIH,GAAiBA,EAAcnC,OAAS,EAGtCmC,EAAcnC,OAAS,GACzB4B,EAAa,CAAErL,YAVMyL,EAUwBG,EAVR,6BAAA7L,OACZ0L,EAAO,GAAE,MAAA1L,OAAK0L,EAAO,GAAE,UAAA1L,OAAS0L,EAAO,GAAE,YAW3D7K,EAAAA,EAAAA,KAACwK,GAAiB,CAACC,WAAYA,MAGxCA,EAAa,CAAErL,WAAY4L,EAAc,KAElChL,EAAAA,EAAAA,KAACwK,GAAiB,CAACC,WAAYA,KAGpCM,GAEA/K,EAAAA,EAAAA,KAAC2K,GAAiB,CAChBU,IAAKN,EACLO,IAAI,KAKH,IACT,EC5CM7M,IAAOC,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAC,GAAQ,MAAQ,CACzCwB,MADiCxB,EAALC,MACfU,QAAQiM,KAAKC,KAC1BtK,QAAS,OACToE,WAAY,SACb,IAEYmG,IAAwBC,EAAAA,EAAAA,OACnC,SAAAnJ,GAAA,IAAkB6D,EAAM7D,EAArB,eAAuBuI,EAAYvI,EAAZuI,aAAcC,EAAaxI,EAAbwI,cAAeY,EAASpJ,EAAToJ,UAAS,OAC9DxI,EAAAA,EAAAA,MAAC1E,GAAI,CAAC,cAAa2H,EAAOnG,SAAA,EACxBD,EAAAA,EAAAA,KAAC4K,GAAY,CACXE,aAAcA,EACdC,cAAeA,KAEjB/K,EAAAA,EAAAA,KAACsC,EAAAA,EAAU,CAACc,QAAQ,UAASnD,SAAE0L,MAC1B,I,ykBCVX,IAAMlN,IAAOC,EAAAA,EAAAA,GAAO,KAAPA,EAAa,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACxC8E,QAAS9E,EAAMG,QAAQ,EAAG,GAC1BF,SAAU,WACVkD,UAAW,aACXd,OAAQrC,EAAMG,QAAQ,EAAG,GACzB,SAAU,CACR6M,UAAW,aAAFzM,OAAeP,EAAMU,QAAQiM,KAAK,OAE9C,IAEKM,IAAuBnN,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACzCwC,QAAS,OACTf,MAAO,MACPwB,eAAgB,SAGZmK,IAAUpN,EAAAA,EAAAA,GAAOsC,EAAAA,EAAPtC,EAAa,SAAA6D,GAAA,IAAG3D,EAAK2D,EAAL3D,MAAK,MAAQ,CAC3CK,MAAO,GACPC,OAAQ,IACRwE,QAAS9E,EAAMG,QAAQ,EAAG,GAC1BgN,YAAanN,EAAMG,QAAQ,GAC3BK,WAAYR,EAAMU,QAAQiM,KAAK,KAC/BrJ,aAAc,EACdrD,SAAU,WACVmN,SAAU,SACV9K,QAAS,OACTiJ,eAAgB,SACjB,IAEK8B,IAAQvN,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC1BsD,SAAU,OACVkK,UAAW,SAGPC,IAAiBzN,EAAAA,EAAAA,GAAO0N,GAAAA,EAAP1N,EAAiB,SAAAgE,GAAQ,MAAQ,CACtD7D,SAAU,WACVI,MAAO,MACPC,OAAQ,OACRS,KAAM,MACNb,IAAK,MACLc,UAAW,wBACXO,MAP8CuC,EAAL9D,MAO5BU,QAAQiM,KAAK,KAC3B,IAEKc,IAAwB3N,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC1CwC,QAAS,OACToL,SAAU,EACVC,cAAe,SACf5K,eAAgB,OAChBK,SAAU,sBAGNwK,IAAqB9N,EAAAA,EAAAA,GAAOsC,EAAAA,EAAPtC,EAAa,SAAA+N,GAAQA,EAAL7N,MAAK,MAAQ,CACtDsC,QAAS,OACTS,eAAgB,OAChBuK,UAAW,GACXF,SAAU,SACX,IAEKU,IAAahO,EAAAA,EAAAA,GAAO4D,EAAAA,EAAP5D,CAAmB,CACpCsD,SAAU,oBACVgK,SAAU,SACVW,aAAc,WACdzL,QAAS,cACT0L,gBAAiB,EACjBC,gBAAiB,aAGbC,IAAWpO,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAqO,GAAA,IAAGnO,EAAKmO,EAALnO,MAAK,MAAQ,CAC7CsC,QAAS,OACToE,WAAY,SACZ6E,eAAgB,SAChBtL,SAAU,WACVqH,WAAY,EACZjH,MAAO,GACPC,OAAQ,GACR8N,WAAY,OACZ3L,OAAQ,IACRlB,MAAOvB,EAAMU,QAAQ2N,MAAMC,aAC3BhL,aAAc,MACdiL,gBAAiBvO,EAAMU,QAAQ2N,MAAMzL,KACtC,IAEK4L,IAAe1O,EAAAA,EAAAA,GAAO2O,GAAAA,EAAP3O,EAA0B,SAAA4O,GAAQ,MAAQ,CAC7DpN,SADqDoN,EAAL1O,MAChCoL,WAAWC,QAAQ,IACpC,IAEKsD,IAAoB7O,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACtCwC,QAAS,OACTsM,UAAW,OACX7L,eAAgB,SAGZ8L,IAAsB/O,EAAAA,EAAAA,GAAO4D,EAAAA,EAAP5D,CAAmB,CAC7CqN,YAAa,OACbhG,UAAW,aAGP2H,IAAmBhP,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACrCsO,WAAY,OACZQ,UAAW,SAGPG,IAAcjP,EAAAA,EAAAA,GAAO4D,EAAAA,EAAP5D,EAAmB,SAAAkP,GAAQ,MAAQ,CACrD3L,WAAY,OACZ9B,MAF6CyN,EAALhP,MAE3BU,QAAQiG,KAAKC,UAC1BrE,WAAY,SACb,IAEK0M,IAAiBnP,EAAAA,EAAAA,GAAO4D,EAAAA,EAAP5D,EAAmB,SAAAoP,GAAA,IAAGlP,EAAKkP,EAALlP,MAAK,MAAQ,CACxD6C,UAAW,QACXE,eAAgB,eAChBzB,SAAUtB,EAAMoL,WAAWC,QAAQ,IACnC9J,MAAOvB,EAAMU,QAAQiG,KAAK8D,SAC3B,IAEK0E,IAAmBrP,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAsP,GAAQ,MAAQ,CACrD9M,QAAS,OACT+M,IAF6CD,EAALpP,MAE7BG,QAAQ,GACpB,IAEYmP,GAA4B,SAAHC,GAiBhC,IAhBJ1H,EAAQ0H,EAAR1H,SACA2H,EAAeD,EAAfC,gBACAC,EAAYF,EAAZE,aACAC,EAAcH,EAAdG,eACAC,EAAQJ,EAARI,SACAC,EAAiBL,EAAjBK,kBACAC,EAAkBN,EAAlBM,mBACAC,EAAUP,EAAVO,WACArI,EAAY8H,EAAZ9H,aACAK,EAAUyH,EAAVzH,WACAJ,EAAa6H,EAAb7H,cACAC,EAAY4H,EAAZ5H,aACAI,EAAWwH,EAAXxH,YACAmE,EAAYqD,EAAZrD,aACAC,EAAaoD,EAAbpD,cACA4D,EAASR,EAATQ,UAEQ/L,GAAcC,EAAAA,EAAAA,KAAdD,UACA9B,GAAoBF,EAAAA,EAAAA,YAAWC,GAA/BC,gBACF8N,GAAWjK,EAAAA,EAAAA,cACf,SAACkK,GAAgC,OAC/B/N,GAAgB,SAACgO,GAAa,OAAApE,GAAAA,GAAA,GACzBoE,GACAD,EAAS,GACX,GACL,CAAC/N,IAEGiO,GAAoBpK,EAAAA,EAAAA,cAAYF,iBACpC,IACEmK,EAAS,CACPI,WAAW,UAEPC,EAAAA,EAAAA,IAAiB,CACrBxI,SAAAA,EACAC,WAAAA,EACAwI,UAAWC,GAAAA,GAAAA,QACXjH,iBAAkBsG,GAEtB,CAAE,MAAOY,GAEPC,QAAQD,MAAMA,GACdR,EAAS,CACPI,WAAW,GAEf,CACF,GAAG,CAACJ,EAAUnI,EAAUC,EAAY8H,IAE9Bc,GAAuB3K,EAAAA,EAAAA,cAC3BF,eAAA8K,GAKmC,IAJvBC,EAAID,EAAd9I,SACYgJ,EAAIF,EAAhB7I,WACUgJ,EAAeH,EAAzB5J,SACAuC,EAAgBqH,EAAhBrH,iBAEA,GAAwB,IAApBwH,EACFX,SAEA,UACQY,EAAAA,EAAAA,IAAiB,CACrBlJ,SAAU+I,EACV9I,WAAY+I,EACZP,UAAWC,GAAAA,GAAAA,QACXjH,iBAAAA,EACAvC,SAAU+J,GAEd,CAAE,MAAON,IACPQ,EAAAA,EAAAA,IAAsB,eACxB,CAEJ,GACA,CAACb,IAGGc,EAAY,GAAH1Q,OAAMuH,EAAU,KAAAvH,OAAIsH,EAAQ,KAAAtH,OAAIoP,GAE/C,OACEpL,EAAAA,EAAAA,MAAC1E,GAAI,CACH8E,GAAE,QAAApE,OAAU0Q,EAAS,KAAA1Q,OAAIuP,GACzB,iBAAAvP,OAAgByD,EAAU,QAAO,KAAAzD,OAAI0Q,GAAY5P,SAAA,CAEhDoG,GACCrG,EAAAA,EAAAA,KAACsK,GAAM,CACL,cAAY,SACZpH,QAAS6L,IAET,MACJ5L,EAAAA,EAAAA,MAAC0I,GAAoB,CAAA5L,SAAA,EACnBD,EAAAA,EAAAA,KAAC8L,GAAO,CAAChJ,KAAMwL,EAAerO,SAC3BoO,GACCrO,EAAAA,EAAAA,KAACiM,GAAK,CACJZ,IAAKgD,EACL/C,IAAI,aAGNtL,EAAAA,EAAAA,KAACmM,GAAc,OAGnBhJ,EAAAA,EAAAA,MAACkJ,GAAqB,CAAApM,SAAA,EACpBkD,EAAAA,EAAAA,MAACqJ,GAAkB,CAAC1J,KAAMwL,EAAerO,SAAA,EACvCD,EAAAA,EAAAA,KAAC0M,GAAU,CAACtJ,QAAQ,QAAOnD,SAAEmO,IAC5BK,GACCzO,EAAAA,EAAAA,KAAC8M,GAAQ,CAAA7M,UACPD,EAAAA,EAAAA,KAACoN,GAAY,MAEb,SAENjK,EAAAA,EAAAA,MAAC4K,GAAgB,CAAA9N,SAAA,EACfD,EAAAA,EAAAA,KAACsC,EAAAA,EAAU,CACTc,QAAQ,UACRjD,MAAM,gBAAeF,SAEpBwG,KAEDqE,GAAgBC,IAAkB4D,GAClC3O,EAAAA,EAAAA,KAACyL,GAAK,CACJ,cAAY,QACZX,aAAcA,EACdC,cAAeA,EACfY,UAAWgD,IAEX,SAENxL,EAAAA,EAAAA,MAACoK,GAAiB,CAAAtN,SAAA,CACdsG,GAAiBD,GAKjBtG,EAAAA,EAAAA,KAACmG,GAAc,CACb,cAAY,kBACZE,aAAcA,EACdC,cAAeA,EACfC,aAAcA,EACdC,gBAAiBgI,EACjB/H,SAAUA,EACVC,WAAYA,EACZC,YAAaA,EACbE,iBAAkByI,KAbpBnM,EAAAA,EAAAA,MAACsK,GAAmB,CAACrK,QAAQ,QAAOnD,SAAA,EAClCD,EAAAA,EAAAA,KAACsD,EAAAA,EAAgB,CAACC,GAAIC,EAAAA,GAAAA,MAAuB,IAAEgL,MAenDrL,EAAAA,EAAAA,MAACuK,GAAgB,CAAAzN,SAAA,CACdwO,GACCzO,EAAAA,EAAAA,KAAC6N,GAAc,CAACzK,QAAQ,QAAOnD,SAAEwO,IAC/B,MACJzO,EAAAA,EAAAA,KAAC2N,GAAW,CAACvK,QAAQ,QAAOnD,SAAEyO,kBAO5C,E,ykBCvRO,IAAMoB,GAAoB,sCAY3BrR,IAAOC,EAAAA,EAAAA,GAAO,MAAPA,EACX,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAO6L,EAAU9L,EAAV8L,WAAU,OAAAC,GAAAA,GAAA,GACfqF,EAAAA,IAAkB,IACrB3Q,WAAYR,EAAMU,QAAQF,WAAWgC,MACrCgB,UAAWxD,EAAMoR,QAAQ,GACzBjO,UAAW,aACXb,QAAS,OACTqL,cAAe,SACf5M,KAAM,OACNqC,SAAU,qBACV/C,MACEwL,EAAWwF,cAA+C,IAA/BxF,EAAWyF,gBAAwBJ,GAAoB,QACpFrQ,OAAQ,GAAC,IAIP0Q,IAAczR,EAAAA,EAAAA,GAAO0R,EAAAA,EAAP1R,EAA0B,SAAA6D,GAAQ,MAAQ,CAC5D1D,SAAU,WACVqC,QAAS,QACTa,UAAW,aACXiK,SAAU,SACVqE,KAAM,EACNjR,WANoDmD,EAAL3D,MAM7BU,QAAQF,WAAWgC,MACtC,IAEKkP,IAAW5R,EAAAA,EAAAA,GAAO,MAAPA,EAAc,SAAAgE,GAAQ,MAAQ,CAC7C7D,SAAU,UACVC,IAAK,MACL2C,UAAW,SACXtB,MAJqCuC,EAAL9D,MAInBU,QAAQiG,KAAKC,UAC3B,IAEK+K,IAAQ7R,EAAAA,EAAAA,GAAO8R,EAAAA,EAAP9R,EACZ,SAAA+N,GAAA,IAAG7N,EAAK6N,EAAL7N,MAAO6R,EAAehE,EAAfgE,gBAAe,MAAQ,CAC/B1O,UAAW,aACX2O,cAAe,OACfxE,UAAW,OACXF,SAAU,OACV2E,WAAY/R,EAAMG,QAAQ,IAC1B6R,cAAeH,EAAgB7M,uBAAyBhF,EAAMG,QAAQ,IAAMH,EAAMG,QAAQ,IAC1F8R,mBAAoB,UACrB,IAGUC,GAA4B,SAAH/D,GAShC,IARJmD,EAAenD,EAAfmD,gBACAtM,EAAsBmJ,EAAtBnJ,uBACAqM,EAAYlD,EAAZkD,aACAc,EAAKhE,EAALgE,MACAC,EAAYjE,EAAZiE,aACAhC,EAASjC,EAATiC,UACAiC,EAAYlE,EAAZkE,aACAC,EAAYnE,EAAZmE,aAEMvL,EAAWoL,EAAMI,QAAO,SAACC,EAAO3J,GAAO,OAAK2J,EAAQ3J,EAAQ+G,iBAAiB,GAAE,GAC7E5L,GAAcC,EAAAA,EAAAA,KAAdD,UACF6H,EAAa,CAAEyF,gBAAAA,EAAiBD,aAAAA,GAChCQ,EAAkB,CAAE7M,uBAAAA,GAE1B,OACET,EAAAA,EAAAA,MAAC1E,GAAI,CACHgM,WAAYA,EACZ,cAAa7H,EAAU,WACvBqO,aAAcA,EACdC,aAAcA,EAAajR,SAAA,EAE3BD,EAAAA,EAAAA,KAAC0F,GAAM,CAACC,SAAUA,IACjBqJ,IAAcgC,GAAehR,EAAAA,EAAAA,KAACoF,EAAM,IAAM,MAC3CjC,EAAAA,EAAAA,MAACgN,GAAW,CAAC,cAAavN,EAAU,SAAS3C,SAAA,CAC1C8Q,EAAMlI,OAAS,IACd7I,EAAAA,EAAAA,KAACuQ,GAAK,CAACE,gBAAiBA,EAAgBxQ,SACrC8Q,EAAMM,KAAI,SAACC,GAAqB,OAC/BtR,EAAAA,EAAAA,KAACkO,GAAIxD,GAAA,GAEC4G,GAAI,gBAAAnS,OADamS,EAAK5K,WAAU,KAAAvH,OAAImS,EAAK7K,SAAQ,KAAAtH,OAAImS,EAAK/C,SAAQ,KAAApP,OAAImS,EAAK5C,YAE/E,MAIPsC,GAAiC,IAAjBD,EAAMlI,QACrB1F,EAAAA,EAAAA,MAACmN,GAAQ,CAAC,cAAa1N,EAAU,SAAS3C,SAAA,EACxCD,EAAAA,EAAAA,KAACsC,EAAAA,EAAU,CAACc,QAAQ,KAAInD,UACtBD,EAAAA,EAAAA,KAACsD,EAAAA,EAAgB,CAACC,GAAIC,EAAAA,GAAAA,cAExBL,EAAAA,EAAAA,MAACb,EAAAA,EAAU,CAACc,QAAQ,QAAOnD,SAAA,CAAC,MACxBD,EAAAA,EAAAA,KAACsD,EAAAA,EAAgB,CAACC,GAAIC,EAAAA,GAAAA,kBAAmC,WAG7D,SAENxD,EAAAA,EAAAA,KAAC2D,EAAM,CAACC,uBAAwBA,MAGtC,E,6nBClGA,IAUMnF,IAAOC,EAAAA,EAAAA,GAAO6S,EAAAA,EAAP7S,EAEV,SAAAC,GAAA,IAAG8L,EAAU9L,EAAV8L,WAAY7L,EAAKD,EAALC,MAAK,OAAA8L,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAA,GAClBqF,EAAAA,IAAkB,IACrBlR,SAAU,QACVqC,QAAS,QACTO,UAAW,OACXhC,OAAQ,MACHgL,EAAW+G,WAAa,CAC3B7R,KAAM,UAEF8K,EAAW+G,YAAc/G,EAAWwF,cACvCxF,EAAW+G,WAAa/G,EAAWwF,cAA+C,IAA/BxF,EAAWyF,kBAA2B,CAC1FvQ,KAAM,IAEJ8K,EAAW+G,WACb/G,EAAWwF,cACoB,IAA/BxF,EAAWyF,iBAAyB,CAClCvQ,KAAM,gBAAFR,OAAkB2Q,GAAiB,QAEtCrF,EAAWwF,cAAgB,CAC9BnR,IA/BsB,6BAiCpB2L,EAAWwF,cACkB,IAA/BxF,EAAWyF,iBAAyB,CAClCpR,IAlCuB,wCAmCvBW,OAAQb,EAAMa,OAAOgS,SAErBhH,EAAWwF,cACkB,IAA/BxF,EAAWyF,iBAAyB,CAClCpR,IAAK,EACLW,OAAQ,OACT,IACH0C,WAAY,WAAFhD,OACRsL,EAAWwF,aACP,0CACA,6BAA4B,wBACb,IAGVyB,GAA0C,SAAHnP,GAG9C,IClDE3D,EACA+S,EACAC,ED8CN3B,EAAY1N,EAAZ0N,aACArM,EAAsBrB,EAAtBqB,uBAEMsM,GCnDAtR,GAAQiT,EAAAA,GAAAA,KACRF,GAAgBG,EAAAA,GAAAA,GAAclT,EAAMoH,YAAY+L,KAAK,MAAO,CAAEC,OAAO,IACrEJ,GAAiBE,EAAAA,GAAAA,GAAclT,EAAMoH,YAAY+L,KAjBnB,MAiBiD,CACnFC,OAAO,IAKLL,EACgB,EACTC,EACS,EAEA,GDuCpB/N,GAAwCC,EAAAA,EAAAA,UAAgCmO,GAAAA,GAAoBlO,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAArFqO,EAAYnO,EAAA,GAAEjD,EAAeiD,EAAA,GAC9B6K,GAAWjK,EAAAA,EAAAA,cACf,SAACkK,GAAgC,OAC/B/N,GAAgB,SAACgO,GACf,IAAMqD,EAAQzH,GAAAA,GAAA,GACToE,GACAD,GAIL,OAFAhK,EAAAA,EAAAA,IAAI,qBAAsBsN,GAEnBA,CACT,GAAE,GACJ,IAGFC,EAAkFF,EAA1EV,UAAAA,OAAS,IAAAY,GAAQA,EAAAC,EAAyDH,EAAvDnB,MAAAA,OAAK,IAAAsB,EAAG,GAAEA,EAAAC,EAA6CJ,EAA3ClB,aAAAA,OAAY,IAAAsB,GAAQA,EAAAC,EAAuBL,EAArBlD,UAAAA,OAAS,IAAAuD,GAAOA,EAC7EpO,GAAwCL,EAAAA,EAAAA,eAAmC0O,GAAUpO,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAA9EsO,EAAYrO,EAAA,GAAEsO,EAAetO,EAAA,GAC9BuO,GAAchO,EAAAA,EAAAA,cAClB,SAACiO,GAAkC,OACjCF,GAAgB,SAACG,GAQf,OAPIA,KACFhO,EAAAA,EAAAA,IAAI,+BACJgO,EAAYC,WAEdjO,EAAAA,EAAAA,IAAI,mCAAoC+N,GACxCA,SAAAA,IAEOA,CACT,GAAE,GACJ,KAGF/N,EAAAA,EAAAA,IACE,gBACA,aACAqN,EACA,wBACAhC,EACA,qBACAD,EACA,oCACAwC,GAGF,IEjHwCG,EFiHhChQ,GAAcC,EAAAA,EAAAA,KAAdD,UAEFmQ,EAAa,SAAChO,GAClB6J,EAAS,CACPI,WAAW,EACXgC,cAAc,EACdD,MAAOhM,EAAKiO,YAAYC,iBAAiB/H,QAAO,SAACoG,GAAI,MAAuB,MAAlBA,EAAK/C,QAAgB,KAEnF,EEzHwCqE,EF2HdG,GE1H1BG,EAAAA,EAAAA,YAAU,WACR,IAAMC,EAAY,SAAC5K,GAA0B,OAAKqK,EAASrK,EAAM6K,OAAO,EAGxE,OAFAC,OAAOC,iBAAiBC,GAAAA,EAA4BJ,GAE7C,kBAAME,OAAOG,oBAAoBD,GAAAA,EAA4BJ,EAAS,CAC/E,GAAG,CAACP,ICP0B,SAACA,IAC/BM,EAAAA,EAAAA,YAAU,WACR,IAAMC,EAAY,SAAC5K,GAA0B,OAAKqK,EAASrK,EAAM6K,OAAO,EAGxE,OAFAC,OAAOC,iBAAiBG,GAAAA,GAAoBN,GAErC,kBAAME,OAAOG,oBAAoBC,GAAAA,GAAoBN,EAAS,CACvE,GAAG,CAACP,GACN,CHsHEc,CAAiBX,IAEjBG,EAAAA,EAAAA,YAAU,YACRrO,EAAAA,EAAAA,IAAI,mCACJ,IAAM0D,EAAQ,IAAIoL,YAAYC,EAAAA,GAC9BP,OAAOQ,cAActL,EACvB,GAAG,IAEH,IAAMuL,EAAsB7D,GAAoC,IAApBC,EACtC6D,GAA0B9D,GAAoC,IAApBC,EAE1C8D,GAAgBrP,EAAAA,EAAAA,cACpB,kBACEsP,KAAS,WACPtB,OAAYH,GACZ5D,EAAS,CAAE4C,WAAW,GACxB,GAAG,IAAI,GACT,CAACmB,EAAa/D,IAGVsF,GAAqBvP,EAAAA,EAAAA,cAGzB,SAACI,GAGC,IAFAF,EAAAA,EAAAA,IAAI,8BAA+BE,IAE/B+O,IAAuBC,EAM3B,OAAIhP,EAAKqO,OAAOe,WAAaC,EAAAA,GAAAA,UAC3BvP,EAAAA,EAAAA,IAAI,wFACJ+J,EAAS,CAAE4C,WAAW,UAKc,IAA3BzM,EAAKqO,OAAOiB,aACrBxP,EAAAA,EAAAA,IACE,gFACA,gCAGF/D,GAAgB,SAACgO,GAAa,OAAApE,GAAAA,GAAA,GACzBoE,GAAa,IAChB0C,WAAY1C,EAAc0C,WAAS,KAMnCzM,EAAKqO,OAAOiB,aACdxP,EAAAA,EAAAA,IAAI,2FACJ+J,EAAS,CAAE4C,WAAW,OAKxB3M,EAAAA,EAAAA,IACE,yEACA,sCAGKmP,MAtCLnP,EAAAA,EAAAA,IAAI,iDAuCR,GACA,CAACmP,EAAeF,EAAqBC,EAAwBnF,KAG/DsE,EAAAA,EAAAA,YAAU,WAEJY,KACFjP,EAAAA,EAAAA,IAAI,sDACJ+J,EAAS,CAAE4C,WAAW,KAGpBuC,KACFlP,EAAAA,EAAAA,IAAI,iEACJ+J,EAAS,CAAE4C,WAAW,KAGxB,IAAM8C,EAA2B,SAACvP,GAA4B,OAC5D4N,EAAYuB,EAAmBnP,GAAM,EAIvC,OAFAsO,OAAOC,iBAAiBc,EAAAA,GAAuBE,GAExC,kBAAMjB,OAAOG,oBAAoBY,EAAAA,GAAuBE,EAAwB,CACzF,GAAG,CACDpE,EACAD,EACA6D,EACAC,EACAtB,EACAE,EACA/D,EACAsF,IAGF,IAwBMzJ,EAAa,CAAEyF,gBAAAA,EAAiBD,aAAAA,EAAcuB,UAAAA,GAEpD,OACExR,EAAAA,EAAAA,KAACe,EAAsB,CAACuG,MAAO,CAAExG,gBAAAA,GAAkBb,UACjDD,EAAAA,EAAAA,KAACvB,GAAI,CACH8V,qBAAmB,EACnB9J,WAAYA,EACZ+J,KAAMhD,EACNiD,cAAe,CACbvR,QAjCmB,WACpB4Q,GACHlF,EAAS,CAAE4C,WAAW,GAE1B,EA8BQkD,QAAS,EACTC,KAAM,eACNH,KAAMhD,IAAcsC,GACpB7T,UAEFD,EAAAA,EAAAA,KAAC4U,EAAAA,EAAI,CAACC,GAAIrD,EAAUvR,UAClBD,EAAAA,EAAAA,KAAA,OAAK,cAAa4C,EAAU,kBAAkB3C,UAC5CD,EAAAA,EAAAA,KAAC8Q,GAAO,CACNZ,gBAAiBA,EACjBD,aAAcA,EACdc,MAAOA,EACPC,aAAcA,EACdhC,UAAWA,EACXpL,uBAAwBA,EACxBqN,aA1Ca,WACnBhB,GAAgB8D,GAClBlP,EAAAA,EAAAA,IAAI,4CAINA,EAAAA,EAAAA,IAAI,cACJ8N,OAAYH,GACd,EAmCYtB,aAlCa,WACnBjB,GAAgB8D,GAClBlP,EAAAA,EAAAA,IAAI,4CAINA,EAAAA,EAAAA,IAAI,0BACJ+J,EAAS,CAAE4C,WAAW,IACxB,WAiCF,EI5QasD,GAAoB,SAAHnW,GAAwC,IAAAoW,EAAlC9E,EAAYtR,EAAZsR,aAAc+E,EAAarW,EAAbqW,cACxCC,EACND,EADMC,aAAcC,EACpBF,EADoBE,OAAQC,EAC5BH,EAD4BG,aAAcC,EAC1CJ,EAD0CI,cAAexR,EACzDoR,EADyDpR,uBAGrDyR,EAAsC,QAA3BN,GAAGO,GADeC,EAAAA,EAAAA,KAA3BD,iCACoC,IAAAP,EAAAA,EAAIS,SAASC,gBAAgBC,KAEzE,OACE1V,EAAAA,EAAAA,KAACO,EAAqB,CAAC+G,MAAO0N,EAAc/U,UAC1CD,EAAAA,EAAAA,KAAC2V,EAAAA,EAAa,CACZC,qBAAmB,EACnBC,SAAS,eAAc5V,UAEvBD,EAAAA,EAAAA,KAAC8V,EAAAA,EAA4B,CAC3BC,KAAMd,EACNC,OAAQA,EAAOjV,UAEfD,EAAAA,EAAAA,KAACU,EAAyB,CAAC4G,MAAO8N,EAAcnV,UAC9CD,EAAAA,EAAAA,KAACgW,EAAAA,EAAY,CACXC,OAAQZ,EACRa,SAAUf,EAAalV,UAEvBD,EAAAA,EAAAA,KAACmW,EAAAA,EAAc,CACbC,KAAK,WACLC,QAAQ,oBAAmBpW,UAE3BD,EAAAA,EAAAA,KAAC0R,GAAc,CACbzB,aAAcA,EACdrM,uBAAwBA,eAS1C,EC9Ca0S,GAAS7R,eAAO8R,EAA0BtG,GACrD,IAAM+E,GAAgBwB,EAAAA,EAAAA,IAAiBD,GAEnCE,EAAAA,QAAAA,WAAwB,OAE1BC,SAD6B,mCAArBA,YACGH,GAAaD,QACtBtW,EAAAA,EAAAA,KAAC8U,GAAG,CACFE,cAAeA,EACf/E,aAAcA,MASlB0G,SADyC,6CAAjCL,SAENtW,EAAAA,EAAAA,KAAC8U,GAAG,CACFE,cAAeA,EACf/E,aAAcA,IAEhBsG,EAGN,C","sources":["webpack://oriminishoppingbag/./src/components/content/Loader.tsx","webpack://oriminishoppingbag/./src/contexts/configurationContext.ts","webpack://oriminishoppingbag/./src/contexts/basketLinkContext.ts","webpack://oriminishoppingbag/./src/contexts/minBagContext.ts","webpack://oriminishoppingbag/./src/components/content/MainButton.tsx","webpack://oriminishoppingbag/./src/components/content/ShareButton.tsx","webpack://oriminishoppingbag/./src/components/content/Footer.tsx","webpack://oriminishoppingbag/./src/components/content/Header.tsx","webpack://oriminishoppingbag/./src/hooks/useQuantityPicker.ts","webpack://oriminishoppingbag/./src/components/content/QuantityPicker.tsx","webpack://oriminishoppingbag/./src/components/content/Remove.tsx","webpack://oriminishoppingbag/./src/components/content/ShadeElement.tsx","webpack://oriminishoppingbag/./src/components/content/Shade.tsx","webpack://oriminishoppingbag/./src/components/content/Item.tsx","webpack://oriminishoppingbag/./src/components/MiniBag.tsx","webpack://oriminishoppingbag/./src/components/MiniBagWrapper.tsx","webpack://oriminishoppingbag/./src/hooks/useBreakpointIndex.ts","webpack://oriminishoppingbag/./src/hooks/useInitialShoppingContext.ts","webpack://oriminishoppingbag/./src/hooks/useBasketUpdated.ts","webpack://oriminishoppingbag/./src/App.tsx","webpack://oriminishoppingbag/./src/AppRender.tsx"],"sourcesContent":["import { keyframes } from '@emotion/react';\nimport { OriflameSpinner } from '@ori-ui/icons';\nimport { styled, alpha } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nconst spin = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst Root = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(13),\n bottom: theme.spacing(9),\n width: '100%',\n height: `calc(100% - ${theme.spacing(28)})`, // 100% - (header + footer height)\n background: alpha(theme.palette.common.white, 0.5),\n zIndex: 999,\n}));\n\nconst Wrapper = styled('div')({\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n});\n\nconst Spinner = styled(OriflameSpinner)({\n animation: `${spin} 1s linear infinite`,\n});\n\nconst Loader: FC = () => (\n \n \n \n \n \n);\n\nexport default Loader;\n","import { useContext, createContext } from 'react';\n\nimport type { AppConfiguration } from '~/models';\nimport { DEFAULT_CONFIG } from '~/models';\n\nexport const configurationContext = createContext(DEFAULT_CONFIG);\n\nexport const ConfigurationProvider = configurationContext.Provider;\n\nexport const useConfiguration = () => useContext(configurationContext);\n","import { useContext, createContext } from 'react';\n\nexport const basketLinkContext = createContext('');\n\nexport const BasketLinkContextProvider = basketLinkContext.Provider;\n\nexport const useBasketLinkContext = () => useContext(basketLinkContext);\n","import type { Dispatch, SetStateAction } from 'react';\nimport { createContext } from 'react';\n\nimport type { MiniBagState } from '~/models';\n\nexport interface MiniBagContext {\n setMiniBagState: Dispatch>>;\n}\n\nexport const miniBagContext = createContext({\n setMiniBagState: () => {},\n});\n\nexport const MiniBagContextProvider = miniBagContext.Provider;\n","import useTestId from '@ori/testid-generator';\nimport { Typography, styled, Link } from '@ori-ui/mui';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { useBasketLinkContext } from '~/contexts';\n\nconst Root = styled(Link)(({ theme }) => ({\n margin: theme.spacing(1),\n position: 'relative',\n display: 'block',\n whiteSpace: 'nowrap',\n height: 45,\n color: theme.palette.background.paper,\n border: '2px solid',\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n textAlign: 'center',\n textTransform: 'uppercase',\n textDecoration: 'none',\n verticalAlign: 'middle',\n cursor: 'pointer',\n WebkitBoxSizing: 'border-box',\n boxSizing: 'border-box',\n maxWidth: '100%',\n fontWeight: 'bold',\n borderRadius: '999px',\n transition: 'box-shadow 0.15s, transform 0.15s',\n '&:hover': {\n boxShadow: '0 3px 8px 0 rgba(51, 51, 51, 0.1)',\n transform: 'scale(1.01)',\n color: theme.palette.background.paper,\n },\n}));\n\nconst Label = styled(Typography)(({ theme }) => ({\n fontWeight: 'bold',\n lineHeight: `${theme.spacing(8)}`,\n}));\n\nexport const MainButton: FC = ({ children }) => {\n const basketLink = useBasketLinkContext();\n const { getTestId } = useTestId();\n\n return (\n \n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Share } from '@ori-ui/icons';\nimport { styled, Button } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { translationKeys } from '~/models';\n\ninterface ShareButtonProps {\n onClick: React.MouseEventHandler | undefined;\n}\n\nconst Root = styled(Button)(({ theme }) => ({\n width: 'calc(100% - 10px)',\n margin: theme.spacing(1),\n}));\n\nexport const ShareButton: FC = ({ onClick }) => {\n const { getTestId } = useTestId();\n\n return (\n \n \n \n \n );\n};\n","import { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useState, useCallback, Suspense, lazy } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport Loader from './Loader';\nimport { MainButton } from './MainButton';\nimport { ShareButton } from './ShareButton';\nimport { translationKeys } from '~/models';\nimport { log, showSharePanel } from '~/utils';\n\ninterface FooterProps {\n isBasketSharingEnabled: boolean | undefined;\n}\n\nconst Root = styled('div')(({ theme }) => ({\n background: 'linear-gradient(to top, #fff 20%, rgba(255,255,255,0.9) 30%)',\n bottom: 0,\n boxSizing: 'border-box',\n justifySelf: 'flex-end',\n padding: theme.spacing(3),\n position: 'absolute',\n width: '100%',\n zIndex: 2,\n}));\n\ninterface SharedContent {\n message: string;\n url: string;\n}\n\nexport const Footer: FC = ({ isBasketSharingEnabled }) => {\n const [isOpen, setIsOpen] = useState(false);\n const [sharedContent, setSharedContent] = useState>({});\n\n const SharingWrapper = lazy(async () => import('./SharingWrapper'));\n\n const closeHandler = useCallback(() => {\n // W/o postponing it, it didn't close the dialog in some cases for some reason.\n setTimeout(() => {\n setIsOpen(false);\n log('Closing sharing popup ...');\n });\n }, [setIsOpen]);\n\n const openHandler = useCallback(async () => {\n const { data } = await showSharePanel();\n\n setTimeout(() => {\n setIsOpen(true);\n setSharedContent(data);\n });\n }, [setIsOpen]);\n\n return (\n \n \n \n \n {isBasketSharingEnabled ? (\n <>\n \n }>\n \n \n >\n ) : null}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport { Typography, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useBasketLinkContext } from '~/contexts';\nimport { translationKeys } from '~/models';\n\nconst Root = styled('div')(({ theme }) => ({\n height: 65,\n position: 'absolute',\n zIndex: 2,\n display: 'flex',\n padding: theme.spacing(0, 4),\n boxSizing: 'border-box',\n alignItems: 'center',\n width: '100%',\n background: 'linear-gradient(to bottom, #fff 20%, rgba(255,255,255,0.9) 30%)',\n color: theme.palette.text.secondary,\n}));\n\nconst BasketLink = styled('a')(({ theme }) => ({\n color: theme.palette.text.primary,\n textDecoration: 'none',\n}));\n\nexport const Header: FC<{ quantity: number }> = ({ quantity }) => {\n const basketLink = useBasketLinkContext();\n const { getTestId } = useTestId();\n\n return (\n \n \n \n ({quantity.toString()})\n \n \n \n );\n};\n","import type { FocusEventHandler, KeyboardEventHandler } from 'react';\nimport { useReducer, useCallback, useRef } from 'react';\n\nimport type { CounterValue, HandleQuantityChangeOptions } from '../models';\nimport { logQuantityPicker as log } from '~/utils/log';\n\ninterface UseQuantityPickerOptions {\n canBeDeleted: boolean;\n initialQuantity: number;\n itemCode: string;\n lineNumber: number;\n maxQuantity: number;\n onQuantityChange: (options: HandleQuantityChangeOptions) => Promise;\n}\n\nenum ChangeOrigin {\n BlurHandler = 'handleBlur',\n ChangeHandler = 'handleChange',\n KeyDownHandler = 'handleKeyDown',\n}\n\nconst KEY_ENTER = 'Enter';\n\nexport const useQuantityPicker = ({\n canBeDeleted,\n initialQuantity,\n itemCode,\n lineNumber,\n maxQuantity,\n onQuantityChange,\n}: UseQuantityPickerOptions) => {\n const inputRef = useRef(null);\n const isInputFocused = useRef(false);\n const isServerUpdate = useRef(false);\n const [, forceUpdate] = useReducer((x: number) => x + 1, 0);\n const value = useRef(initialQuantity);\n const setValue = useCallback(\n (newValue: CounterValue) => {\n if (newValue === value.current) {\n log('QuantityPicker.setValue() same value as previous, no change:', newValue);\n } else {\n value.current = newValue;\n log('QuantityPicker.setValue() new value was set:', newValue);\n forceUpdate();\n }\n },\n [value],\n );\n\n const changeQuantity = useCallback(\n (inputValue: CounterValue, changeOrigin?: ChangeOrigin) => {\n log(\n 'QuantityPicker.changeQuantity(), inputValue',\n inputValue,\n ', initialQuantity',\n initialQuantity,\n ', maxQuantity',\n maxQuantity,\n ', change origin:',\n changeOrigin,\n );\n\n // ignore '-' value completely - server doesn't accept negative values\n if (inputValue === '-') {\n return;\n }\n\n // non-numeric values\n if (inputValue === '' || Number.isNaN(inputValue)) {\n if (changeOrigin === ChangeOrigin.BlurHandler) {\n // for blur event, let's set some correct numeric value\n setValue(initialQuantity);\n } else {\n // in the middle of the editting process here, just set the local state\n // so that user sees the editted value\n setValue(inputValue);\n }\n\n return;\n }\n\n // checks for min and max quantity\n let currentValue = inputValue;\n\n // just for the case - negative value could be pasted from clipboard for example\n if (currentValue < 0) {\n currentValue = 0;\n log('Current value was set to 0 as negative quantities are not accepted by server.');\n }\n\n if (currentValue < 1 && !canBeDeleted) {\n currentValue = 1;\n log('Current value was set to 1 as the item cannot be deleted.');\n }\n\n if (currentValue > maxQuantity) {\n currentValue = maxQuantity;\n log(`Current value was limited to max quantity ${maxQuantity}.`);\n }\n\n // skip calling updates on server when same as initial quantity\n // skip server updates when the user is edditting the input value directly ATM\n // (the change in handleKeyDown is called only for specific key(s) like Enter,\n // so it should call server for those cases, but the focus still stays in the input)\n if (\n currentValue === initialQuantity ||\n (isInputFocused.current && changeOrigin !== ChangeOrigin.KeyDownHandler)\n ) {\n // just set local state so that user sees the edit updates\n setValue(currentValue);\n\n return;\n }\n\n // call server updates - this might return updated value of this item's quantity\n // depending on the checkout rule engine;\n // server operation indication is needed for correct derived value state logic\n isServerUpdate.current = true;\n log('Server update flag was set to true.');\n\n const resetFlag = () => {\n isServerUpdate.current = false;\n log('Server update flag was set to false.');\n };\n\n // set local state so that user sees the edit updates;\n // set here so that the isServerUpdate is set up in advance\n setValue(currentValue);\n\n onQuantityChange({\n itemCode,\n lineNumber,\n quantity: currentValue,\n previousQuantity: initialQuantity,\n }).then(resetFlag);\n },\n [canBeDeleted, initialQuantity, itemCode, lineNumber, maxQuantity, onQuantityChange, setValue],\n );\n\n // Derived value state after server data updates from shopping rule engine. Stays here for merchandising cases:\n // 1. Quantity of item was increased by previous update of another item's amount.\n // 2. Increasing item quantity over limit increases the qty of another item and original item's qty stays the same.\n if (initialQuantity !== value.current && (!isInputFocused.current || isServerUpdate.current)) {\n log(\n `Setting value to match initialQuantity ${initialQuantity}, value was ${value.current} ...`,\n );\n setValue(initialQuantity);\n }\n\n const handleFocus = ((event) => {\n isInputFocused.current = true;\n const { target } = event;\n const input = target as HTMLInputElement;\n const { value: currentValue } = input;\n log('QuantityPicker.handleFocus(), currentValue', currentValue);\n // selecting whole text value on focus was requested\n input.setSelectionRange(0, currentValue.length);\n }) as FocusEventHandler;\n\n const handleBlur = ((event) => {\n isInputFocused.current = false;\n const { target } = event;\n const input = target as HTMLInputElement;\n const { value: currentValue } = input;\n if (currentValue === '' || currentValue === '-') {\n changeQuantity(currentValue, ChangeOrigin.BlurHandler);\n } else {\n changeQuantity(Number.parseInt(currentValue, 10), ChangeOrigin.BlurHandler);\n }\n }) as FocusEventHandler;\n\n const handleKeyDown = ((event) => {\n const { key, target } = event;\n log('QuantityPicker.handleKeyDown() key', key);\n if (typeof target !== 'object' || key !== KEY_ENTER) {\n return;\n }\n\n const input = target as HTMLInputElement;\n const { value: currentValue } = input;\n const numericValue = Number(currentValue);\n log('QuantityPicker.handleKeyDown() currentValue', currentValue, 'numericValue', numericValue);\n if (currentValue === '' || Number.isNaN(numericValue)) {\n return;\n }\n changeQuantity(numericValue, ChangeOrigin.KeyDownHandler);\n }) as KeyboardEventHandler;\n\n const handleChange = useCallback(\n (inputValue: CounterValue) => changeQuantity(inputValue, ChangeOrigin.ChangeHandler),\n [changeQuantity],\n );\n\n return {\n inputRef,\n isInputFocused: isInputFocused.current,\n isServerUpdate: isServerUpdate.current,\n handleBlur,\n handleChange,\n handleFocus,\n handleKeyDown,\n setValue,\n value: value.current,\n };\n};\n","/* eslint-disable @typescript-eslint/naming-convention -- x */\nimport type { IconButtonProps } from '@ori-ui/components';\nimport { Counter } from '@ori-ui/components';\nimport type { InputProps } from '@ori-ui/mui';\nimport { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { useQuantityPicker } from '~/hooks/useQuantityPicker';\nimport type { HandleQuantityChangeOptions, TestIdProp } from '~/models';\n\ninterface QuantityPickerProps extends TestIdProp {\n canBeDeleted: boolean;\n canBeModified: boolean;\n canBeReduced: boolean;\n initialQuantity: number;\n itemCode: string;\n lineNumber: number;\n maxQuantity: number;\n onQuantityChange: (options: HandleQuantityChangeOptions) => Promise;\n}\n\nconst Root = styled('div')(({ theme }) => ({\n alignItems: 'center',\n alignSelf: 'flex-end',\n display: 'flex',\n position: 'relative',\n width: 125,\n\n [theme.breakpoints.up('md')]: {\n alignSelf: 'center',\n flexShrink: 0,\n },\n}));\n\nexport const QuantityPicker: FC = ({\n 'data-testid': testId,\n canBeDeleted,\n canBeModified,\n canBeReduced,\n initialQuantity,\n itemCode,\n lineNumber,\n maxQuantity,\n onQuantityChange,\n}) => {\n const { inputRef, handleBlur, handleChange, handleFocus, handleKeyDown, value } =\n useQuantityPicker({\n canBeDeleted,\n initialQuantity,\n itemCode,\n lineNumber,\n maxQuantity,\n onQuantityChange,\n });\n\n return (\n \n \n }\n disabled={!canBeModified}\n IncreaseIconButtonProps={\n {\n 'data-testid': `${testId}-increase`,\n } as Partial\n }\n InputProps={\n {\n type: 'tel',\n inputRef,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n } as Partial\n }\n maxValue={maxQuantity}\n minValue={canBeReduced ? 0 : initialQuantity}\n value={value}\n onChange={handleChange}\n />\n \n );\n};\n","import { IconButton } from '@ori-ui/components';\nimport { Add } from '@ori-ui/icons';\nimport { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport type { TestIdProp } from '~/models';\n\ninterface RemoveProps extends TestIdProp {\n onClick?: () => Promise;\n}\n\nconst Root = styled(IconButton)(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n fontSize: theme.typography.pxToRem(14),\n color: theme.palette.common.black,\n height: 20,\n justifyContent: 'center',\n left: theme.spacing(-2),\n position: 'absolute',\n top: theme.spacing(1),\n width: 20,\n zIndex: 1,\n}));\n\nconst Icon = styled(Add)(({ theme }) => ({\n fontSize: theme.typography.pxToRem(14),\n transform: 'rotate(45deg)',\n}));\n\nexport const Remove: FC = ({ 'data-testid': testId, onClick }) => (\n \n \n \n);\n","import type { Theme } from '@ori-ui/mui';\nimport { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\ninterface ShadeElementProps {\n colorHexCode: string | null;\n colorImageSrc: string | null;\n}\n\nconst shadeElementStyles = (theme: Theme) =>\n ({\n borderRadius: '50%',\n display: 'inline-block',\n height: 7,\n margin: theme.spacing(1, 1, 1.2, 0),\n width: 7,\n } as const);\n\nconst ColorShadeElement = styled('div')<{ ownerState: { background: string } }>(\n ({ theme, ownerState: { background } }) => ({\n ...shadeElementStyles(theme),\n background,\n }),\n);\n\nconst ImageShadeElement = styled('img')(({ theme }) => shadeElementStyles(theme));\n\nconst getLinearGradient = (colors: string[]) =>\n `linear-gradient(to right, ${colors[0]}, ${colors[0]} 50%, ${colors[1]} 50%)`;\n\nexport const ShadeElement: FC = ({ colorHexCode, colorImageSrc }) => {\n const colorHexCodes = colorHexCode?.split(',').filter((hexCode) => Boolean(hexCode));\n\n if (colorHexCodes && colorHexCodes.length > 0) {\n let ownerState;\n\n if (colorHexCodes.length > 1) {\n ownerState = { background: getLinearGradient(colorHexCodes) };\n\n return ;\n }\n\n ownerState = { background: colorHexCodes[0] as string };\n\n return ;\n }\n\n if (colorImageSrc) {\n return (\n \n );\n }\n\n return null;\n};\n","import { styled, Typography } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { memo } from 'react';\n\nimport { ShadeElement } from './ShadeElement';\nimport type { TestIdProp } from '~/models';\n\ninterface ShadeProps extends TestIdProp {\n colorHexCode: string | null;\n colorImageSrc: string | null;\n colorName: string;\n}\n\nconst Root = styled('div')(({ theme }) => ({\n color: theme.palette.grey.A400,\n display: 'flex',\n alignItems: 'center',\n}));\n\nexport const Shade: FC = memo(\n ({ 'data-testid': testId, colorHexCode, colorImageSrc, colorName }) => (\n \n \n {colorName}\n \n ),\n);\n","import { Placement } from '@ori/analytics-data';\nimport useTestId from '@ori/testid-generator';\nimport type { ShoppingBagItem } from '@ori-events/basket-updated';\nimport { DiscountTagFilled, Products } from '@ori-ui/icons';\nimport { Link, Typography, styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { useCallback, useContext } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { QuantityPicker } from './QuantityPicker';\nimport { Remove } from './Remove';\nimport { Shade } from './Shade';\nimport { miniBagContext } from '~/contexts';\nimport { translationKeys } from '~/models';\nimport type { MiniBagState, HandleQuantityChangeOptions } from '~/models';\nimport { removeBasketItem, showErrorNotification, updateBasketItem } from '~/utils';\n\nconst Root = styled('li')(({ theme }) => ({\n padding: theme.spacing(3, 0),\n position: 'relative',\n boxSizing: 'border-box',\n margin: theme.spacing(0, 3),\n '& + li': {\n borderTop: `2px solid ${theme.palette.grey[100]}`,\n },\n}));\n\nconst StyledMiniBagWrapper = styled('div')({\n display: 'flex',\n color: '999',\n textDecoration: 'none',\n});\n\nconst ImgLink = styled(Link)(({ theme }) => ({\n width: 80,\n height: 100,\n padding: theme.spacing(3, 0),\n marginRight: theme.spacing(2),\n background: theme.palette.grey[100],\n borderRadius: 5,\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'center',\n}));\n\nconst Image = styled('img')({\n maxWidth: '100%',\n maxHeight: '100%',\n});\n\nconst MissingImgIcon = styled(Products)(({ theme }) => ({\n position: 'absolute',\n width: '50%',\n height: 'auto',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n color: theme.palette.grey[200],\n}));\n\nconst StyledItemDescription = styled('div')({\n display: 'flex',\n flexGrow: 1,\n flexDirection: 'column',\n textDecoration: 'none',\n maxWidth: 'calc(100% - 90px)',\n});\n\nconst StyledItemInfoLink = styled(Link)(({ theme }) => ({\n display: 'flex',\n textDecoration: 'none',\n maxHeight: 40,\n overflow: 'hidden',\n}));\n\nconst StyledName = styled(Typography)({\n maxWidth: 'calc(100% - 38px)',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n});\n\nconst Discount = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n flexShrink: 0,\n width: 25,\n height: 25,\n marginLeft: 'auto',\n border: '0',\n color: theme.palette.offer.contrastText,\n borderRadius: '50%',\n backgroundColor: theme.palette.offer.main,\n}));\n\nconst DiscountIcon = styled(DiscountTagFilled)(({ theme }) => ({\n fontSize: theme.typography.pxToRem(15),\n}));\n\nconst StyledItemDetails = styled('div')({\n display: 'flex',\n marginTop: 'auto',\n textDecoration: 'none',\n});\n\nconst StyledQuantityBlock = styled(Typography)({\n marginRight: 'auto',\n alignSelf: 'flex-end',\n});\n\nconst StyledPriceBlock = styled('div')({\n marginLeft: 'auto',\n marginTop: 'auto',\n});\n\nconst StyledPrice = styled(Typography)(({ theme }) => ({\n fontWeight: 'bold',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n}));\n\nconst StyledPriceOld = styled(Typography)(({ theme }) => ({\n textAlign: 'right',\n textDecoration: 'line-through',\n fontSize: theme.typography.pxToRem(12),\n color: theme.palette.text.disabled,\n}));\n\nconst ItemShadeWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n}));\n\nexport const Item: FC = ({\n itemCode,\n itemDescription,\n itemImageSrc,\n itemDetailPath,\n itemType,\n requestedQuantity,\n totalOriginalPrice,\n totalPrice,\n canBeDeleted,\n lineNumber,\n canBeModified,\n canBeReduced,\n maxQuantity,\n colorHexCode,\n colorImageSrc,\n itemColor,\n}) => {\n const { getTestId } = useTestId();\n const { setMiniBagState } = useContext(miniBagContext);\n const setState = useCallback(\n (nextState: Partial) =>\n setMiniBagState((previousState) => ({\n ...previousState,\n ...nextState,\n })),\n [setMiniBagState],\n );\n const removeItemHandler = useCallback(async () => {\n try {\n setState({\n isLoading: true,\n });\n await removeBasketItem({\n itemCode,\n lineNumber,\n placement: Placement.Minibag,\n previousQuantity: requestedQuantity,\n });\n } catch (error: unknown) {\n // eslint-disable-next-line no-console -- want the info in console\n console.error(error);\n setState({\n isLoading: false,\n });\n }\n }, [setState, itemCode, lineNumber, requestedQuantity]);\n\n const handleQuantityChange = useCallback(\n async ({\n itemCode: code,\n lineNumber: line,\n quantity: currentQuantity,\n previousQuantity,\n }: HandleQuantityChangeOptions) => {\n if (currentQuantity === 0) {\n removeItemHandler();\n } else {\n try {\n await updateBasketItem({\n itemCode: code,\n lineNumber: line,\n placement: Placement.Minibag,\n previousQuantity,\n quantity: currentQuantity,\n });\n } catch (error) {\n showErrorNotification('genericError');\n }\n }\n },\n [removeItemHandler],\n );\n\n const partialId = `${lineNumber}-${itemCode}-${itemType}`;\n\n return (\n \n {canBeDeleted ? (\n \n ) : null}\n \n \n {itemImageSrc ? (\n \n ) : (\n \n )}\n \n \n \n {itemDescription}\n {totalOriginalPrice ? (\n \n \n \n ) : null}\n \n \n \n {itemCode}\n \n {(colorHexCode || colorImageSrc) && itemColor ? (\n \n ) : null}\n \n \n {!canBeReduced && !canBeModified ? (\n \n :{requestedQuantity}\n \n ) : (\n \n )}\n \n {totalOriginalPrice ? (\n {totalOriginalPrice}\n ) : null}\n {totalPrice}\n \n \n \n \n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport type { ShoppingBagItem } from '@ori-events/basket-updated';\nimport { List, Typography, styled, ScopedCssBaseline } from '@ori-ui/mui';\nimport type { FC, MouseEvent } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Footer, Header, Item } from './content';\nimport Loader from './content/Loader';\nimport { translationKeys } from '~/models';\nimport { basePositionStyles } from '~/utils';\n\nexport const minibagWidthStyle = 'var(--minibag-desktop-width, 400px)';\ninterface MiniBagProps {\n breakpointIndex: number;\n isBasketSharingEnabled: boolean | undefined;\n isECatalogue: boolean;\n items: ShoppingBagItem[];\n isDataLoaded: boolean;\n isLoading: boolean;\n onMouseEnter: (event: MouseEvent) => void;\n onMouseLeave: (event: MouseEvent) => void;\n}\n\nconst Root = styled('div')<{ ownerState: { breakpointIndex: number; isECatalogue: boolean } }>(\n ({ theme, ownerState }) => ({\n ...basePositionStyles,\n background: theme.palette.background.paper,\n boxShadow: theme.shadows[2],\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n left: 'auto',\n maxWidth: 'calc(100vw - 40px)',\n width:\n ownerState.isECatalogue && ownerState.breakpointIndex === 2 ? minibagWidthStyle : '400px',\n zIndex: 1,\n }),\n);\n\nconst ItemWrapper = styled(ScopedCssBaseline)(({ theme }) => ({\n position: 'relative',\n display: 'block',\n boxSizing: 'border-box',\n overflow: 'hidden',\n flex: 1,\n background: theme.palette.background.paper,\n}));\n\nconst EmptyBag = styled('div')(({ theme }) => ({\n position: 'inherit',\n top: '40%',\n textAlign: 'center',\n color: theme.palette.text.secondary,\n}));\n\nconst Items = styled(List)<{ itemsOwnerState: { isBasketSharingEnabled: boolean | undefined } }>(\n ({ theme, itemsOwnerState }) => ({\n boxSizing: 'border-box',\n listStyleType: 'none',\n maxHeight: '100%',\n overflow: 'auto',\n paddingTop: theme.spacing(13),\n paddingBottom: itemsOwnerState.isBasketSharingEnabled ? theme.spacing(25) : theme.spacing(15),\n overscrollBehavior: 'contain',\n }),\n);\n\nexport const MiniBag: FC = ({\n breakpointIndex,\n isBasketSharingEnabled,\n isECatalogue,\n items,\n isDataLoaded,\n isLoading,\n onMouseEnter,\n onMouseLeave,\n}) => {\n const quantity = items.reduce((total, current) => total + current.requestedQuantity, 0);\n const { getTestId } = useTestId();\n const ownerState = { breakpointIndex, isECatalogue };\n const itemsOwnerState = { isBasketSharingEnabled };\n\n return (\n \n \n {isLoading || !isDataLoaded ? : null}\n \n {items.length > 0 && (\n \n {items.map((item: ShoppingBagItem) => (\n \n ))}\n \n )}\n {isDataLoaded && items.length === 0 ? (\n \n \n \n \n \n - -\n \n \n ) : null}\n \n \n \n );\n};\n","/* eslint-disable react/jsx-no-bind -- don't want to write old function() syntax for event handlers */\nimport useTestId from '@ori/testid-generator';\nimport type { Data } from '@ori-events/basket-updated';\nimport * as RequestShoppingContext from '@ori-events/request-shopping-context';\nimport * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { Fade, Modal, styled } from '@ori-ui/mui';\nimport type { DebouncedFunc } from 'lodash';\nimport debounce from 'lodash.debounce';\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { MiniBag, minibagWidthStyle } from './MiniBag';\nimport { MiniBagContextProvider } from '~/contexts/minBagContext';\nimport { useBasketUpdated, useBreakpointIndex, useInitialShoppingContext } from '~/hooks';\nimport type { MiniBagState } from '~/models/MiniBagState';\nimport { initialMiniBagState } from '~/models/MiniBagState';\nimport { basePositionStyles, log } from '~/utils';\n\nconst topNavHeightStyle = 'var(--top-nav-height, 0)';\nconst toolbarPositionStyle = 'var(--ecatalogue-toolbar-position, 0)';\n\ninterface MiniBagWrapperProps {\n isECatalogue: boolean;\n isBasketSharingEnabled: boolean | undefined;\n}\n\ntype ToggleMenuCallbackResult = DebouncedFunc<() => void> | undefined;\n\nconst Root = styled(Modal)<{\n ownerState: { breakpointIndex: number; isECatalogue: boolean; isVisible: boolean };\n}>(({ ownerState, theme }) => ({\n ...basePositionStyles,\n position: 'fixed',\n display: 'block',\n textAlign: 'left',\n zIndex: 218,\n ...(!ownerState.isVisible && {\n left: 'auto',\n }),\n ...(((ownerState.isVisible && !ownerState.isECatalogue) ||\n (ownerState.isVisible && ownerState.isECatalogue && ownerState.breakpointIndex !== 2)) && {\n left: 0,\n }),\n ...(ownerState.isVisible &&\n ownerState.isECatalogue &&\n ownerState.breakpointIndex === 2 && {\n left: `calc(100vw - ${minibagWidthStyle})`,\n }),\n ...(!ownerState.isECatalogue && {\n top: topNavHeightStyle,\n }),\n ...(ownerState.isECatalogue &&\n ownerState.breakpointIndex === 2 && {\n top: toolbarPositionStyle,\n zIndex: theme.zIndex.drawer,\n }),\n ...(ownerState.isECatalogue &&\n ownerState.breakpointIndex !== 2 && {\n top: 0,\n zIndex: 1501,\n }),\n transition: `top var(${\n ownerState.isECatalogue\n ? '--ecatalogue-toolbar-position-animation'\n : '--top-nav-height-animation'\n }, 0.3s ease-in-out)`,\n}));\n\nexport const MiniBagWrapper: FC = ({\n isECatalogue,\n isBasketSharingEnabled,\n}) => {\n const breakpointIndex = useBreakpointIndex();\n const [miniBagState, setMiniBagState] = useState>(initialMiniBagState);\n const setState = useCallback(\n (nextState: Partial) =>\n setMiniBagState((previousState) => {\n const newState = {\n ...previousState,\n ...nextState,\n };\n log('setting new state:', newState);\n\n return newState;\n }),\n [],\n );\n\n const { isVisible = false, items = [], isDataLoaded = false, isLoading = true } = miniBagState;\n const [lastCallback, setLastCallback] = useState(undefined);\n const setCallback = useCallback(\n (callback: ToggleMenuCallbackResult) =>\n setLastCallback((oldCallback) => {\n if (oldCallback) {\n log('cancelling old callback ...');\n oldCallback.cancel();\n }\n log('setting up toggle menu callback:', callback);\n callback?.();\n\n return callback;\n }),\n [],\n );\n\n log(\n 'Rendering ...',\n '\\n\\tState:',\n miniBagState,\n '\\n\\tBreakpoint index:',\n breakpointIndex,\n '\\n\\tIs eCatalogue:',\n isECatalogue,\n '\\n\\tLast hover debounce callback:',\n lastCallback,\n );\n\n const { getTestId } = useTestId();\n\n const updateData = (data: Data) => {\n setState({\n isLoading: false,\n isDataLoaded: true,\n items: data.shoppingBag.shoppingBagItems.filter((item) => item.itemType !== 'U'),\n });\n };\n\n useInitialShoppingContext(updateData);\n useBasketUpdated(updateData);\n\n useEffect(() => {\n log('Requesting shopping context ...');\n const event = new CustomEvent(RequestShoppingContext.Name);\n window.dispatchEvent(event);\n }, []);\n\n const isECatalogueDesktop = isECatalogue && breakpointIndex === 2;\n const isOtherPageSmallScreen = !isECatalogue && breakpointIndex === 0;\n\n const debouncedHide = useCallback(\n () =>\n debounce(() => {\n setCallback(undefined);\n setState({ isVisible: false });\n }, 500),\n [setCallback, setState],\n );\n\n const toggleMenuCallback = useCallback<\n (data: ToggleMenuFlyout.Event) => DebouncedFunc<() => void> | undefined\n >(\n (data: ToggleMenuFlyout.Event) => {\n log('toggleMenuCallback - event:', data);\n\n if (isECatalogueDesktop || isOtherPageSmallScreen) {\n log('toggleMenuCallback: ignored in this breakpoint');\n\n return undefined;\n }\n\n if (data.detail.menuType !== ToggleMenuFlyout.MenuTypes.Minibag) {\n log('toggleMenuCallback: toggle-menu-flyout event for another component, closing ...');\n setState({ isVisible: false });\n\n return undefined;\n }\n\n if (typeof data.detail.shouldOpen === 'undefined') {\n log(\n 'toggleMenuCallback: toggle-menu-flyout event without shouldOpen property set,',\n 'toggling visibility ...',\n );\n\n setMiniBagState((previousState) => ({\n ...previousState,\n isVisible: !previousState.isVisible,\n }));\n\n return undefined;\n }\n\n if (data.detail.shouldOpen) {\n log('toggleMenuCallback: toggle-menu-flyout event with shouldOpen === true, opening ...');\n setState({ isVisible: true });\n\n return undefined;\n }\n\n log(\n 'toggleMenuCallback: toggle-menu-flyout event with shouldOpen === false',\n 'closing scheduled after 500 ms ...',\n );\n\n return debouncedHide();\n },\n [debouncedHide, isECatalogueDesktop, isOtherPageSmallScreen, setState],\n );\n\n useEffect(() => {\n // always show in eCatalog \"desktop\" mode\n if (isECatalogueDesktop) {\n log('eCatalogue and desktop - always shown: opening ...');\n setState({ isVisible: true });\n }\n // always hide in other pages small screen\n if (isOtherPageSmallScreen) {\n log('other pages and small breakpoint - always hidden: closing ...');\n setState({ isVisible: false });\n }\n\n const toggleMenuFlyoutHandler = ((data: ToggleMenuFlyout.Event) =>\n setCallback(toggleMenuCallback(data))) as EventListener;\n\n window.addEventListener(ToggleMenuFlyout.Name, toggleMenuFlyoutHandler);\n\n return () => window.removeEventListener(ToggleMenuFlyout.Name, toggleMenuFlyoutHandler);\n }, [\n breakpointIndex,\n isECatalogue,\n isECatalogueDesktop,\n isOtherPageSmallScreen,\n lastCallback,\n setCallback,\n setState,\n toggleMenuCallback,\n ]);\n\n const handleOverlayClick = () => {\n if (!isECatalogueDesktop) {\n setState({ isVisible: false });\n }\n };\n\n const handleMouseEnter = () => {\n if (isECatalogue || isOtherPageSmallScreen) {\n log('mouseenter: ignored in this breakpoint');\n\n return;\n }\n log('mouseenter');\n setCallback(undefined);\n };\n const handleMouseLeave = () => {\n if (isECatalogue || isOtherPageSmallScreen) {\n log('mouseleave: ignored in this breakpoint');\n\n return;\n }\n log('mouseleave: hiding ...');\n setState({ isVisible: false });\n };\n const ownerState = { breakpointIndex, isECatalogue, isVisible };\n\n return (\n \n \n \n \n \n
\n \n \n \n );\n};\n","import { useMediaQuery, useTheme } from '@ori-ui/mui';\n\n/**\n * The breakpoint where eCatalogue / iPaper layout\n * logic changes from mobile to desktop.\n */\nexport const E_CATALOGUE_BREAKPOINT = 1024;\n\n/**\n * @returns Zero-based breakpoint index as one of the following:\n * 0 - Small screen for pages other than eCatalogue / iPaper\n * Based on the 'sm' theme size. Minibag is not displayed\n * in this case outside of eCatalogue, and is displayed as a popup\n * in eCatalogue.\n * 1 - Middle breakpoint. Minibag is displayed in a popup for all pages.\n * Size is based on the E_CATALOGUE_BREAKPOINT constant.\n * 2 - Large breakpoint. Minibag is displayed as popup outside of eCatalogue,\n * and in fixed position appearing as page content in eCatalogue\n * (\"desktop\" mode). Size is based on the E_CATALOGUE_BREAKPOINT constant.\n */\nexport const useBreakpointIndex = () => {\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'), { noSsr: true });\n const isMiddleScreen = useMediaQuery(theme.breakpoints.down(E_CATALOGUE_BREAKPOINT), {\n noSsr: true,\n });\n\n let breakpointIndex = 0;\n\n if (isSmallScreen) {\n breakpointIndex = 0;\n } else if (isMiddleScreen) {\n breakpointIndex = 1;\n } else {\n breakpointIndex = 2;\n }\n\n return breakpointIndex;\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport * as ShoppingContextLoaded from '@ori-events/shopping-context-loaded';\nimport { useEffect } from 'react';\n\nexport const useInitialShoppingContext = (callback: (event: BasketUpdated.Data) => void) => {\n useEffect(() => {\n const listener = ((event: BasketUpdated.Event) => callback(event.detail)) as EventListener;\n window.addEventListener(ShoppingContextLoaded.Name, listener);\n\n return () => window.removeEventListener(ShoppingContextLoaded.Name, listener);\n }, [callback]);\n};\n","import * as BasketUpdated from '@ori-events/basket-updated';\nimport { useEffect } from 'react';\n\nexport const useBasketUpdated = (callback: (event: BasketUpdated.Data) => void) => {\n useEffect(() => {\n const listener = ((event: BasketUpdated.Event) => callback(event.detail)) as EventListener;\n window.addEventListener(BasketUpdated.Name, listener);\n\n return () => window.removeEventListener(BasketUpdated.Name, listener);\n }, [callback]);\n};\n","import { useCultureContext, ClientCultureContextProvider } from '@ori/culture-provider';\nimport { TestIdProvider } from '@ori/testid-generator';\nimport { ThemeProvider } from '@ori-ui/mui';\nimport type { FC } from 'react';\nimport { IntlProvider } from 'react-intl';\n\nimport { MiniBagWrapper } from '~/components';\nimport { BasketLinkContextProvider, ConfigurationProvider } from '~/contexts';\nimport type { AppConfiguration } from '~/models';\n\ninterface AppProps {\n isECatalogue: boolean;\n configuration: AppConfiguration;\n}\n\nexport const App: FC = ({ isECatalogue, configuration }) => {\n const { staticApiUrl, tenant, translations, goToBasketUrl, isBasketSharingEnabled } =\n configuration;\n const { getSelectedCultureCode } = useCultureContext();\n const cultureCode = getSelectedCultureCode() ?? document.documentElement.lang;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { version as ReactVersion } from 'react';\n\nimport { App } from './App';\nimport { getConfiguration } from '~/utils';\n\nexport const render = async (rootElement: HTMLElement, isECatalogue: boolean) => {\n const configuration = getConfiguration(rootElement);\n\n if (ReactVersion.startsWith('18')) {\n const { createRoot } = await import('react-dom/client');\n createRoot(rootElement).render(\n ,\n );\n } else {\n if (__DEV__) {\n // eslint-disable-next-line no-console -- show the info in console\n console.error('react-dom/client cannot be imported using legacy render');\n }\n const { render: reactDomRender } = await import('react-dom');\n reactDomRender(\n ,\n rootElement,\n );\n }\n};\n"],"names":["spin","keyframes","_templateObject","_taggedTemplateLiteral","Root","styled","_ref","theme","position","top","spacing","bottom","width","height","concat","background","alpha","palette","common","white","zIndex","Wrapper","left","transform","Spinner","OriflameSpinner","animation","_jsx","children","fontSize","color","configurationContext","createContext","DEFAULT_CONFIG","ConfigurationProvider","Provider","basketLinkContext","BasketLinkContextProvider","useBasketLinkContext","useContext","miniBagContext","setMiniBagState","MiniBagContextProvider","Link","margin","display","whiteSpace","paper","border","borderColor","primary","main","textAlign","textTransform","textDecoration","verticalAlign","cursor","WebkitBoxSizing","boxSizing","maxWidth","fontWeight","borderRadius","transition","boxShadow","Label","Typography","_ref2","lineHeight","MainButton","_ref3","basketLink","getTestId","useTestId","href","noWrap","Button","ShareButton","onClick","_jsxs","variant","Share","FormattedMessage","id","translationKeys","justifySelf","padding","Footer","isBasketSharingEnabled","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","_useState3","_useState4","sharedContent","setSharedContent","SharingWrapper","lazy","async","closeHandler","useCallback","setTimeout","log","openHandler","data","showSharePanel","_Fragment","Suspense","fallback","Loader","onClose","alignItems","text","secondary","BasketLink","Header","quantity","toString","ChangeOrigin","_defineProperty","alignSelf","breakpoints","up","flexShrink","QuantityPicker","testId","canBeDeleted","canBeModified","canBeReduced","initialQuantity","itemCode","lineNumber","maxQuantity","_useQuantityPicker","onQuantityChange","inputRef","useRef","isInputFocused","isServerUpdate","_useReducer","useReducer","x","forceUpdate","value","setValue","newValue","current","changeQuantity","inputValue","changeOrigin","Number","isNaN","BlurHandler","currentValue","KeyDownHandler","previousQuantity","then","handleChange","ChangeHandler","handleBlur","event","target","parseInt","handleFocus","input","setSelectionRange","length","handleKeyDown","key","_typeof","numericValue","useQuantityPicker","Counter","DecreaseIconButtonProps","disabled","IncreaseIconButtonProps","InputProps","type","onFocus","onBlur","onKeyDown","maxValue","minValue","onChange","IconButton","typography","pxToRem","black","justifyContent","Icon","Add","Remove","shadeElementStyles","ColorShadeElement","ownerState","_objectSpread","ImageShadeElement","ShadeElement","colors","colorHexCode","colorImageSrc","colorHexCodes","split","filter","hexCode","Boolean","src","alt","grey","A400","Shade","memo","colorName","borderTop","StyledMiniBagWrapper","ImgLink","marginRight","overflow","Image","maxHeight","MissingImgIcon","Products","StyledItemDescription","flexGrow","flexDirection","StyledItemInfoLink","_ref4","StyledName","textOverflow","WebkitLineClamp","WebkitBoxOrient","Discount","_ref5","marginLeft","offer","contrastText","backgroundColor","DiscountIcon","DiscountTagFilled","_ref6","StyledItemDetails","marginTop","StyledQuantityBlock","StyledPriceBlock","StyledPrice","_ref7","StyledPriceOld","_ref8","ItemShadeWrapper","_ref9","gap","Item","_ref10","itemDescription","itemImageSrc","itemDetailPath","itemType","requestedQuantity","totalOriginalPrice","totalPrice","itemColor","setState","nextState","previousState","removeItemHandler","isLoading","removeBasketItem","placement","Placement","error","console","handleQuantityChange","_ref11","code","line","currentQuantity","updateBasketItem","showErrorNotification","partialId","minibagWidthStyle","basePositionStyles","shadows","isECatalogue","breakpointIndex","ItemWrapper","ScopedCssBaseline","flex","EmptyBag","Items","List","itemsOwnerState","listStyleType","paddingTop","paddingBottom","overscrollBehavior","MiniBag","items","isDataLoaded","onMouseEnter","onMouseLeave","reduce","total","map","item","Modal","isVisible","drawer","MiniBagWrapper","isSmallScreen","isMiddleScreen","useTheme","useMediaQuery","down","noSsr","initialMiniBagState","miniBagState","newState","_miniBagState$isVisib","_miniBagState$items","_miniBagState$isDataL","_miniBagState$isLoadi","undefined","lastCallback","setLastCallback","setCallback","callback","oldCallback","cancel","updateData","shoppingBag","shoppingBagItems","useEffect","listener","detail","window","addEventListener","ShoppingContextLoaded","removeEventListener","BasketUpdated","useBasketUpdated","CustomEvent","RequestShoppingContext","dispatchEvent","isECatalogueDesktop","isOtherPageSmallScreen","debouncedHide","debounce","toggleMenuCallback","menuType","ToggleMenuFlyout","shouldOpen","toggleMenuFlyoutHandler","disableEnforceFocus","open","BackdropProps","timeout","role","Fade","in","App","_getSelectedCultureCo","configuration","staticApiUrl","tenant","translations","goToBasketUrl","cultureCode","getSelectedCultureCode","useCultureContext","document","documentElement","lang","ThemeProvider","enableCacheProvider","cacheKey","ClientCultureContextProvider","host","IntlProvider","locale","messages","TestIdProvider","team","project","render","rootElement","getConfiguration","ReactVersion","createRoot","reactDomRender"],"sourceRoot":""}