{"version":3,"file":"chunk.9871.5745b09036cb7af8686a.af5a6717.js","mappings":"4FAEAA,E,SAAAA,GAAgB,CACdC,MAAO,0CAEPC,OAAM,WACJ,MAAO,CACLD,MAAO,kCAEX,G,yBCPFE,E,SAAAA,GAAkB,CAChBC,SAAU,6CAEVF,OAAM,SAACG,GACL,IACMC,EADYC,EAAEF,GACOG,QAAQ,sBAAsBC,KAAK,cAAxDH,QAaN,OAXIA,EAAQI,oBACVC,OAAOC,UAAYD,OAAOC,WAAa,GACrCD,OAAOC,UAAUC,KAAK,CACpB,MAAS,sBACT,QAAW,CACT,GAAMP,EAAQQ,GACd,kBAAqBR,EAAQS,sBAK9B,CAAEd,MAAO,oBAClB,G,wDCnBIe,G,EAAoB,G,EACS,mB,EAA9BC,EAAAA,GAAWC,SAASC,W,4FAQzBnB,EAAAA,EAAAA,GAAgB,CACZC,MAAO,2BACPC,OAAM,SAAAkB,GAAa,IARMC,EACnBC,EAQIC,EAAS,CAAC,CAAEtB,MAAO,QAASuB,QAAS,eACrCC,GAVeJ,EAQVD,EAANM,QAPHJ,GAAYK,EAAAA,EAAAA,IAAgBN,KACdL,EAAqBM,GACnC,CAAErB,MAAOe,EAAqBM,IAC9B,MAUF,OAHIG,GACAF,EAAOV,KAAKY,GAETF,CACX,G,4KCjBJ,IAAMK,GAAkBC,EAAAC,EAAG,CAAC,EACzBb,EAAAA,GAAWC,SAASa,KAAO,eAAaF,EAAAC,EACxCb,EAAAA,GAAWC,SAASC,QAAU,mBAAiBW,GAGlDE,EAAAA,EAAoBC,GAAG,OAAO,SAAAb,GAAkC,IAA/Bc,EAAQd,EAARc,SAAUC,EAAUf,EAAVe,WAAYd,EAAED,EAAFC,GAC/CE,EAAS,CAAC,CACdtB,MAAO,wBACPmC,OAAQ,CACNtB,GAAIoB,EACJG,KAAMF,KAIJG,GAAeX,EAAAA,EAAAA,IAAgBN,GACjCiB,GAAgBV,EAAmBU,IACrCf,EAAOV,KAAK,CAAEZ,MAAO2B,EAAmBU,MAG1CC,EAAAA,EAAAA,GAAgBhB,EAClB,G,koDCrBAvB,E,SAAAA,GAAgB,CACdC,MAAO,8CAEPC,OAAM,SAACsC,EAAGC,GACR,IAAMhC,EAAOgC,EAAIC,iBAAiBC,QAAO,SAACC,EAAMxB,GAAsB,IAAlByB,EAAIzB,EAAJyB,KAAMC,EAAK1B,EAAL0B,MACxD,OAAAC,EAAAA,EAAA,GAAYH,GAAM,GAAAf,EAAA,GAAGgB,EAAOC,GAC9B,GAAG,CAAC,GAEEE,EAAW,CACfvC,EAAK,sBACLA,EAAK,sBACLA,EAAK,uBACLwC,KAAK,KAEDC,EAAcT,EAAIU,KAAK,6BAA6BC,KAAK,sBAAsBD,KAAK,mBAAmBE,OACvGC,EAAcb,EAAIU,KAAK,0BAA0BC,KAAK,sBAAsBD,KAAK,mBAAmBE,OAE1G,MAAO,CACLpD,MAAO,oBACPsD,KAAMC,OAAOC,QAAQ,CACnBT,SAAAA,EACAM,SAAAA,EACAJ,YAAAA,EACApC,GAAgB4C,IAAIH,KAAKzC,GACzBuB,KAAgBqB,IAAIH,KAAKlB,KACzBsB,OAAwC,QAAxBlD,EAAK,gBAA4B,OAAS,SAC1DmD,UAAgBnD,EAAK,oBACrBoD,SAAgBpD,EAAK,mBACrBqD,MAAgBrD,EAAK,eACrBsD,MAAgBtD,EAAK,eACrBuD,UAAgBvD,EAAK,oBACrBwD,aAAgBC,SAASzD,EAAK,6BAC9B0D,KAAgB1D,EAAK,cACrB2D,MAAgB3D,EAAK,eACrB4D,UAAgB5D,EAAK,mBACrB6D,SAAgB7D,EAAK,kBACrB8D,QAAgB9D,EAAK,iBACrB+D,QAAgB/D,EAAK,mBAEpBgE,KAAI,SAAAC,GAAA,IAAAC,EAAAC,EAAAF,EAAA,GAAY,MAAM,CAAbC,EAAA,GAAOA,EAAA,IAAqB,GAAG,IACxChC,QAAO,SAACP,EAAMyC,GAAA,IAAAC,EAAAF,EAAAC,EAAE,GAACE,EAAGD,EAAA,GAAEhC,EAAKgC,EAAA,UAAA/B,EAAAA,EAAA,GAAYX,GAAM,GAAAP,EAAA,GAAGkD,EAAMjC,GAAK,GAAK,CAAC,GAExE,G,6CC5CK,SAASkC,EAAW3D,GACvB,IAAI4D,EACEC,EAAsD,QAA3CD,EAAK5D,EAAGb,QAAQ,6BAA0C,IAAPyE,OAAgB,EAASA,EAAGE,aAAa,oBAC7G,GAAKD,EAEL,OAAOE,KAAKC,MAAMH,GAAS5E,OAC/B,CACO,SAASgF,EAAWjE,GACvB,IAAI4D,EACJ,OAAyD,QAAjDA,EAAK5D,EAAGb,QAAQ,mCAAgD,IAAPyE,OAAgB,EAASA,EAAGE,aAAa,yBAC9G,C,urBCPA,IAAMnE,GAAoBa,EAAA0D,EAAG,CAAC,EACzBtE,EAAAA,GAAWC,SAASC,QAAU,mBAAiBU,EAAA0D,EAC/CtE,EAAAA,GAAWC,SAASa,KAAO,cAAYwD,GAE5C,SAASC,EAAepE,GAA0D,IAAvDd,EAAOc,EAAPd,QAASmF,EAAIrE,EAAJqE,KAAMC,EAAQtE,EAARsE,SAAQC,EAAAvE,EAAEnB,MAChD,MAAO,CACHA,WAFiD,IAAA0F,EAAG,mBAAkBA,EAGtErF,QAAAA,EACAsF,UAAW,CACPC,aAAc,MACdC,IAAK,CACD5E,SAAU,CAAA6B,EAAAA,EAAA,GACCzC,GAAO,IACVoF,SAAU,EACVK,QAASL,EAAWpF,EAAQ0F,SAEpCC,YAAa,CACTR,KAAAA,KAKpB,CACA,SAASS,EAAiB5F,GAEtB,OADiBA,EAAQ6F,WAAa,UAElC,IAAK,SACD,MAAO,sBACX,IAAK,YACD,MAAO,wBACX,IAAK,YACD,MAAO,wBACX,IAAK,YACD,MAAO,wBACX,QACI,OAAO,KAEnB,EAOAnG,EAAAA,EAAAA,GAAgB,CACZC,MAAO,iEACPC,OAAM,SAAAwE,GAA+B,IAA5BhD,EAAMgD,EAANhD,OAAkB0E,EAAI1B,EAAd2B,OAAUD,KACjBE,EAAgB5E,EAChB6E,EAAavB,EAAWsB,IAAkBF,EAAKG,WACrD,IAAKA,EACD,MAAO,GACX,IACMhF,EAAS,CAACiE,EAAgB,CAAElF,QAASiG,EAAYd,KADtCH,EAAWgB,IAAkB,UACyBZ,SAAUU,EAAKV,YAC5D,aAAtBU,EAAKI,cACLjF,EAAOV,KAAK,CAAEZ,MAAO,2BAA4BK,QAASiG,IAE9D,IAAME,EAAgBP,EAAiBK,GACnCE,GACAlF,EAAOV,KAAK,CAAEZ,MAAOwG,EAAenG,QAASiG,IAEjD,IAtBqBlF,EACnBC,EAqBIG,GAtBeJ,EAsBwBiF,GArB3ChF,GAAYK,EAAAA,EAAAA,IAAgBN,KACdL,EAAqBM,GACnC,CAAErB,MAAOe,EAAqBM,IAC9B,MAsBF,OAHIG,GACAF,EAAOV,KAAKY,GAETF,CACX,KAEJvB,EAAAA,EAAAA,GAAgB,CACZC,MAAO,mEACPC,OAAM,SAACD,GAAO,IACFyB,EAAWzB,EAAXyB,OACF6E,EAAavB,EAAWtD,GACxBgF,EAAWpB,EAAW5D,IAAW,UACvC,IAAK6E,EACD,MAAO,GACX,IAAMhF,EAAS,CAACiE,EAAgB,CAAEvF,MAAO,uBAAwBK,QAASiG,EAAYd,KAAMiB,EAAUhB,SAAU,KAC1Ge,EAAgBP,EAAiBK,GAIvC,OAHIE,GACAlF,EAAOV,KAAK,CAAEZ,MAAOwG,EAAenG,QAASiG,IAE1ChF,CACX,KAEJvB,EAAAA,EAAAA,GAAgB,CACZC,MAAO,kCACPC,OAAM,SAACD,GAAO,IACQyF,EAAuBzF,EAAjCoG,OAAUX,SAAYhE,EAAWzB,EAAXyB,OACxB6E,EAAavB,EAAWtD,GACxBgF,EAAWpB,EAAW5D,IAAW,UACvC,IAAK6E,EACD,MAAO,GACX,IAAMhF,EAAS,CAACiE,EAAgB,CAAElF,QAASiG,EAAYd,KAAMiB,EAAUhB,SAAAA,KACjEe,EAAgBP,EAAiBK,GAIvC,OAHIE,GACAlF,EAAOV,KAAK,CAAEZ,MAAOwG,EAAenG,QAASiG,IAE1ChF,CACX,G,4JC1FJ,QATA,SAAwBH,GAAwC,I,IAArCnB,EAAKmB,EAALnB,MAAOC,EAAMkB,EAANlB,OAAMyG,EAAAvF,EAAEwF,MAAAA,OAAK,IAAAD,EAAG,kBAAM,CAAI,EAAAA,EACPE,G,EAAnB5G,EAAM6G,MAAM,Q,EAAO,E,kzBAA1CC,EAASF,EAAA,GAAEzG,EAAQyG,EAAA,GACtBD,KACArG,EAAEyG,UAAU/E,GAAG8E,EAAW3G,GAAY4G,UAAU,SAACxE,GAAe,QAAAyE,EAAAC,UAAAC,OAATC,EAAI,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,EAAA,GAAAJ,UAAAI,GAEvD,OADA/E,EAAAA,EAAAA,GAAgBrC,EAAMqH,WAAC,EAAD,CAAC/E,EAAGjC,EAAEiC,EAAE8D,gBAAckB,OAAKJ,MAC1C,CACX,GAER,C,0BCPAjH,E,SAAAA,GAAkB,CAChBC,SAAU,gCACVF,OAAM,WACJ,MAAO,CAAED,MAAO,0BAClB,G,2ECLWwH,EAAS,CAAC,GAAI,GAAI,GAAI,KACtBvH,EAAS,SAACwH,GACnB,OAAOA,EAAOjD,KAAI,SAAArD,GAAU,MAAQ,CAChCnB,MAAO,aACP0H,KAAM,CACFC,cAHoBxG,EAAPyG,SAKpB,GACL,GACAC,EAAAA,EAAAA,GAAuB,CACnB1H,SAAU,aACVsH,OAAQD,EACRM,KAAI,WACA,MAAO,mCAAmCC,KAAKhB,SAASiB,SAASC,SACrE,EACAhI,OAAAA,G,6/BCXW,SAASC,EAAiBiB,GAAuB,IAApBhB,EAAQgB,EAARhB,SAAUF,EAAMkB,EAANlB,OAChDiI,EAAY,IAAIC,IAEpB,SAASC,EAAKhH,GACZ,IAAI8G,EAAUG,IAAIjH,GAAlB,CAEA,IAAIkH,EAAS,CACXC,WAAa,EACbC,aAAa,GAGfN,EAAUO,IAAIrH,EAAIkH,GAElBI,EAAAA,EAAUN,KAAK9H,EAAEc,IAAKuH,MAAK,WACzBL,EAAOC,WAAY,EAEnBK,GACF,GAb6B,CAc/B,CAEA,IAAIA,GAAUC,EAAAA,EAAAA,GAAS,KAAK,WAC1B,I,EAAIC,G,EAAeZ,E,oUAChBa,QAAO,SAAAtE,GAAA,IAAAC,EAAAC,EAAAF,EAAA,GAAO6D,GAAF5D,EAAA,GAAQA,EAAA,WAAM4D,EAAOC,YAAcD,EAAOE,WAAW,IACjEhE,KAAI,SAAAI,GAAkB,IAAAC,EAAAF,EAAAC,EAAA,GAAhBxD,EAAEyD,EAAA,GAGP,OAHeA,EAAA,GACR2D,aAAc,EAEdpH,CACT,KAEFkB,EAAAA,EAAAA,GAAgBrC,EAAO6I,GACzB,IAEAE,aAAY,WACV1I,EAAEH,GAAUkI,MAAMY,QAAQb,EAC5B,GAAG,IACL,C,yCCtCArI,EAAAA,EAAAA,GAAgB,CACdC,MAAO,4BAEPC,OAAM,SAACsC,EAAGC,EAAGrB,GACX,MAAO,CACLnB,MAAO,gBACPkJ,OAAQ,YACRrF,MAJkB1C,EAAL0C,MAMjB,KAGF9D,EAAAA,EAAAA,GAAgB,CACdC,MAAO,6BAEPC,OAAM,SAACsC,EAAGC,EAAGiC,GACX,MAAO,CACLzE,MAAO,gBACPkJ,OAAQ,cACRrF,MAJkBY,EAALZ,MAMjB,G,0BCrBF3D,E,SAAAA,GAAkB,CAChBC,SAAU,kBAEVF,OAAM,SAACkJ,GACL,IAAIC,EAAUD,EACX3E,KAAI,SAAAkD,GAAI,OAAIpH,EAAEoH,GAAMlH,KAAK,UAAU,IACnCgE,KAAI,SAAAkD,GAAI,OAAIA,EAAK7G,EAAE,IACnBmC,KAAK,KAER,OAAOoG,GAAW,CAChBpJ,MAAO,iBACPoJ,QAAAA,EAEJ,G,ysBCfK,SAASC,EAAmBlI,EAAYmI,GAAK,IAAdC,EAAKpI,EAALoI,MAC5BC,EAAcF,EAAIG,SAAS,aAC3BC,EAAQJ,EAAIG,SAAS,OACrBE,EAAmBL,EAAIG,SAAS,kBAChCG,EAAeN,EAAIG,SAAS,cAClC,OAAOF,EAAM7G,QAAO,SAACmH,EAAGpF,GAA2D,IAAvDsB,EAAKtB,EAALsB,MAAON,EAAQhB,EAARgB,SAAUqE,EAAQrF,EAARqF,SAAUC,EAAStF,EAATsF,UAAWzD,EAAU7B,EAAV6B,WAS9D,OARIkD,GACAK,EAAIG,UAAUpJ,KAAK,CAAEC,GAAIkJ,EAAWhE,MAAAA,EAAON,SAAAA,EAAUqE,SAAAA,IACrDH,GACAE,EAAII,eAAerJ,KAAIkC,EAAAA,EAAC,CAAC,EAAIwD,GAAU,IAAEb,SAAAA,KACzCmE,IACAC,EAAIK,WAAaL,EAAIK,WAAazE,EAAWM,GAC7C2D,GACAG,EAAIM,IAAIvJ,KAAKmJ,GACVF,CACX,GAAG,CAAEK,WAAY,EAAGC,IAAK,GAAIH,UAAW,GAAIC,eAAgB,IAChE,C,0CCdAlK,E,SAAAA,GAAgB,CACdC,MAAO,gDAEPC,OAAM,SAACsC,EAAGC,GAGR,MAAO,CACLxC,MAAO,yBACPK,QAJgBmC,EAAIjC,QAAQ,sBAAsBC,KAAK,cAAnDH,QAMR,G,wCCXI+J,EAAyB,CAC3BC,mBAAoB,mBACpBC,KAAM,uBAEJC,EAA4B,CAC9BC,KAAM,mBACNC,IAAK,iBACLC,IAAK,mBAGT3K,EAAAA,EAAAA,GAAgB,CACZC,MAAO,+CACPC,OAAM,SAAC0K,EAAIC,EAAIzJ,GAA6B,IAAA0J,EAAA1J,EAAzB2J,iBACTxJ,EAAS,GASf,YAV+B,IAAAuJ,EAAG,GAAEA,GAEnB5B,SAAQ,SAAAxE,GAAqB,IAAlB7B,EAAI6B,EAAJ7B,KAAMC,EAAK4B,EAAL5B,MAC1BD,KAAQwH,GACR9I,EAAOV,KAAK,CAAEZ,MAAOoK,EAAuBxH,KAPlC,WASVA,GAA8BC,KAAS0H,GACvCjJ,EAAOV,KAAK,CAAEZ,MAAOuK,EAA0B1H,IAEvD,IACOvB,CACX,G,0BCtBJvB,E,SAAAA,GAAgB,CACdC,MAAO,oCAEPC,OAAM,SAAC0K,EAAIC,EAAIzJ,GAAwB,IAApB0C,EAAK1C,EAAL0C,MACjB,MAAO,CACL7D,MAAO,+BACP+K,6BAA8B,CAC5BhB,UAJ6B5I,EAAT4I,UAKpBlG,MAAAA,GAGN,G,iuBCZF,IAAM9C,GAAoBa,EAAA0D,EAAG,CAAC,EACzBtE,EAAAA,GAAWC,SAASC,QAAU,qBAAmBU,EAAA0D,EACjDtE,EAAAA,GAAWC,SAAS+J,cAAgB,uBAAqBpJ,EAAA0D,EACzDtE,EAAAA,GAAWC,SAASgK,mBAAqB,uBAAqBrJ,EAAA0D,EAC9DtE,EAAAA,GAAWC,SAASiK,gBAAkB,gBAActJ,EAAA0D,EACpDtE,EAAAA,GAAWC,SAASkK,eAAiB,kBAAgBvJ,EAAA0D,EACrDtE,EAAAA,GAAWC,SAASmK,YAAc,kBAAgB9F,GA+CvDyB,SAASsE,iBAAiB,SAAS,SAAC9I,GAChC,IAAMd,EAASc,EAAEd,OACXL,EAAKK,EAAOlB,QAAQ,4BAC1B,GAAqC,WAAjCkB,EAAO6J,QAAQC,eAGfnK,EAAI,CACJ,IAAME,EAjDd,SAAmBF,GACf,IAAI4D,EAAIwG,EAAIC,EACNC,EAA6D,QAAjD1G,EAAK5D,EAAGb,QAAQ,mCAAgD,IAAPyE,OAAgB,EAASA,EAAGE,aAAa,0BAC9GyG,EAAyD,QAA3CH,EAAKpK,EAAGb,QAAQ,6BAA0C,IAAPiL,OAAgB,EAASA,EAAGtG,aAAa,oBAChH,IAAKyG,EACD,MAAO,GACV,IAAAC,EAC0BzG,KAAKC,MAAMuG,GAA9BE,EAAKD,EAALC,MAAOxL,EAAOuL,EAAPvL,QACTiB,EAAS,CACX,CACItB,MAAO,eACPK,QAAOyC,EAAA,GAAOzC,GACdsF,UAAW,CACPkG,MAAO,CACH5K,SAAU,CAAA6B,EAAAA,EAAA,GAAMzC,GAAO,IAAEyL,SAAU1E,MAAM2E,MAAkC,QAA3BN,EAAKrK,EAAG4K,qBAAkC,IAAPP,OAAgB,EAASA,EAAGQ,WAAa,IAAIC,QAAQ9K,MACxI4E,YAAa,CACTR,KAAMkG,MAKtB,CACI1L,MAAO,QACPuB,QAASsK,IAGbxL,GAAWA,EAAQ8L,mBACnBzL,OAAOC,UAAYD,OAAOC,WAAa,GACvCD,OAAOC,UAAUC,KAAK,CAClB,MAAS,qCACT,QAAW,CACP,GAAMP,EAAQQ,GACd,YAAeR,EAAQ+L,gBAInC,IAAM/K,GAAYK,EAAAA,EAAAA,IAAgBN,GAIlC,OAHIC,GAAaN,EAAqBM,IAClCC,EAAOV,KAAK,CAAEZ,MAAOe,EAAqBM,KAEvCC,CACX,CAQuB+K,CAAUjL,GACzB,GArDe,SAACA,GACpB,MAAoB,eAAbqC,IAAIb,MAAyBxB,EAAGkL,QAAQ,yBACnD,CAmDYC,CAAenL,GAAK,CACpBmB,EAAEiK,iBACF,IAAMC,EAAOrL,EAAG8D,aAAa,QACzBuH,GACAC,YAAW,WACP3F,SAASiB,SAASyE,KAAOA,CAC7B,GAAG,IAEX,EACAnK,EAAAA,EAAAA,GAAgBhB,EACpB,CACJ,G,6KCvEA,IAAMP,GAAoBa,EAAA0D,EAAG,CAAC,EACzBtE,EAAAA,GAAWC,SAASC,QAAU,mBAAiBU,EAAA0D,EAC/CtE,EAAAA,GAAWC,SAASa,KAAO,mBAAiBwD,IAEjDvF,EAAAA,EAAAA,GAAgB,CACZC,MAAO,8BACPC,OAAM,SAAAkB,GAAa,IAAVM,EAAMN,EAANM,OACCH,EAAS,GACTD,GAAYK,EAAAA,EAAAA,IAAgBD,GAIlC,OAHIJ,GAAaA,KAAaN,GAC1BO,EAAOV,KAAK,CAAEZ,MAAOe,EAAqBM,KAEvCC,CACX,G,wCCbAqL,EAAe,SAAAnK,GACjB,MAAoB,eAAbiB,IAAIb,MAAyBJ,EAAIoK,GAAG,OAASpK,EAAIoK,GAAG,kBAC7D,EAEIC,EAAgB,SAAArK,GAAG,OAAI,WACrBmK,EAAanK,KACfuE,SAASiB,SAASyE,KAAOjK,EAAIsK,KAAK,QAEtC,CAAC,GAED/M,EAAAA,EAAAA,GAAgB,CACdC,MAAO,4BAEPC,OAAM,SAACsC,EAAGC,GAKR,OAJImK,EAAanK,IACfD,EAAEiK,iBAGG,CACLxM,MAAO,QACPuB,QAASiB,EAAIhC,KAAK,YAClBuM,aAAc,IACdF,cAAeA,EAAcrK,GAEjC,G,oDCxBFzC,EAAAA,EAAAA,GAAgB,CACZC,MAAO,sBACPC,OAAM,SAAAkB,GAAwB,IAAX6L,EAAK7L,EAAfiF,OAAU4G,MACTC,GAAW5D,EAAAA,EAAAA,GAAoB2D,EAAO,CAAC,YAAa,mBACpDE,EAAoBF,EAAMzD,MAAMR,QAAO,SAAA5C,GAAI,OAAIA,EAAKG,YAAcH,EAAKG,WAAW6F,gBAAgB,IAYxG,OAXIe,EAAkBhG,OAAS,IAC3BxG,OAAOC,UAAYD,OAAOC,WAAa,GACvCD,OAAOC,UAAUC,KAAK,CAClB,MAAS,iCACT,SAAYsM,EAAkB1I,KAAI,SAAA2B,GAAI,MAAK,CACvCtF,GAAIsF,EAAK4D,UACTtE,SAAUU,EAAKV,SACf2G,YAAajG,EAAKG,WAAW8F,YAChC,OAGF,CACHpM,MAAO,WACPmN,KAAM,CACF5D,MAAO0D,EAASjD,WAEpBrE,UAAW,CACPyH,SAAU,CAAEpH,YAAa,CAAEqH,KAAM,IACjCpM,SAAUgM,EAAShD,gBAG/B,G,kJC3BJ,IAAMqD,EAA0B,CAC5BC,MAAO,iBACPC,WAAY,4BAEhBzN,EAAAA,EAAAA,GAAgB,CACZC,MAAO,0CACPC,OAAM,SAACsC,EAACpB,GAAQ,I,IAALC,G,EAAKD,E,EAAA,E,kzBAAH,GACHsM,EAAarM,EAAGsM,QAAQC,qBAC9B,GAAMF,KAAcH,EAApB,CAEA/K,EAAEiK,iBACF,IAAMC,EAAOrL,EAAG8D,aAAa,QAI7B,OAHIuH,GACAC,YAAW,WAAQ3F,SAASiB,SAASyE,KAAOA,CAAM,GAAG,GAElD,CAAEzM,MAAOsN,EAAwBG,GAN9B,CAOd,G,0BCfJ1N,E,SAAAA,GAAgB,CACdC,MAAO,wBAEPC,OAAM,SAACsC,EAAGnB,EAAED,GAA0B,IAAtByB,EAAIzB,EAAJyB,KACd,MAAO,CACL5C,MAAO,kBACP4N,gBAAiB,CACf9J,MAJqB3C,EAAL2C,MAKhBD,MAL4B1C,EAAL0C,MAMvBjB,KAAAA,GAGN,G,oDCZF7C,EAAAA,EAAAA,GAAgB,CACZC,MAAO,sBACPC,OAAM,SAAAkB,GAAwB,IAAX6L,EAAK7L,EAAfiF,OAAU4G,MACTC,GAAW5D,EAAAA,EAAAA,GAAoB2D,EAAO,CAAC,MAAO,YAAa,iBAAkB,eACnF,MAAO,CACHhN,MAAO,WACPmN,KAAM,CACF5D,MAAO0D,EAASjD,WAEpBrE,UAAW,CACPI,MAAOkH,EAAS/C,WAChB2D,YAAaZ,EAAS9C,IACtBlJ,SAAUgM,EAAShD,gBAG/B,G,iDCbJlI,EAAoBC,GAAG,UAAU,SAAAb,GAA8B,IAA3Bc,EAAQd,EAARc,SAAUC,EAAUf,EAAVe,YAC5CI,EAAAA,EAAAA,GAAgB,CACdtC,MAAO,2BACPmC,OAAQ,CACNtB,GAAIoB,EACJG,KAAMF,IAGZ,G,itBCVAhC,E,SAAAA,GAAkB,CAChBC,SAAU,6BAEVF,OAAM,SAAC6N,GACL,IAAI7M,EAAW6M,EAAWtJ,KAAI,SAAApE,GAC5B,IAAI2N,EAAczN,EAAEF,GAChB4N,EAAcD,EAASC,QACvBtC,EAAcqC,EAASxN,QAAQ,4BAA4BC,KAAK,mBAGpE,OAAAsC,EAAAA,EAAA,GAFkBiL,EAASxN,QAAQ,sBAAsBC,KAAK,cAAxDH,SAEa,IACjByL,SAAUkC,EACVxI,KAAMkG,GAEV,IAEIuC,EAAahN,EACduD,KAAI,SAAArD,GAAK,OAAAA,EAAFN,EAAW,IAClBmC,KAAK,KAEFkL,EAAuBjN,EAAS8H,QAAO,SAAA1I,GAAO,OAAIA,EAAQ8L,gBAAgB,IAE5E+B,EAAqBhH,OAAS,GAChCgH,EAAqBjF,SAAQ,SAAA5I,GAC3BK,OAAOC,UAAYD,OAAOC,WAAa,GACvCD,OAAOC,UAAUC,KAAK,CACpB,MAAS,oCACT,QAAW,CACT,GAAMP,EAAQQ,GACd,YAAeR,EAAQ+L,cAG7B,IAIF,IAAM+B,EAAwBlN,EAAS8H,QAAO,SAAA1I,GAAO,OAAIA,EAAQI,iBAAiB,IAgBlF,OAdI0N,EAAsBjH,OAAS,GACjCiH,EAAsBlF,SAAQ,SAAA5I,GAC5BK,OAAOC,UAAYD,OAAOC,WAAa,GACvCD,OAAOC,UAAUC,KAAK,CACpB,MAAS,sBACT,QAAW,CACT,GAAMP,EAAQQ,GACd,kBAAqBR,EAAQS,oBAGnC,IAIKG,EAASiG,QAAU,CACxBlH,MAAO,oBACPiO,WAAYA,EACZtI,UAAW,CACTyI,YAAanN,GAGnB,G,itBC3DFlB,E,SAAAA,GAAgB,CACdC,MAAO,gCAEPC,OAAM,SAAAkB,GAA0D,IAAAkN,EAAAlN,EAAvDiF,OAAMkI,EAAAD,EAAI9M,QAAWwI,EAASuE,EAATvE,UAAWtE,EAAQ6I,EAAR7I,SACjCU,EADkDkI,EAALrB,MAChCzD,MAAMrG,MAAK,SAAAiD,GAAI,OAAIA,EAAK4D,YAAcA,CAAS,IAElE,GAAK5D,EAAKG,WAEV,MAAO,CACLtG,MAAO,8BACPK,QAAOyC,EAAAA,EAAA,GAAOqD,EAAKG,YAAU,IAAEb,SAAAA,IAEnC,G,6JCZF,I,MAAM1E,G,EAAoB,G,EACS,wB,EAA9BC,EAAAA,GAAWC,SAASC,W,4FAWzBnB,EAAAA,EAAAA,GAAgB,CACZC,MAAO,2BACPC,OAAM,SAACsC,EAACpB,GAAQ,I,IAALC,G,EAAKD,E,EAAA,E,kzBAAH,GACHG,EAZd,SAAmBF,GACf,IACME,EAAS,CAAC,CAAEtB,MAAO,kBAAmB0H,KAD/BtG,EAAGsM,QAAQa,QAAUpJ,KAAKC,MAAMhE,EAAGsM,QAAQa,SAAW,CAAC,IAE9DlN,GAAYK,EAAAA,EAAAA,IAAgBN,GAIlC,OAHIC,GAAaN,EAAqBM,IAClCC,EAAOV,KAAK,CAAEZ,MAAOe,EAAqBM,KAEvCC,CACX,CAIuB+K,CAAUjL,GACzB,GAAiB,eAAbqC,IAAIb,KAAuB,CAC3BL,EAAEiK,iBACF,IAAMC,EAAOrL,EAAG8D,aAAa,QACzBuH,GACAC,YAAW,kBAAM3F,SAASiB,SAASyE,KAAOA,CAAI,GAAE,IAExD,CACA,OAAOnL,CACX,G,itBCxBJvB,E,SAAAA,GAAgB,CACdC,MAAO,wBAEPC,OAAM,SAAAkB,GAAgD,IAAAkN,EAAAlN,EAA7CiF,OAAqB2D,EAASsE,EAApB9M,QAAWwI,UACtB5D,EADwCkI,EAALrB,MACtBzD,MAAMrG,MAAK,SAAAiD,GAAI,OAAIA,EAAK4D,YAAcA,CAAS,IAElE,GAAK5D,EAAKG,WAEV,MAAO,CACLtG,MAAO,wBACPK,QAAS8F,EAAKG,WACdX,UAAW,CACT6I,OAAQ,CACNvN,SAAU,CAAA6B,EAAAA,EAAA,GAAMqD,EAAKG,YAAU,IAC7BR,QAAS,IAAFyB,OAAMpB,EAAKV,SAAWU,EAAKJ,YAK5C,G,wCCpBIqE,EAAyB,CAC3BrE,MAAO,cACP0I,MAAO,cACPC,KAAM,aACNC,OAAQ,cACRpB,MAAO,cACPqB,aAAc,gBACdC,UAAW,iBACX,uBAAwB,gBAE5B9O,EAAAA,EAAAA,GAAgB,CACZC,MAAO,+CACPC,OAAM,SAAC0K,EAAIC,EAAIzJ,GAA6B,IAAA0J,EAAA1J,EAAzB2J,iBACTxJ,EAAS,CAAC,CAAEtB,MAAO,kBAMzB,YAP+B,IAAA6K,EAAG,GAAEA,GAEnB5B,SAAQ,SAAAxE,GAAc,IAAX7B,EAAI6B,EAAJ7B,KACpBA,KAAQwH,GACR9I,EAAOV,KAAK,CAAEZ,MAAOoK,EAAuBxH,IAEpD,IACOtB,CACX,G,yCCnBJvB,EAAAA,EAAAA,GAAgB,CACdC,MAAO,4BAEPC,OAAM,SAAC0K,EAAIC,EAAIzJ,GAA4B,IAAxBe,EAAUf,EAAVe,WACjB,MAAO,CACLlC,MAAO,sBACPmC,OAAQ,CACNtB,GAJiCM,EAARc,SAKzBG,KAAMF,GAGZ,KAGFnC,EAAAA,EAAAA,GAAgB,CACdC,MAAO,8BAEPC,OAAM,SAAC0K,EAAIC,EAAInG,GACb,MAAO,CACLzE,MAAO,sBACPmC,OAAQ,CACNtB,GAJoB4D,EAAPqK,QAKb1M,KAAM,SAGZ,G,6DCuBF,QA9CA,SAA+BjB,GAAqC,IAAlChB,EAAQgB,EAARhB,SAAU2H,EAAI3G,EAAJ2G,KAAML,EAAMtG,EAANsG,OAAQxH,EAAMkB,EAANlB,OACxD,GAAK6H,IAAL,CAEA,IAAIiH,EAAc,GACdC,EAAc,GAyBdC,GAAeC,EAAAA,EAAAA,IAAY,WAC7B,IAAIC,EAAczO,OAAOyO,YAErBC,EA1BW,WACf,GAAIJ,EAAS9H,OAAQ,OAAO8H,EAE5B,IAAIxM,EAAWlC,EAAEH,GACb2L,IAAatJ,EAAI6M,SAAW7M,EAAI6M,SAASC,IAAM,GAAK9M,EAAI+M,UAAY,IACpEF,EAAW3O,OAAO8O,YAAc,EAOpC,OALAR,EAAWvH,EAAOjD,KAAI,SAAAoD,GAAO,MAAK,CAChCA,QAAUA,EACVkE,SAAUA,EAAWlE,EAAUyH,EAChC,GAGH,CAauBI,GAClB1G,QAAO,SAAA2G,GAAK,OAZC,SAAAA,GAChB,OAAOX,EAAY7C,QAAQwD,IAAU,CACvC,CAUsBC,CAAYD,EAAM,IACnC3G,QAAO,SAAA2G,GAAK,OAAIP,EAAcO,EAAM5D,QAAQ,IAE/CsD,EAAenG,SAAQ,SAAAyG,GAAK,OAXX,SAAAA,GACjBX,EAAYnO,KAAK8O,EACnB,CASkCE,CAAaF,EAAM,IAE/CN,EAAelI,SACjB5E,EAAAA,EAAAA,GAAgBrC,EAAOmP,GAE3B,GAAG,KAEH1O,OAAO2K,iBAAiB,SAAU4D,EAAc,CAAEY,SAAS,GA1CxC,CA2CrB,C,0BC/CA9P,E,SAAAA,GAAgB,CACZC,MAAO,2DACPC,OAAM,WACF,MAAO,CACHD,MAAO,oBAEf,G","sources":["webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productDesignerPriceRequestSend.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productDescriptionView.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productQuickView.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/favoriteListAddObject.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/userProfileUpdate.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/services/products.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productAddToCart.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/DOMEventHandler.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productsTeasersPaginatorViewed.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/postScroll.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/TeaserViewHandler.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/userSubscribe.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/postTeaserView.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/services/checkout.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productAddToCollection.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productsSorter.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productAvailabilitySubscribe.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productTeaserClick.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productPreorderOpened.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/click.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/checkout.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productMetricLinkClick.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/infoRequestSend.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/cartView.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/favoriteListRemoveObject.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productTeaserView.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productChangeQuantityInCart.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/postTeaserClick.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productRemoveFromCart.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productsFilter.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/relatedProductsOpen.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/ContainerScrollHandler.js","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/productsTeasersPaginatorUsed.ts"],"sourcesContent":["import DOMEventHandler from '../DOMEventHandler';\n\nDOMEventHandler({\n event: 'c-BtnRequestProductDesignerPrice:sended',\n\n mapper() {\n return {\n event: 'productDesignerPriceRequestSend'\n }\n }\n});\n","import TeaserViewHandler from '../TeaserViewHandler'\n\nTeaserViewHandler({\n selector: '[data-product-list-name=\"Карточка товара\"]',\n\n mapper(productEl) {\n let $product = $(productEl);\n let { product } = $product.closest('[data-gtm-payload]').data('gtmPayload');\n\n if (product.promocode_enabled) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'event': 'promocode_show_test',\n 'product': {\n 'id': product.id,\n 'promocode_visible': product.promocode_visible,\n }\n });\n }\n\n return { event: 'InfoScrollProduct' }\n }\n})\n","import { CONTAINERS, getGtmContainer } from '..';\nimport DOMEventHandler from '../DOMEventHandler';\nconst CONTAINERS_TO_EVENTS = {\n [CONTAINERS.products.catalog]: 'FastViewCatalog'\n};\nfunction getEventByContainer(el) {\n const container = getGtmContainer(el);\n return container && CONTAINERS_TO_EVENTS[container]\n ? { event: CONTAINERS_TO_EVENTS[container] }\n : null;\n}\nDOMEventHandler({\n event: 'BtnProductQuickView:open',\n mapper({ target }) {\n const events = [{ event: 'click', payload: 'quick_view' }];\n const eventByContainer = getEventByContainer(target);\n if (eventByContainer) {\n events.push(eventByContainer);\n }\n return events;\n }\n});\n","import FavoriteListService from 'core/services/FavoriteListService'\nimport { pushToDataLayer, getGtmContainer, CONTAINERS } from '..'\n\nconst CONTAINER_TO_EVENT = {\n [CONTAINERS.products.show]: 'SaveProduct',\n [CONTAINERS.products.catalog]: 'SaveItemCatalog',\n}\n\nFavoriteListService.on('add', ({ objectId, objectType, el }) => {\n const events = [{\n event: 'favoriteListAddObject',\n object: {\n id: objectId,\n type: objectType\n }\n }]\n\n const gtmContainer = getGtmContainer(el)\n if (gtmContainer && CONTAINER_TO_EVENT[gtmContainer]) {\n events.push({ event: CONTAINER_TO_EVENT[gtmContainer] })\n }\n\n pushToDataLayer(events)\n})\n","import DOMEventHandler from '../DOMEventHandler';\n\nDOMEventHandler({\n event: 'ajax:success on .js-gtm-user-update-profile',\n\n mapper(e, $el) {\n const data = $el.serializeArray().reduce((fields, { name, value }) => {\n return { ...fields, [name]: value };\n }, {});\n\n const birthday = [\n data['user[birthday(3i)]'],\n data['user[birthday(2i)]'],\n data['user[birthday(1i)]']\n ].join('-');\n\n const countryName = $el.find(`[name=\"user[country_id]\"]`).prev('.select2-container').find('.select2-chosen').text();\n const cityName = $el.find(`[name=\"user[city_id]\"]`).prev('.select2-container').find('.select2-chosen').text();\n\n return {\n event: 'userProfileUpdate',\n user: Object.entries({\n birthday,\n cityName,\n countryName,\n id: Env.user.id,\n type: Env.user.type,\n gender: data['user[gender]'] == 'true' ? 'male' : 'female',\n firstName: data['user[first_name]'],\n lastName: data['user[last_name]'],\n email: data['user[email]'],\n phone: data['user[phone]'],\n workPlace: data['user[work_place]'],\n professionId: parseInt(data['user[user_profession_id]']),\n site: data['user[site]'],\n skype: data['user[skype]'],\n vkontakte: data['user[vkontakte]'],\n facebook: data['user[facebook]'],\n twitter: data['user[twitter]'],\n address: data['user[address]']\n })\n .map(([key, value]) => [key, value || ''])\n .reduce((object, [key, value]) => ({ ...object, [key]: value }), {})\n }\n }\n});\n","export function getGTMData(el) {\n var _a;\n const gtmData = (_a = el.closest('[data-gtm-payload]')) === null || _a === void 0 ? void 0 : _a.getAttribute('data-gtm-payload');\n if (!gtmData)\n return;\n return JSON.parse(gtmData).product;\n}\nexport function getGTMList(el) {\n var _a;\n return (_a = el.closest('[data-product-list-name]')) === null || _a === void 0 ? void 0 : _a.getAttribute('data-product-list-name');\n}\n","import { CONTAINERS, getGtmContainer } from '..';\nimport DOMEventHandler from '../DOMEventHandler';\nimport { getGTMList, getGTMData } from '../services/products';\nconst CONTAINERS_TO_EVENTS = {\n [CONTAINERS.products.catalog]: 'CartItemCatalog',\n [CONTAINERS.products.show]: 'BuyProduct'\n};\nfunction buildAddPayload({ product, list, quantity, event = 'productAddToCart' }) {\n return {\n event,\n product,\n ecommerce: {\n currencyCode: 'RUB',\n add: {\n products: [{\n ...product,\n quantity: 1,\n metric1: quantity * product.price\n }],\n actionField: {\n list\n }\n }\n }\n };\n}\nfunction getCardTypeEvent(product) {\n const cardType = product.card_type || 'simple';\n switch (cardType) {\n case 'simple':\n return 'addToCartSimpleCard';\n case 'complex_1':\n return 'addToCartComplexCard1';\n case 'complex_2':\n return 'addToCartComplexCard2';\n case 'complex_3':\n return 'addToCartComplexCard3';\n default:\n return null;\n }\n}\nfunction getEventByContainer(el) {\n const container = getGtmContainer(el);\n return container && CONTAINERS_TO_EVENTS[container]\n ? { event: CONTAINERS_TO_EVENTS[container] }\n : null;\n}\nDOMEventHandler({\n event: 'c-Checkout:addItemFromRecent on [data-gtm-product-add-to-cart]',\n mapper({ target, detail: { item } }) {\n const currentTarget = target;\n const productGtm = getGTMData(currentTarget) || item.productGtm;\n if (!productGtm)\n return [];\n const listName = getGTMList(currentTarget) || 'Каталог';\n const events = [buildAddPayload({ product: productGtm, list: listName, quantity: item.quantity })];\n if (item.availability === 'preorder') {\n events.push({ event: 'preorderProductAddToCart', product: productGtm });\n }\n const cardTypeEvent = getCardTypeEvent(productGtm);\n if (cardTypeEvent) {\n events.push({ event: cardTypeEvent, product: productGtm });\n }\n const eventByContainer = getEventByContainer(currentTarget);\n if (eventByContainer) {\n events.push(eventByContainer);\n }\n return events;\n }\n});\nDOMEventHandler({\n event: 'c-Checkout:addProductsSet on [data-gtm-products-set-add-to-cart]',\n mapper(event) {\n const { target } = event;\n const productGtm = getGTMData(target);\n const listName = getGTMList(target) || 'Каталог';\n if (!productGtm)\n return [];\n const events = [buildAddPayload({ event: 'productsSetAddToCart', product: productGtm, list: listName, quantity: 1 })];\n const cardTypeEvent = getCardTypeEvent(productGtm);\n if (cardTypeEvent) {\n events.push({ event: cardTypeEvent, product: productGtm });\n }\n return events;\n }\n});\nDOMEventHandler({\n event: 'c-TeaserCartActions:addedToCard',\n mapper(event) {\n const { detail: { quantity }, target } = event;\n const productGtm = getGTMData(target);\n const listName = getGTMList(target) || 'Каталог';\n if (!productGtm)\n return [];\n const events = [buildAddPayload({ product: productGtm, list: listName, quantity })];\n const cardTypeEvent = getCardTypeEvent(productGtm);\n if (cardTypeEvent) {\n events.push({ event: cardTypeEvent, product: productGtm });\n }\n return events;\n }\n});\n","import { pushToDataLayer } from 'core/services/GTM';\nfunction DOMEventHandler({ event, mapper, where = () => true }) {\n const [eventName, selector] = event.split(' on ');\n if (where()) {\n $(document).on(eventName, selector || document, (e, ...args) => {\n pushToDataLayer(mapper(e, $(e.currentTarget), ...args));\n return true;\n });\n }\n}\nexport default DOMEventHandler;\n","import TeaserViewHandler from '../TeaserViewHandler'\n\nTeaserViewHandler({\n selector: '[data-gtm-products-paginator]',\n mapper() {\n return { event: 'PaginationScrollCatalog' }\n }\n})\n","import ContainerScrollHandler from '../ContainerScrollHandler';\nexport const POINTS = [10, 30, 70, 100];\nexport const mapper = (points) => {\n return points.map(({ percent }) => ({\n event: 'postScroll',\n post: {\n scrollPercent: percent\n }\n }));\n};\nContainerScrollHandler({\n selector: '.b-Article',\n points: POINTS,\n cond() {\n return /^\\/(posts|products\\/offers)\\/\\d+/.test(document.location.pathname);\n },\n mapper\n});\n","import { pushToDataLayer } from 'core/services/GTM';\nimport { LazyBlock } from 'core/services/LazyBlock';\n\nimport debounce from 'core/utils/debounce';\n\nexport default function TeaserViewHandler({ selector, mapper }) {\n let __teasers = new Map();\n\n function wait(el) {\n if (__teasers.get(el)) return;\n\n let teaser = {\n isTracked: false,\n isProcessed: false,\n };\n\n __teasers.set(el, teaser);\n\n LazyBlock.wait($(el)).then(() => {\n teaser.isTracked = true;\n\n process();\n });\n }\n\n let process = debounce(500, () => {\n let elements = [...__teasers]\n .filter(([_el, teaser]) => teaser.isTracked && !teaser.isProcessed)\n .map(([el, teaser]) => {\n teaser.isProcessed = true;\n\n return el;\n });\n\n pushToDataLayer(mapper(elements));\n });\n\n setInterval(() => {\n $(selector).get().forEach(wait);\n }, 3000);\n}\n","import DOMEventHandler from '../DOMEventHandler';\n\nDOMEventHandler({\n event: 'c-SubscribeForm:subscribe',\n\n mapper(e, $el, { email }) {\n return {\n event: 'userSubscribe',\n source: 'news_form',\n email\n }\n }\n});\n\nDOMEventHandler({\n event: 'c-SubscribePopup:subscribe',\n\n mapper(e, $el, { email }) {\n return {\n event: 'userSubscribe',\n source: 'coupon_form',\n email\n }\n }\n});\n","import TeaserViewHandler from '../TeaserViewHandler';\n\nTeaserViewHandler({\n selector: '[data-gtm-post]',\n\n mapper(posts) {\n let postIds = posts\n .map(post => $(post).data('gtmPost'))\n .map(post => post.id)\n .join(',');\n\n return postIds && {\n event: 'postTeaserView',\n postIds\n }\n }\n});\n","export function prepareGTMCartState({ items }, agg) {\n const isCartItems = agg.includes('cartItems');\n const isIds = agg.includes('ids');\n const isEcommerceItems = agg.includes('ecommerceItems');\n const isTotalPrice = agg.includes('totalPrice');\n return items.reduce((acc, { price, quantity, selected, productId, productGtm }) => {\n if (isCartItems)\n acc.cartItems.push({ id: productId, price, quantity, selected });\n if (isEcommerceItems)\n acc.ecommerceItems.push({ ...productGtm, quantity });\n if (isTotalPrice)\n acc.totalPrice = acc.totalPrice + quantity * price;\n if (isIds)\n acc.ids.push(productId);\n return acc;\n }, { totalPrice: 0, ids: [], cartItems: [], ecommerceItems: [] });\n}\n","import DOMEventHandler from '../DOMEventHandler';\n\nDOMEventHandler({\n event: 'click on [data-gtm-product-add-to-collection]',\n\n mapper(e, $el) {\n let { product } = $el.closest('[data-gtm-payload]').data('gtmPayload');\n\n return {\n event: 'productAddToCollection',\n product\n }\n }\n});\n","import DOMEventHandler from '../DOMEventHandler';\nconst FIELDS_NAMES_TO_EVENTS = {\n order_availability: 'SortStockCatalog',\n sort: 'SortDiscountCatalog'\n};\nconst STATUSES_VALUES_TO_EVENTS = {\n sale: 'SortPriceCatalog',\n new: 'SortNewCatalog',\n vip: 'SortVipCatalog'\n};\nconst STATUS_FIELD_NAME = 'status';\nDOMEventHandler({\n event: 'Filter:changed on [data-gtm-products-sorter]',\n mapper(_e, _$el, { changedFieldList = [] }) {\n const events = [];\n changedFieldList.forEach(({ name, value }) => {\n if (name in FIELDS_NAMES_TO_EVENTS) {\n events.push({ event: FIELDS_NAMES_TO_EVENTS[name] });\n }\n if (name === STATUS_FIELD_NAME && value in STATUSES_VALUES_TO_EVENTS) {\n events.push({ event: STATUSES_VALUES_TO_EVENTS[value] });\n }\n });\n return events;\n }\n});\n","import DOMEventHandler from '../DOMEventHandler'\n\nDOMEventHandler({\n event: 'ProductAvailabilityForm:subscribe',\n\n mapper(_e, _$el, { email, productId }) {\n return {\n event: 'productAvailabilitySubscribe',\n productAvailabilitySubscribe: {\n productId,\n email\n }\n }\n }\n})\n","import { CONTAINERS, getGtmContainer, pushToDataLayer } from '..';\nconst CONTAINERS_TO_EVENTS = {\n [CONTAINERS.products.catalog]: 'ToItemFromCatalog',\n [CONTAINERS.products.showCrossSell]: 'OftenBuyWithProduct',\n [CONTAINERS.products.showSameCollection]: 'ToCollectionProduct',\n [CONTAINERS.products.showBestsellers]: 'ToHitProduct',\n [CONTAINERS.products.showComparison]: 'CompareProduct',\n [CONTAINERS.products.showPopular]: 'PopularProduct'\n};\nconst isNeedFallback = (el) => {\n return Env.name === 'production' && el.matches('a:not([target=_blank])');\n};\nfunction getEvents(el) {\n var _a, _b, _c;\n const fromList = (_a = el.closest('[data-product-list-name]')) === null || _a === void 0 ? void 0 : _a.getAttribute('data-product-list-name');\n const gtmPayload = (_b = el.closest('[data-gtm-payload]')) === null || _b === void 0 ? void 0 : _b.getAttribute('data-gtm-payload');\n if (!gtmPayload) {\n return [];\n }\n const { click, product } = JSON.parse(gtmPayload);\n const events = [\n {\n event: 'productClick',\n product: { ...product },\n ecommerce: {\n click: {\n products: [{ ...product, position: Array.from(((_c = el.parentElement) === null || _c === void 0 ? void 0 : _c.children) || []).indexOf(el) }],\n actionField: {\n list: fromList\n }\n }\n }\n },\n {\n event: 'click',\n payload: click\n }\n ];\n if (product && product.is_limited_stock) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'event': 'limited_stock_product_teaser_click',\n 'product': {\n 'id': product.id,\n 'stock_count': product.stock_count\n }\n });\n }\n const container = getGtmContainer(el);\n if (container && CONTAINERS_TO_EVENTS[container]) {\n events.push({ event: CONTAINERS_TO_EVENTS[container] });\n }\n return events;\n}\ndocument.addEventListener('click', (e) => {\n const target = e.target;\n const el = target.closest('[data-gtm-product-click]');\n if (target.tagName.toLowerCase() === 'button') {\n return;\n }\n if (el) {\n const events = getEvents(el);\n if (isNeedFallback(el)) {\n e.preventDefault();\n const href = el.getAttribute('href');\n if (href) {\n setTimeout(() => {\n document.location.href = href;\n }, 250);\n }\n }\n pushToDataLayer(events);\n }\n});\n","import { CONTAINERS, getGtmContainer } from '..';\nimport DOMEventHandler from '../DOMEventHandler';\nconst CONTAINERS_TO_EVENTS = {\n [CONTAINERS.products.catalog]: 'PreorderCatalog',\n [CONTAINERS.products.show]: 'PreorderProduct'\n};\nDOMEventHandler({\n event: 'BtnAddToCart:openedPreorder',\n mapper({ target }) {\n const events = [];\n const container = getGtmContainer(target);\n if (container && container in CONTAINERS_TO_EVENTS) {\n events.push({ event: CONTAINERS_TO_EVENTS[container] });\n }\n return events;\n }\n});\n","import DOMEventHandler from '../DOMEventHandler';\n\nlet needFallback = $el => {\n return Env.name === 'production' && $el.is('a') && !$el.is('[target=_blank]');\n}\n\nlet eventCallback = $el => () => {\n if (needFallback($el)) {\n document.location.href = $el.attr('href');\n }\n}\n\nDOMEventHandler({\n event: 'click on [data-gtm-click]',\n\n mapper(e, $el) {\n if (needFallback($el)) {\n e.preventDefault();\n }\n\n return {\n event: 'click',\n payload: $el.data('gtmClick'),\n eventTimeout: 200,\n eventCallback: eventCallback($el),\n }\n }\n});\n","import DOMEventHandler from '../DOMEventHandler';\nimport { prepareGTMCartState } from '../services/checkout';\nDOMEventHandler({\n event: 'c-Checkout:checkout',\n mapper({ detail: { state } }) {\n const gtmState = prepareGTMCartState(state, ['cartItems', 'ecommerceItems']);\n const limitedStockItems = state.items.filter(item => item.productGtm && item.productGtm.is_limited_stock);\n if (limitedStockItems.length > 0) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'event': 'limited_stock_product_purchase',\n 'products': limitedStockItems.map(item => ({\n id: item.productId,\n quantity: item.quantity,\n stock_count: item.productGtm.stock_count\n }))\n });\n }\n return {\n event: 'checkout',\n cart: {\n items: gtmState.cartItems\n },\n ecommerce: {\n checkout: { actionField: { step: 1 } },\n products: gtmState.ecommerceItems\n }\n };\n }\n});\n","import DOMEventHandler from '../DOMEventHandler';\nconst METRICS_NAMES_TO_EVENTS = {\n brand: 'ToBrandProduct',\n collection: 'ToCollectionFromProduct'\n};\nDOMEventHandler({\n event: 'click on [data-gtm-product-metric-link]',\n mapper(e, [el]) {\n const metricName = el.dataset.gtmProductMetricLink;\n if (!(metricName in METRICS_NAMES_TO_EVENTS))\n return;\n e.preventDefault();\n const href = el.getAttribute('href');\n if (href) {\n setTimeout(() => { document.location.href = href; }, 0);\n }\n return { event: METRICS_NAMES_TO_EVENTS[metricName] };\n }\n});\n","import DOMEventHandler from '../DOMEventHandler';\n\nDOMEventHandler({\n event: 'BtnRequestInfo:sended',\n\n mapper(e, el, { name, phone, email }) {\n return {\n event: 'infoRequestSend',\n infoRequestForm: {\n phone,\n email,\n name\n }\n }\n }\n});\n","import DOMEventHandler from '../DOMEventHandler';\nimport { prepareGTMCartState } from '../services/checkout';\nDOMEventHandler({\n event: 'c-Checkout:cartView',\n mapper({ detail: { state } }) {\n const gtmState = prepareGTMCartState(state, ['ids', 'cartItems', 'ecommerceItems', 'totalPrice']);\n return {\n event: 'cartView',\n cart: {\n items: gtmState.cartItems\n },\n ecommerce: {\n price: gtmState.totalPrice,\n product_ids: gtmState.ids,\n products: gtmState.ecommerceItems\n }\n };\n }\n});\n","import { pushToDataLayer } from '../../GTM'\n\nimport FavoriteListService from 'core/services/FavoriteListService'\n\nFavoriteListService.on('remove', ({ objectId, objectType }) => {\n pushToDataLayer({\n event: 'favoriteListRemoveObject',\n object: {\n id: objectId,\n type: objectType\n }\n })\n})\n","import TeaserViewHandler from '../TeaserViewHandler';\n\nTeaserViewHandler({\n selector: '[data-gtm-product-preview]',\n\n mapper(productEls) {\n let products = productEls.map(productEl => {\n let $product = $(productEl);\n let index = $product.index();\n let fromList = $product.closest('[data-product-list-name]').data('productListName')\n let { product } = $product.closest('[data-gtm-payload]').data('gtmPayload');\n\n return { ...product,\n position: index,\n list: fromList\n };\n });\n\n let productIds = products\n .map(({ id }) => id)\n .join(',');\n\n const limitedStockProducts = products.filter(product => product.is_limited_stock);\n\n if (limitedStockProducts.length > 0) {\n limitedStockProducts.forEach(product => {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'event': 'limited_stock_product_teaser_view',\n 'product': {\n 'id': product.id,\n 'stock_count': product.stock_count\n }\n });\n });\n }\n\n //GTM events for Promocode_show _Test (AB-test)\n const productsWithPromocode = products.filter(product => product.promocode_enabled);\n\n if (productsWithPromocode.length > 0) {\n productsWithPromocode.forEach(product => {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'event': 'promocode_show_test',\n 'product': {\n 'id': product.id,\n 'promocode_visible': product.promocode_visible,\n }\n });\n });\n }\n //end of GTM events for Promocode_show _Test (AB-test)\n\n return products.length && {\n event: 'productTeaserView',\n productIds: productIds,\n ecommerce: {\n impressions: products\n }\n }\n }\n});\n","import DOMEventHandler from '../DOMEventHandler'\n\nDOMEventHandler({\n event: 'c-Checkout:changeItemQuantity',\n\n mapper({ detail: { payload: { productId, quantity }, state } }) {\n const item = state.items.find(item => item.productId === productId)\n\n if (!item.productGtm) return\n\n return {\n event: 'productChangeQuantityInCart',\n product: { ...item.productGtm, quantity }\n }\n }\n})\n","import { CONTAINERS, getGtmContainer } from '..';\nimport DOMEventHandler from '../DOMEventHandler';\nconst CONTAINERS_TO_EVENTS = {\n [CONTAINERS.products.catalog]: 'ToArticleFromCatalog'\n};\nfunction getEvents(el) {\n const post = el.dataset.gtmPost ? JSON.parse(el.dataset.gtmPost) : {};\n const events = [{ event: 'postTeaserClick', post }];\n const container = getGtmContainer(el);\n if (container && CONTAINERS_TO_EVENTS[container]) {\n events.push({ event: CONTAINERS_TO_EVENTS[container] });\n }\n return events;\n}\nDOMEventHandler({\n event: 'click on [data-gtm-post]',\n mapper(e, [el]) {\n const events = getEvents(el);\n if (Env.name === 'production') {\n e.preventDefault();\n const href = el.getAttribute('href');\n if (href) {\n setTimeout(() => document.location.href = href, 250);\n }\n }\n return events;\n }\n});\n","import DOMEventHandler from '../DOMEventHandler'\n\nDOMEventHandler({\n event: 'c-Checkout:removeItem',\n\n mapper({ detail: { payload: { productId }, state } }) {\n const item = state.items.find(item => item.productId === productId)\n\n if (!item.productGtm) return\n\n return {\n event: 'productRemoveFromCart',\n product: item.productGtm,\n ecommerce: {\n remove: {\n products: [{ ...item.productGtm,\n metric1: `-${item.quantity * item.price}`\n }]\n }\n }\n }\n }\n})\n","import DOMEventHandler from '../DOMEventHandler';\nconst FIELDS_NAMES_TO_EVENTS = {\n price: 'PriceFilter',\n color: 'ColorFilter',\n size: 'SizeFilter',\n styles: 'StyleFilter',\n brand: 'BrandFilter',\n country_slug: 'CountryFilter',\n materials: 'MaterialFilter',\n 'property_groups[rzm]': 'Size2Filter'\n};\nDOMEventHandler({\n event: 'Filter:changed on [data-gtm-products-filter]',\n mapper(_e, _$el, { changedFieldList = [] }) {\n const events = [{ event: 'FilterCatalog' }];\n changedFieldList.forEach(({ name }) => {\n if (name in FIELDS_NAMES_TO_EVENTS) {\n events.push({ event: FIELDS_NAMES_TO_EVENTS[name] });\n }\n });\n return events;\n }\n});\n","import DOMEventHandler from '../DOMEventHandler';\n\nDOMEventHandler({\n event: 'c-BtnRelatedProducts:open',\n\n mapper(_e, _$el, { objectType, objectId }) {\n return {\n event: 'relatedProductsOpen',\n object: {\n id: objectId,\n type: objectType\n }\n }\n }\n});\n\nDOMEventHandler({\n event: 'c-PhotoRelatedProducts:open',\n\n mapper(_e, _$el, { photoId }) {\n return {\n event: 'relatedProductsOpen',\n object: {\n id: photoId,\n type: 'Photo'\n }\n }\n }\n});\n","import { pushToDataLayer } from 'core/services/GTM'\n\nimport rAFThrottle from 'core/utils/rAFThrottle'\n\nfunction ContainerScrollHandler({ selector, cond, points, mapper }) {\n if (!cond()) return\n\n let __triggered = []\n let __points = []\n\n let calcPoints = () => {\n if (__points.length) return __points\n\n let $el = $(selector)\n let position = (($el.offset() ? $el.offset().top : 0) + $el.height()) / 100\n let offset = window.innerHeight / 2\n\n __points = points.map(percent => ({\n percent: percent,\n position: position * percent - offset\n }))\n\n return __points\n }\n\n let isTriggered = point => {\n return __triggered.indexOf(point) > -1\n }\n\n let setTriggered = point => {\n __triggered.push(point)\n }\n\n let handleScroll = rAFThrottle(() => {\n let pageYOffset = window.pageYOffset\n\n let scrolledPoints = calcPoints()\n .filter(point => !isTriggered(point))\n .filter(point => pageYOffset > point.position)\n\n scrolledPoints.forEach(point => setTriggered(point))\n\n if (scrolledPoints.length) {\n pushToDataLayer(mapper(scrolledPoints))\n }\n }, 300)\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n}\n\nexport default ContainerScrollHandler\n","import DOMEventHandler from '../DOMEventHandler';\nDOMEventHandler({\n event: 'PaginatorWidget:changed on [data-gtm-products-paginator]',\n mapper() {\n return {\n event: 'PaginationCatalog'\n };\n }\n});\n"],"names":["DOMEventHandler","event","mapper","TeaserViewHandler","selector","productEl","product","$","closest","data","promocode_enabled","window","dataLayer","push","id","promocode_visible","CONTAINERS_TO_EVENTS","CONTAINERS","products","catalog","_ref","el","container","events","payload","eventByContainer","target","getGtmContainer","CONTAINER_TO_EVENT","_defineProperty","_CONTAINER_TO_EVENT","show","FavoriteListService","on","objectId","objectType","object","type","gtmContainer","pushToDataLayer","e","$el","serializeArray","reduce","fields","name","value","_objectSpread","birthday","join","countryName","find","prev","text","cityName","user","Object","entries","Env","gender","firstName","lastName","email","phone","workPlace","professionId","parseInt","site","skype","vkontakte","facebook","twitter","address","map","_ref2","_ref3","_slicedToArray","_ref4","_ref5","key","getGTMData","_a","gtmData","getAttribute","JSON","parse","getGTMList","_CONTAINERS_TO_EVENTS","buildAddPayload","list","quantity","_ref$event","ecommerce","currencyCode","add","metric1","price","actionField","getCardTypeEvent","card_type","item","detail","currentTarget","productGtm","availability","cardTypeEvent","listName","_ref$where","where","_event$split2","split","eventName","document","_len","arguments","length","args","Array","_key","apply","concat","POINTS","points","post","scrollPercent","percent","ContainerScrollHandler","cond","test","location","pathname","__teasers","Map","wait","get","teaser","isTracked","isProcessed","set","LazyBlock","then","process","debounce","elements","filter","setInterval","forEach","source","posts","postIds","prepareGTMCartState","agg","items","isCartItems","includes","isIds","isEcommerceItems","isTotalPrice","acc","selected","productId","cartItems","ecommerceItems","totalPrice","ids","FIELDS_NAMES_TO_EVENTS","order_availability","sort","STATUSES_VALUES_TO_EVENTS","sale","new","vip","_e","_$el","_ref$changedFieldList","changedFieldList","productAvailabilitySubscribe","showCrossSell","showSameCollection","showBestsellers","showComparison","showPopular","addEventListener","tagName","toLowerCase","_b","_c","fromList","gtmPayload","_JSON$parse","click","position","from","parentElement","children","indexOf","is_limited_stock","stock_count","getEvents","matches","isNeedFallback","preventDefault","href","setTimeout","needFallback","is","eventCallback","attr","eventTimeout","state","gtmState","limitedStockItems","cart","checkout","step","METRICS_NAMES_TO_EVENTS","brand","collection","metricName","dataset","gtmProductMetricLink","infoRequestForm","product_ids","productEls","$product","index","productIds","limitedStockProducts","productsWithPromocode","impressions","_ref$detail","_ref$detail$payload","gtmPost","remove","color","size","styles","country_slug","materials","photoId","__triggered","__points","handleScroll","rAFThrottle","pageYOffset","scrolledPoints","offset","top","height","innerHeight","calcPoints","point","isTriggered","setTriggered","passive"],"sourceRoot":""}