{"version":3,"file":"static/js/2338.chunk.js","mappings":"qTAsBgBA,IACd,IAAMC,EAAqC,IAAIC,IAkD/C,MAAO,CAAEC,YAhDT,SAAAC,G,IACEC,EAAAD,EAAAC,KACAC,EAAAF,EAAAE,WACAC,EAAAH,EAAAG,UAEIC,EAAcP,EAAaQ,IAAIJ,GAE9BG,IACHA,EAAc,IAAIN,IAClBD,EAAaS,IAAIL,EAAMG,IAGzB,IAAMG,EAAWC,KAAKC,UAAU,CAAEP,WAAAA,EAAYC,UAAAA,IAC1CO,EAAiBN,EAAYC,IAAIE,GAErC,IAAKG,EAAgB,CACnB,IAAMC,EAAiB,IAAIb,IAErBc,EAAW,IAAIC,sBACnB,SAACC,GACCA,EAAQC,SAAQ,SAACC,GACf,IAAMC,EAAWN,EAAeN,IAAIW,EAAME,QAClC,MAARD,GAAAA,EAAWD,EACZ,GACF,GACD,CAAEf,KAAAA,EAAMC,WAAAA,EAAYC,UAAAA,IAGtBO,EAAiB,CAAEE,SAAAA,EAAUD,eAAAA,GAE7BP,EAAYE,IAAIC,EAAUG,EAC3B,CAED,MAAO,CACLS,QAAS,SACPC,EACAH,G,QAEc,OAAdI,EAAAX,IAAAW,EAAgBV,eAAeL,IAAIc,EAAMH,GAC3B,OAAdK,EAAAZ,IAAAY,EAAgBV,SAASO,QAAQC,EAClC,EACDG,UAAW,SAACH,G,QACI,OAAdI,EAAAd,IAAAc,EAAgBb,eAAhB,OAAsCS,GACxB,OAAdK,EAAAf,IAAAe,EAAgBb,SAASW,UAAUH,EACpC,EAEJ,EAGF,CCtED,IAAMM,EAAsB,MACtBC,EAAoB,CAAC,GA2BrBC,EAAgBhC,I,gNChBtB,SAASiC,EACPC,G,QDoBF,SACEA,G,QAEM5B,EAAU,OAAA6B,EAAA,MAAGD,OAAH,EAAGA,EAAM5B,YAAT6B,EAAuBL,EACjCvB,EAAS,OAAA6B,EAAA,MAAGF,OAAH,EAAGA,EAAM3B,WAAT6B,EAAsBL,EAE/BM,GAAUC,EAAAA,EAAAA,QAAgD,MAC1DC,GAAUD,EAAAA,EAAAA,QAAoD,MAC9DE,GAAcF,EAAAA,EAAAA,QAA0C,M,GAEpCG,EAAAA,EAAAA,YAAnBrB,EAAAsB,EAAA,GAAOC,EAAAD,EAAA,GAERnB,GAAUqB,EAAAA,EAAAA,cAAY,WAC1B,IAAMpB,EAAOa,EAAQQ,QAErB,GAAKrB,EAAL,CAKA,IAAMR,EAAWgB,EAAc7B,YAAY,CACzCE,KAAMkC,EAAQM,QACdvC,WAAAA,EACAC,UAAAA,IAGFS,EAASO,QAAQC,GAAM,SAACsB,GACtBH,EAASG,EACV,IAEDN,EAAYK,QAAU7B,CAZrB,MAFC2B,OAASI,EAeZ,GAAE,CAACzC,EAAYC,IAEVoB,GAAYiB,EAAAA,EAAAA,cAAY,WAC5B,IAAMI,EAAkBR,EAAYK,QAC9BrB,EAAOa,EAAQQ,QAEjBrB,IACa,MAAfwB,GAAAA,EAAiBrB,UAAUH,IAG7BgB,EAAYK,QAAU,IACvB,GAAE,IAyBH,MAAO,EAlBaD,EAAAA,EAAAA,cAClB,SAACpB,GACCG,IACAU,EAAQQ,QAAUrB,EAClBD,GACD,GACD,CAACA,EAASI,IAYS,CAAEP,MAAAA,EAAOmB,SATNK,EAAAA,EAAAA,cACtB,SAACK,GACCtB,IACAY,EAAQM,QAAUI,EAClB1B,GACD,GACD,CAACA,EAASI,KAIb,CCtFuBuB,CAAwBhB,GAAvCiB,EAAAC,EAAA,GAAKC,EAAAD,EAAA,GACNE,EAAYC,QAAO,OAAAC,EAACH,EAAOjC,YAAR,EAACoC,EAAcC,gB,GACIhB,EAAAA,EAAAA,UAASa,GAA9CI,EAAAhB,EAAA,GAAgBiB,EAAAjB,EAAA,GAMvB,OAJIY,IAAcI,GAChBC,GAAkB,GAGb,CAACR,EAADS,EAAA,GAAWP,EAAX,CAAmBC,UAAAA,EAAWI,eAAAA,IACtC,CCzBD,IACWG,EAAoB,SAAUC,GACrC,IAAIC,EAAUD,EAAGC,QAASC,EAAcF,EAAGE,YAAaC,EAAaH,EAAGG,WAAY3D,EAAawD,EAAGxD,WAAY4D,EAAWJ,EAAGI,SAAUC,EAAKL,EAAGM,UAAWA,OAAmB,IAAPD,EAFjJ,IAEuLA,EACzME,GAAKC,EAAAA,EAAAA,QAAOrC,EAAmB,CAC/B3B,WAAYA,IACZ,GAAI6C,EAAMkB,EAAG,GAAIE,EAAKF,EAAG,GAAI9B,EAAUgC,EAAGhC,QAASe,EAAYiB,EAAGjB,UAClEkB,GAAkBN,IAAaH,GAAWT,GAAaU,EAkB3D,OAhBAS,EAAAA,EAAAA,YAAU,WACN,GAAID,EAAgB,CAOhB,IAAIE,EAAUC,YAAW,WACrBV,GACJ,GAAGG,GACH,OAAO,WACHQ,aAAaF,EACjB,CACJ,CACJ,GAAG,CAACT,EAAYO,EAAgBJ,IACzB,CAACjB,EAAK,CAAEZ,QAASA,GAC5B,C,2RCtBA,QAJA,SAAyBsC,GACrB,OAAQC,EAAAA,cAAoB,OAAOC,EAAAA,EAAAA,UAAS,CAAEC,QAAS,aAAeH,GAClEC,EAAAA,cAAoB,OAAQ,CAAEG,EAAG,ulCACzC,ECHO,IAAIC,GAAaC,EAAAA,EAAAA,GAAW,CAC/BC,EAAGC,EACHC,EAAGD,EACHE,GAAIF,EACJG,KAAM,c,mtCCIH,MAAMC,GAAmBC,EAAAA,EAAAA,IAAG,kBAEtBC,EAA2CvF,IAwBjD,IAxBkD,WACvDwF,EAAU,MACVC,EAAK,aACLC,EAAY,WACZC,EAAU,wBAEVC,EAAuB,KACvBC,EAAO,GAAE,aAGTC,EAAY,WACZC,EAAU,WACVC,EAAa,GAAE,sBACfC,EAAqB,mBACrBC,EAAkB,iBAClBC,EAAgB,8BAChBC,EAA6B,uBAC7BC,EAAsB,aACtBC,EAAe,GAAE,qBACjBC,EAAoB,mBACpBC,EAAkB,YAElBC,EAAW,cACXC,EAAgB,aACjB1G,EACC,OACE2G,EAAAA,EAAAA,MAAA,OAAKC,UAAWvB,IAAmBwB,SAAA,EACjCF,EAAAA,EAAAA,MAAA,OAAKC,UAAWvB,EAAiB,WAAWwB,SAAA,CACzCrB,IACCsB,EAAAA,EAAAA,KAACC,EAAAA,EAAWC,KAAI,CACdJ,UAAWvB,EAAiB,YAC5B4B,KAAK,KACLC,OAAO,OACPC,UAAU,YACVC,GAAG,KAAIP,SAENrB,KAGLsB,EAAAA,EAAAA,KAACO,EAAAA,GAAU,CACTC,MAAO5B,EACP6B,MAAO9B,EACP+B,SAAUC,GAAQA,EAAKC,MACvBC,SAAUF,GAAQA,EAAKG,MACvBC,SAAUlC,EACVmC,UAAU,eAGdnB,EAAAA,EAAAA,MAAA,OAAKC,UAAWvB,EAAiB,WAAWwB,SAAA,EAC/B,OAAVb,QAAU,IAAVA,OAAU,EAAVA,EAAY+B,QAAS,IACpBjB,EAAAA,EAAAA,KAACkB,EAAAA,GAAQ,CACPC,UAAQ,EACRrB,UAAWvB,EAAiB,UAC5B6C,kBAAkB,YAClBC,aAAW,EACXC,YAAanC,EACboC,oBAAqBjC,EACrBmB,MAAOvB,EACPsB,MAAOpB,EACPoC,aAAcb,GAAQA,EAAKC,MAC3BG,SAAU1B,EACVoC,KAAK,aAGJ,OAAJ1C,QAAI,IAAJA,OAAI,EAAJA,EAAMkC,QAAS,IACdjB,EAAAA,EAAAA,KAACkB,EAAAA,GAAQ,CACPI,YAAaxC,EACb2B,MAAO1B,EACPyB,MAAOxB,EACP+B,SAAU9B,EACVkC,UAAQ,EACRrB,UAAWvB,EAAiB,UAC5BgD,oBAAqBzC,EACrB0C,aAAcb,GAAQA,EAAKC,MAC3Ba,KAAK,gBAIE,OAAZjC,QAAY,IAAZA,OAAY,EAAZA,EAAcyB,QAAS,IACtBpB,EAAAA,EAAAA,MAAA,OAAKC,UAAWvB,EAAiB,WAAWwB,SAAA,EAC1CC,EAAAA,EAAAA,KAACC,EAAAA,EAAWC,KAAI,CACdJ,UAAWvB,EAAiB,YAC5B4B,KAAK,KACLC,OAAO,OACPC,UAAU,YACVC,GAAG,KAAIP,SAENR,KAEHS,EAAAA,EAAAA,KAAC0B,EAAAA,GAAa,CACZV,UAAU,SACVN,SAAUC,GAAQA,EAAKC,MACvBe,YAAahB,GAAQA,EAAK3D,SAC1B+D,SAAUrB,EACVe,MAAOjB,EACPgB,MAAOf,QAIbO,EAAAA,EAAAA,KAAA,OAAKF,UAAWvB,EAAiB,WAAWwB,UAC1CC,EAAAA,EAAAA,KAAC4B,EAAAA,GAAM,CACLH,KAAK,UACLX,MAAOlB,EACPE,UAAWvB,EAAiB,gBAC5BsD,QAASlC,QAGT,E,qcChHH,MAAMmC,GAAmBtD,EAAAA,EAAAA,IAAG,kBAStBuD,EAAkC7I,IAKxC,IALyC,YAC9CoI,EAAc,SAAQ,aACtBU,EAAe,GAAE,gBACjBC,EAAe,WACfC,GACDhJ,EAMC,OACE2G,EAAAA,EAAAA,MAAA,QAAMC,UAAWgC,IAAoBK,SANjBC,IACpBA,EAAEC,iBACFH,EAAWF,EAAa,EAIoCjC,SAAA,EAC1DC,EAAAA,EAAAA,KAACsC,EAAAA,GAAS,CACRhE,KAAK,OACLmD,KAAK,UACLc,MAAM,OACNC,aAAa,MACbC,WAAS,EACTnB,YAAaA,EACbd,MAAOwB,EACPjB,SAAWqB,GAAWH,EAAgBG,EAAE5B,UAE1CR,EAAAA,EAAAA,KAAC4B,EAAAA,GAAM,CACLc,UAAWC,EAAAA,EACXC,KAAK,SACL5F,UAAWgF,MAER,E,mnBCzBX,MAAMa,GAAqBrE,EAAAA,EAAAA,IAAG,oBAEjBsE,EAA6BA,KACxC,MAAOC,EAAYC,IAAiBzH,EAAAA,EAAAA,WAAS,IACvC,oBAAE0H,IAAwBC,EAAAA,EAAAA,IAAYC,EAAAA,KAAyB,CAAC,GAChE,OAAEC,IAAWF,EAAAA,EAAAA,IAAYG,EAAAA,KACzB,qCACJC,EAAuC,yBAAwB,kDAC/DC,EAAoD,WAAU,iDAC9DC,EAAmD,kGAAiG,gDACpJC,EAAkD,kBAAiB,2CAEnEC,EAA6C,8BAA6B,0CAC1EC,EAA4C,+EAA8E,qDAC1HC,EAAuD,8CACvDC,4CAA4C,+CAC1CC,EAAiD,GAAE,gDACnDC,EAAkD,IAChD,CAAC,EAAC,0CACNC,IAEmB,OAAnBf,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBgB,wBAClBC,wCAAyC,CAAC,EAEzCC,EAAmBC,EAAAA,GAAW,CAClC9F,KAAM8F,EAAAA,KAEHC,IAAI,GACJC,SAAShB,GACTiB,WACHC,MAAOJ,EAAAA,KAEJI,MAAMT,GACNO,SAAShB,GACTiB,WACHE,iBAAkBL,EAAAA,KAEfM,MAAM,EAAC,GAAO,MACdJ,aASCK,GAAevJ,EAAAA,EAAAA,QAAkB,OAEjC,aACJwJ,EAAY,aACZC,EAAY,OACZC,EAAM,MACNC,EAAK,WACLC,EAAU,aACVC,EAAY,OACZC,EAAM,QACNC,IACEC,EAAAA,EAAAA,IAAU,CACZC,cAlBoB,CACpB/G,KAAM,GACNkG,MAAO,GACPC,kBAAkB,GAgBlBN,mBACAhC,SAAUmD,MAAOC,EAAMC,KACrB,IAAK,IAADC,EACF,MAAMC,QAAkC,QAA1BD,EAAMd,EAAahJ,eAAO,IAAA8J,OAAA,EAApBA,EAAsBE,sBACpCC,EAAAA,EAAAA,GAAmB,CACvBL,KAAM,IACDA,EACHnC,OAAQA,EACR,CAAC,GAAGyC,EAAAA,MAAqBH,KAG7B1C,GAAc,GACdwC,EAAQM,YACRC,IAAAA,UAAqB,CACnBC,UAAW,CACTC,MAAO,0BACPC,UAAWzC,IAGjB,CAAE,MAAO0C,GACPA,aAAiBC,MACbC,QAAQF,MAAMA,EAAMG,SACpBD,QAAQF,MAAMA,EACpB,KAIEI,IACFC,EAAAA,KAAgBC,EAEpB,OACE5G,EAAAA,EAAAA,MAAA,OAAKC,UAAW+C,IAAqB9C,SAAA,EACnCF,EAAAA,EAAAA,MAAA,OAAKC,UAAW+C,EAAmB,UAAW,CAAE6D,UAAW3D,IAAchD,SAAA,EACvEF,EAAAA,EAAAA,MAAA,OAAKC,UAAW+C,EAAmB,QAAQ9C,SAAA,CACxC2D,IACC1D,EAAAA,EAAAA,KAACC,EAAAA,EAAW0G,MAAK,CACf7G,UAAW+C,EAAmB,SAC9B1C,KAAK,KACLG,GAAG,KAAIP,SAEN2D,IAGJC,IACC3D,EAAAA,EAAAA,KAACC,EAAAA,EAAWC,KAAI,CAACJ,UAAW+C,EAAmB,QAAS1C,KAAK,IAAGJ,SAC7D4D,QAIP9D,EAAAA,EAAAA,MAAA,QAAMC,UAAW+C,EAAmB,QAASV,SAAUyC,EAAa7E,SAAA,EAClEF,EAAAA,EAAAA,MAAA,OAAKC,UAAW+C,EAAmB,UAAU9C,SAAA,EAC3CC,EAAAA,EAAAA,KAACsC,EAAAA,GAAS,CACRhE,KAAK,OACLwC,MAAOkD,EACPvC,KAAK,UACLc,MAAM,OACNxB,SAAU7H,IAAA,IAAC,EAAEkJ,GAAGlJ,EAAA,OAAK+L,EAAa7C,EAAE,EACpCwE,OAAQ5B,EACRxE,MAAO0E,EAAO5G,KACdgG,UAAQ,EACRuC,QAAS1B,EAAQ7G,MAAQwG,EAAOxG,KAAOwG,EAAOxG,UAAOzC,EACrDiL,OAAQ3B,EAAQ7G,MAAUwG,EAAOxG,KAAO,aAAUzC,KAEpDmE,EAAAA,EAAAA,KAACsC,EAAAA,GAAS,CACRhE,KAAK,QACLwC,MAAOgD,EACPrC,KAAK,UACLc,MAAM,OACNxB,SAAUgG,IAAA,IAAC,EAAE3E,GAAG2E,EAAA,OAAK9B,EAAa7C,EAAE,EACpCwE,OAAQ5B,EACRxE,MAAO0E,EAAOV,MACdF,UAAQ,EACRuC,QAAS1B,EAAQX,OAASM,EAAON,MAAQM,EAAON,WAAQ3I,EACxDiL,OAAQ3B,EAAQX,OAAWM,EAAON,MAAQ,aAAU3I,QAGxDgE,EAAAA,EAAAA,MAAA,OAAKC,UAAW+C,EAAmB,UAAU9C,SAAA,EAC3CC,EAAAA,EAAAA,KAACgH,EAAAA,GAAQ,CACP1C,UAAQ,EACRxD,MAAO8C,EACPtF,KAAK,mBACLwB,UAAW+C,EAAmB,YAC9B9B,SAAUkG,IAAA,IAAC,EAAE7E,GAAG6E,EAAA,OAAKhC,EAAa7C,EAAE,EACpCwE,OAAQ5B,EACRkC,QAAShC,EAAOT,oBAElBzE,EAAAA,EAAAA,KAAC4B,EAAAA,GAAM,CACL9B,UAAW+C,EAAmB,UAC9BsE,GAAI1D,EACJf,UAAWC,EAAAA,EACX3F,SACE6H,KACEuC,OAAOC,KAAKvC,GAAQ7D,SACrB8D,GACDhC,EAEFH,KAAK,cAGR2D,IACCvG,EAAAA,EAAAA,KAACsH,EAAAA,EAAS,CACRrL,IAAK0I,EACL4C,QAASf,EAAAA,GACTrG,KAAK,qBAKbN,EAAAA,EAAAA,MAAA,OAAKC,UAAW+C,EAAmB,UAAW,CAAE6D,UAAW3D,IAAchD,SAAA,EACvEF,EAAAA,EAAAA,MAAA,OAAKC,UAAW+C,EAAmB,gBAAgB9C,SAAA,CAChDwD,IACCvD,EAAAA,EAAAA,KAACC,EAAAA,EAAW0G,MAAK,CACf7G,UAAW+C,EAAmB,SAC9B1C,KAAK,KACLG,GAAG,KAAIP,SAENwD,IAGJC,IACCxD,EAAAA,EAAAA,KAACC,EAAAA,EAAWC,KAAI,CAACJ,UAAW+C,EAAmB,QAAS1C,KAAK,IAAGJ,SAC7DyD,QAIPxD,EAAAA,EAAAA,KAAA,OAAKF,UAAW+C,EAAmB,eAAe9C,UAChDC,EAAAA,EAAAA,KAAA,OAAKwH,IAAKC,EAAcC,IAAI,mBAG5B,ECpMGC,GAAmBnJ,EAAAA,EAAAA,IAAG,kBAEtBoJ,EAAmCjK,IAC9C,MAAM,QAAEkK,EAAO,KAAEC,EAAI,MAAElH,EAAK,OAAEmH,EAAM,OAAEC,EAAM,MAAEC,EAAQ,WACpDtK,GAAS,CAAC,EACNuK,GAAaC,EAAAA,EAAAA,IACX,OAANJ,QAAM,IAANA,OAAM,EAANA,EAAQK,KACF,OAANL,QAAM,IAANA,OAAM,EAANA,EAAQnH,MACF,OAANmH,QAAM,IAANA,OAAM,EAANA,EAAQM,aAEV,OAAOL,GACLhI,EAAAA,EAAAA,KAACsI,EAAAA,GAAQ,CACPC,YAAa,CACXC,QAAS,CAAEC,IAAK,IAChBC,OAAQ,CAAED,IAAK,IACfE,OAAQ,CAAEF,IAAK,KACf1I,UAEFC,EAAAA,EAAAA,KAAC8C,EAAgB,OAGnBjD,EAAAA,EAAAA,MAAA,OAAKC,UAAW6H,IAAoBiB,MAAO,CAAEC,gBAAiBZ,GAAQlI,SAAA,EACpEF,EAAAA,EAAAA,MAAA,OAAKC,UAAW6H,EAAiB,WAAW5H,SAAA,CACzCa,IACCZ,EAAAA,EAAAA,KAACC,EAAAA,EAAW0G,MAAK,CAACxG,KAAK,KAAKL,UAAW6H,EAAiB,SAAS5H,SAC9Da,IAGJkH,IACC9H,EAAAA,EAAAA,KAACC,EAAAA,EAAWC,KAAI,CAACC,KAAK,IAAIL,UAAW6H,EAAiB,QAAQ5H,SAC3D+H,IAGJV,OAAOC,KAAKa,GAAYjH,OAAS,IAChCjB,EAAAA,EAAAA,KAAC4B,EAAAA,GAAM,CACLkH,KAAMnG,EAAAA,EACN7C,UAAW6H,EAAiB,aACxBO,OAITL,IACC7H,EAAAA,EAAAA,KAAA,OAAKF,UAAW6H,EAAiB,SAAS5H,UACxCC,EAAAA,EAAAA,KAAC+I,EAAAA,EAAO,IAAKlB,MAGhBT,OAAOC,KAAKa,GAAYjH,OAAS,IAChCjB,EAAAA,EAAAA,KAAC4B,EAAAA,GAAM,CACLkH,KAAMnG,EAAAA,EACN7C,UAAW6H,EAAiB,oBACxBO,MAIX,E,oJCxDI,MAAMc,GAAiBxK,EAAAA,EAAAA,IAAG,gBAEpByK,EAA+BtL,IAC1C,MAAM,KAAEiF,EAAI,IAAEsG,EAAG,OAAEC,EAAM,KAAEpK,EAAI,QAAE8I,EAAO,SAAEuB,GAAazL,GAAS,CAAC,EASjE,OACEkC,EAAAA,EAAAA,MAAA,OAAKC,UAAWkJ,IAAiBjJ,SAAA,CAC9BmJ,GAVqBA,KACxB,GAAKA,EACL,OAAOA,EAAIG,SAAS,SAClBrJ,EAAAA,EAAAA,KAAA,KAAGsJ,KAAMJ,EAAKpJ,UAAWkJ,EAAe,WAExChJ,EAAAA,EAAAA,KAACuJ,EAAAA,GAAI,CAACC,GAAIN,EAAKpJ,UAAWkJ,EAAe,SAC1C,EAISS,CAAiBP,GACxBrB,IACC7H,EAAAA,EAAAA,KAAA,OAAKF,UAAWkJ,EAAe,WAAWjJ,UACxCC,EAAAA,EAAAA,KAAC+I,EAAAA,EAAO,IAAKlB,OAGjBhI,EAAAA,EAAAA,MAAA,OAAKC,UAAWkJ,EAAe,WAAWjJ,SAAA,CACvC6C,IACC5C,EAAAA,EAAAA,KAACC,EAAAA,EAAWC,KAAI,CACdC,KAAK,KACLC,OAAO,OACPC,UAAU,YACVP,UAAWkJ,EAAe,YAAYjJ,SAEjC,OAAJ6C,QAAI,IAAJA,OAAI,EAAJA,EAAMhC,SAGXf,EAAAA,EAAAA,MAAA,OAAKC,UAAWkJ,EAAe,SAASjJ,SAAA,CACrCoJ,IAAUnJ,EAAAA,EAAAA,KAACC,EAAAA,EAAW0G,MAAK,CAACxG,KAAK,KAAIJ,SAAEoJ,KACxCnJ,EAAAA,EAAAA,KAAA,OAAKF,UAAWkJ,EAAe,YAAYjJ,SACxCqJ,GACCA,EAASnI,OAAS,GAClBmI,EAASM,KAAI,CAACC,EAASC,KAAK,IAAAC,EAAAC,EAAA,OAC1B9J,EAAAA,EAAAA,KAACpC,EAAAA,SAAc,CAAAmC,SACZ4J,EAAQI,QACP/J,EAAAA,EAAAA,KAACgK,EAAAA,GAAI,CACH7J,KAAK,IACL8J,WAAwB,QAAbJ,EAAAF,EAAQI,aAAK,IAAAF,OAAA,EAAbA,EAAeK,WAAwB,QAAjBJ,EAAIH,EAAQI,aAAK,IAAAD,OAAA,EAAbA,EAAeZ,KACpDN,MAAO,CAAEuB,OAAQf,EAASnI,OAAS2I,MALpBD,EAAQS,UAAYT,EAAQU,SAQhC,SAIxBtL,IAAY,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMkC,QAAS,IACtBjB,EAAAA,EAAAA,KAAA,OAAKF,UAAWkJ,EAAe,QAAQjJ,SACpChB,EAAK2K,KAAIY,IACRtK,EAAAA,EAAAA,KAACuK,EAAAA,GAAG,CAEFC,KAAK,OACL1J,MAAOwJ,EAAI1J,MACXd,UAAWkJ,EAAe,QAHrBsB,EAAInD,aASf,EClCJsD,GAAajM,EAAAA,EAAAA,IAAG,YAwlBtB,EAhlBkCtF,IAA4B,IAA3B,SAAEwR,EAAQ,QAAEC,GAASzR,EACtD,MAAM,cACJ0R,EAAa,aACbpL,EAAY,QACZqL,EAAO,KACPvM,EAAI,KACJkM,EAAO,WACLM,EAAAA,EAAAA,IAAaJ,IAEVK,EAAcC,IAAmBzP,EAAAA,EAAAA,UAAiB,KAClD0P,EAAqBC,IAA0B3P,EAAAA,EAAAA,UAAiB,KAChE4P,EAAaC,IAAkB7P,EAAAA,EAAAA,UAAiB,IACjD,gBAAE8P,IAAoBnI,EAAAA,EAAAA,IAAYC,EAAAA,KAAyB,CAAC,GAC5D,gCACJmI,EAA+B,0BAC/BC,EAAyB,kCACzBC,EAAiC,6BACjCC,EAA4B,0BAC5BC,EAAyB,gCACzBC,EACAC,yBAAyB,mCACvBC,EAAqC,SAAQ,iCAC7CC,EAAmC,OAAM,gCACzCC,EAAkC,aAChC,CAAC,EACLC,yBAAyB,6BACvBC,EAA+B,oCAAmC,4BAClEC,EAA8B,gCAC5B,CAAC,GACHb,GAAmB,CAAC,GAElB,OAAEc,IAAWC,EAAAA,EAAAA,MAEb,KACJC,EACAxP,QAASyP,EAAc,aACvBC,EACAC,OAAQC,IACNC,EAAAA,EAAAA,IACFC,EAAAA,GACA,CACER,SACAK,OAAQ,CACN5B,cAAeA,EACfC,QAASA,EACTrL,aAAcA,EACdgL,KAAMA,EACNlM,KAAMA,IAGV,CACEsO,KAAMzB,EAAc,KAIlB,UACJ0B,GACA3N,WAAY4N,GAAmB,GAC/B/N,KAAMgO,GAAa,GACnBvN,aAAcwN,GAAqB,GACnCC,QAAStO,GAAQ,GAAE,WACnBuO,GAAa,EAAC,MACdzM,GAAQ,GAAE,aACV0M,GAAe,GAAE,QACjBC,GAAO,UACPC,IACEhB,GAAQ,CAAC,GAENjN,GAAoBkO,KAAyB/R,EAAAA,EAAAA,UAAqB,KAClEyD,GAAcuO,KAAmBhS,EAAAA,EAAAA,UAAiB,KAClDiS,GAAqBC,KAA0BlS,EAAAA,EAAAA,UACpD,KAEKqD,GAAc8O,KAAoBnS,EAAAA,EAAAA,aAClCyG,GAAcC,KAAmB1G,EAAAA,EAAAA,UAAS+C,IAC1CqP,GAAoBC,KAAyBrS,EAAAA,EAAAA,WAAkB,IAEhE,WACJsS,GACAtB,aAAcuB,GAAgB,iBAC9BC,GACA1B,KAAM2B,GACNnR,QAASoR,GAAW,MACpB9H,GACAqG,OAAQ0B,KACNC,EAAAA,EAAAA,IACFC,EAAAA,GACA,CACEjC,SACAK,OAAQ,CACN5B,cAAeA,EACfC,QAASA,EACTrL,aAAcA,EACdgL,KAAMA,EACNlM,KAAMA,IAGV,CACEsO,KAAMzB,EAAc,IAGlBkD,IAAe3S,EAAAA,EAAAA,cAClB8Q,IACqB,uBAAhBA,EAAOhC,OACTgC,EAAO3B,QAAU,CAAC,QAEpBO,EAAe,GACfwC,IAAsB,GACtB5C,EAAgB,IAChBE,EAAuB,IACvBqB,EAAaC,GACbsB,GAAiBtB,EAAO,GAE1B,CAACoB,GAAuBrB,EAAcuB,GAAkB9C,KAG1DzN,EAAAA,EAAAA,YAAU,MACC,OAALkD,SAAK,IAALA,QAAK,EAALA,GAAOQ,QAAS,GAClB+J,EAAgBvK,IAChBmN,IAAsB,KACD,OAAZT,SAAY,IAAZA,QAAY,EAAZA,GAAclM,QAAS,GAChCiK,EAAuBiC,GACzB,GACC,CAAC1M,MAEJlD,EAAAA,EAAAA,YAAU,KACJyQ,KACFhD,GAAgBsD,GAAQ,IAAIA,KAASN,GAASvN,SAC9CmN,IAAsB,GACxB,GACC,CAACI,MAEJzQ,EAAAA,EAAAA,YAAU,KACR6N,EAAeyC,GAAWU,KAAK,GAC9B,CAACV,MAGJtQ,EAAAA,EAAAA,YAAU,KACRmQ,GAAsB,OAAL/O,SAAK,IAALA,QAAK,EAALA,GAAO6P,MAAK7N,GAAQ6J,IAAY,OAAJ7J,QAAI,IAAJA,OAAI,EAAJA,EAAMwG,MAAI,GACtD,CAACwD,EAAShM,MAGbpB,EAAAA,EAAAA,YAAU,KACR,GAAIqN,EAAe,CACjB,MAAM6D,EAAqBC,MAAMC,QAAQ/D,GACrCA,EACA,CAACA,GACL0C,GACkB,OAAhBR,SAAgB,IAAhBA,QAAgB,EAAhBA,GAAkBN,QAAO7L,GACL,OAAlB8N,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBG,MAAKC,GAAKlO,EAAKwG,GAAG2H,aAAeD,MAG3D,IACC,CAAClE,EAASmC,MAGbvP,EAAAA,EAAAA,YAAU,KACR,GAAIsN,EAAS,CACX,MAAMkE,EAAcL,MAAMC,QAAQ9D,GAAWA,EAAU,CAACA,GAExD0C,GACY,OAAVR,SAAU,IAAVA,QAAU,EAAVA,GAAYP,QAAO7L,GACjBoO,EAAYH,MAAKC,GAAKlO,EAAKwG,GAAG2H,aAAeD,MAGnD,IAEC,CAAC9B,GAAYpC,KAGhBpN,EAAAA,EAAAA,YAAU,KACR,GAAIiC,EAAc,CAChB,MAAMwP,EAAqBN,MAAMC,QAAQnP,GACrCA,EACA,CAACA,GAELiO,GACoB,OAAlBT,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBR,QAAO7L,GACzBqO,EAAmBJ,MAAKC,GAAKlO,EAAKwG,GAAG2H,aAAeD,MAG1D,IAEC,CAAC7B,GAAoBrC,KAExBpN,EAAAA,EAAAA,YAAU,KACR,MAAM,cAAEqN,EAAa,QAAEC,EAAO,aAAErL,EAAY,KAAEgL,EAAI,KAAElM,GAClD6M,EAAc,EAAI+C,GAAczB,GAElCwC,EAAAA,EAAAA,IAAkBtE,EAAS,CACzBC,gBACAC,UACArL,eACAgL,OACAlM,QACA,GACD,CAAC4P,GAAavD,EAAS8B,IAE1B,MAAOyC,KAAavS,EAAAA,EAAAA,GAAkB,CACpCE,QAASoR,GACTnR,aAAuB,OAAV+Q,SAAU,IAAVA,QAAU,EAAVA,GAAYU,MAAOrB,GAChCnQ,WAAYA,KACVgR,GAAiB,CAAEQ,KAAMV,GAAWU,KAAO,GAAI,EAEjDvR,WAAYmJ,KAGRgJ,GAAiBvR,EAAAA,OAA2B,MAE5CkI,GAAYA,KAChByH,GAAgB,IAChBE,GAAuB,IACvBH,GAAsB,IACtBI,GAAiB/O,GAAM,IACvBsD,GAAgB,IAChBoM,GAAa,CACXzD,cAAe,GACfC,QAAS,GACTrL,aAAc,GACdlB,KAAM,GACNkM,KAAM,WAEJ2E,GAAexT,SACjByT,IACF,EAmBIA,GAAkBA,KAClBD,GAAexT,SACjBwT,GAAexT,QAAQ0T,MACzB,EAKF,OAFAC,EAAAA,EAAAA,IAAejC,KAGbrN,EAAAA,EAAAA,KAAAuP,EAAAA,SAAA,CAAAxP,UACEC,EAAAA,EAAAA,KAAA,OAAKF,UAAW2K,IAAa1K,UAC3BF,EAAAA,EAAAA,MAAA,OAAKC,UAAU,YAAWC,SAAA,EACxBC,EAAAA,EAAAA,KAACwP,EAAAA,GAAI,CACHjH,YAAa,CACXC,QAAS,CAAEiH,KAAM,GAAIC,IAAK,MAC1BhH,OAAQ,CAAE+G,KAAM,GAAIC,IAAK,MACzB/G,OAAQ,CAAE8G,KAAM,GAAIC,IAAK,OACzB3P,UAEFF,EAAAA,EAAAA,MAACyI,EAAAA,GAAQ,CACPC,YAAa,CACXC,QAAS,CAAEC,IAAK,IAChBC,OAAQ,CAAED,IAAK,IACfE,OAAQ,CAAEF,IAAK,KAEjB3I,UAAW2K,EAAW,OAAO1K,SAAA,EAE7BF,EAAAA,EAAAA,MAAA,OAAKC,UAAW2K,EAAW,cAAc1K,SAAA,EACvCC,EAAAA,EAAAA,KAACC,EAAAA,EAAW0G,MAAK,CAACxG,KAAK,KAAKG,GAAG,KAAIP,SAChC0L,KAEH5L,EAAAA,EAAAA,MAAC8P,EAAAA,GAAE,CAACC,MAAM,eAAc7P,SAAA,EACtBC,EAAAA,EAAAA,KAAC4B,EAAAA,GAAM,CACLH,KAAK,QACLiB,UAAW1E,EAAAA,EACX6R,QACc,OAAZ7Q,SAAY,IAAZA,QAAY,EAAZA,GAAciC,QAAS,IACL,OAAlB7B,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoB6B,QAAS,IACV,OAAnBuM,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBvM,QAAS,EAEhCY,QA9CMiO,KAClBX,GAAexT,SACjBwT,GAAexT,QAAQoU,MACzB,EA4CgBjQ,UAAW2K,EAAW,4BAExBzK,EAAAA,EAAAA,KAACgQ,EAAAA,GAAW,CACV/T,IAAKkT,GACLc,aA7DMC,KACtBd,KACAf,GAAa,CACXzD,cAAiC,OAAlBxL,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBsK,KAAI/I,GAAQA,EAAKwG,GAAG2H,aACvDjE,QAAqB,OAAZ7L,SAAY,IAAZA,QAAY,EAAZA,GAAc0K,KAAI/I,GAAQA,EAAKwG,GAAG2H,aAC3CtP,aAAiC,OAAnBgO,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqB9D,KAAI/I,GAAQA,EAAKwG,GAAG2H,aACvDtE,KAAkB,OAAZ5L,SAAY,IAAZA,QAAY,EAAZA,GAAcuI,IACpB,EAuDcxH,YAAamG,GACblG,cAAemM,EACfpN,MAAO,CACLD,WAAYoN,EACZnN,MAAOA,GACPC,aAAcA,GACdC,WAAYkI,IAAgB,IAAf,MAAEvG,GAAOuG,EACpB2G,GAAiBlN,EAAM,GAG3BtB,WAAY,CACV0B,MAAO0K,EACPP,aAAc+B,GACd/L,SAAUkG,IAAgB,IAAf,MAAEzG,GAAOyG,EAClBqG,GAAsB9M,EAAM,EAE9BA,MAAOpB,IAETL,KAAM,CACJ6B,MAAO2K,EACPR,aAAcgC,GACdhM,SAAUoP,IAAgB,IAAf,MAAE3P,GAAO2P,EAClB5C,GAAgB/M,EAAM,EAExBA,MAAOxB,IAETQ,aAAc,CACZoB,MAAO4K,EACPT,aAAciC,GACdjM,SAAUqP,IAAgB,IAAf,MAAE5P,GAAO4P,EAClB3C,GAAuBjN,EAAM,EAE/BA,MAAOgN,aAKfxN,EAAAA,EAAAA,KAAA,OAAKF,UAAW2K,EAAW,UAAU1K,UACnCC,EAAAA,EAAAA,KAAC+B,EAAc,CACbT,YAAauK,EACb7J,aAAcA,GACdC,gBAAiBA,GACjBC,WAAY1B,IACV6N,GAAa,CACX/P,KAAMkC,GACN,OAIRR,EAAAA,EAAAA,KAAC2P,EAAAA,GAAE,CAACC,MAAM,eAAc7P,UACtBC,EAAAA,EAAAA,KAAA,OAAKF,UAAW2K,EAAW,YAAY1K,WACvB,OAAZf,SAAY,IAAZA,QAAY,EAAZA,GAAciC,QAAS,IACL,OAAlB7B,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoB6B,QAAS,IACV,OAAnBuM,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBvM,QAAS,KAC9BpB,EAAAA,EAAAA,MAAA,OAAKC,UAAW2K,EAAW,qBAAqB1K,SAAA,EAC9CC,EAAAA,EAAAA,KAACC,EAAAA,EAAWC,KAAI,CACdC,KAAK,KACLC,OAAO,OACPC,UAAU,YACVP,UAAW2K,EAAW,2BACtBnK,GAAG,KAAIP,SACR,yBAGDF,EAAAA,EAAAA,MAAA,OAAKC,UAAW2K,EAAW,0BAA0B1K,SAAA,EACtC,OAAZf,SAAY,IAAZA,QAAY,EAAZA,GAAciC,QAAS,GACtBjC,GAAa0K,KAAI/I,IACfX,EAAAA,EAAAA,KAAA,OAAAD,UACEC,EAAAA,EAAAA,KAACuK,EAAAA,GAAG,CACF8F,SAAUA,KACR,MAAMC,EAActR,GAAawN,QAC/B+D,GAAKA,EAAEpJ,KAAOxG,EAAKwG,KAErBoG,GAAgB+C,GAChBjC,GAAa,CACXxD,QAAoB,OAAXyF,QAAW,IAAXA,OAAW,EAAXA,EAAa5G,KAAI/I,GACxBA,EAAKwG,GAAG2H,cAEV,EAEJhO,MAAOH,EAAKC,MACZ4J,KAAK,YAdC7J,EAAKwG,GAAKxG,EAAKC,UAmBV,OAAlBxB,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoB6B,QAAS,GAC5B7B,GAAmBsK,KAAI/I,IACrBX,EAAAA,EAAAA,KAAA,OAAAD,UACEC,EAAAA,EAAAA,KAACuK,EAAAA,GAAG,CACF8F,SAAUA,KACR,MAAMC,EAAclR,GAAmBoN,QACrC+D,GAAKA,EAAEpJ,KAAOxG,EAAKwG,KAErBmG,GAAsBgD,GACtBjC,GAAa,CACXzD,cAA0B,OAAX0F,QAAW,IAAXA,OAAW,EAAXA,EAAa5G,KAAI/I,GAC9BA,EAAKwG,GAAG2H,cAEV,EAEJhO,MAAOH,EAAKC,MACZ4J,KAAK,YAdC7J,EAAKwG,GAAKxG,EAAKC,UAmBT,OAAnB4M,SAAmB,IAAnBA,QAAmB,EAAnBA,GAAqBvM,QAAS,GAC7BuM,GAAoB9D,KAAI/I,IACtBX,EAAAA,EAAAA,KAAA,OAAAD,UACEC,EAAAA,EAAAA,KAACuK,EAAAA,GAAG,CACF8F,SAAUA,KACR,MAAMC,EAAc9C,GAAoBhB,QACtC+D,GAAKA,EAAEpJ,KAAOxG,EAAKwG,KAErBsG,GAAuB6C,GACvBjC,GAAa,CACX7O,aAAyB,OAAX8Q,QAAW,IAAXA,OAAW,EAAXA,EAAa5G,KAAI/I,GAC7BA,EAAKwG,GAAG2H,cAEV,EAEJhO,MAAOH,EAAKC,MACZ4J,KAAK,YAdC7J,EAAKwG,GAAKxG,EAAKC,yBAyB3Cf,EAAAA,EAAAA,MAAC2P,EAAAA,GAAI,CACHjH,YAAa,CACXC,QAAS,CAAEiH,KAAM,GAAIC,IAAK,MAC1BhH,OAAQ,CAAE+G,KAAM,GAAIC,IAAK,MACzB/G,OAAQ,CAAE8G,KAAM,GAAIC,IAAK,OAE3B5P,UAAW2K,EAAW,WAAW1K,SAAA,EAEjCC,EAAAA,EAAAA,KAAC2P,EAAAA,GAAE,CAACC,MAAM,YAAW7P,UACnBC,EAAAA,EAAAA,KAACsI,EAAAA,GAAQ,CACPC,YAAa,CACXC,QAAS,CAAEC,IAAK,GAChBC,OAAQ,CAAED,IAAK,IACfE,OAAQ,CAAEF,IAAK,KAEjB3I,UAAW2K,EAAW,mBAAmB1K,SAExCsM,IACCrM,EAAAA,EAAAA,KAACvB,EAAc,CACbC,WAAYoN,EACZnN,MAAOA,GACPC,aAAcA,GACdC,WAAY2R,IAAgB,IAAf,MAAEhQ,GAAOgQ,EACpB9C,GAAiBlN,GACjB6N,GAAa,CACX7D,KAAMhK,EAAM2G,IACZ,EAEJjI,WAAY4N,GACZ1N,mBAAoBA,GACpBD,sBAAuBmM,EACvBhM,8BACEqM,EAEFtM,iBAAkBoR,IAAgB,IAAf,MAAEjQ,GAAOiQ,EAC1BnD,GAAsB9M,GACtB6N,GAAa,CACXzD,cAAoB,OAALpK,QAAK,IAALA,OAAK,EAALA,EAAOkJ,KAAI/I,GAAQA,EAAKwG,GAAG2H,cAC1C,EAGJtP,aAAcwN,GACdzN,uBAAwBiM,EACxBkF,gCAAiC,uBACjCjR,qBAAsB+N,GACtB9N,mBAAoBiR,IAAgB,IAAf,MAAEnQ,GAAOmQ,EAC5BlD,GAAuBjN,GACvB6N,GAAa,CACX7O,aAAmB,OAALgB,QAAK,IAALA,OAAK,EAALA,EAAOkJ,KAAI/I,GAAQA,EAAKwG,GAAG2H,cACzC,EAEJ/P,KAAM8N,GACN+D,SAAU7D,GACV8D,eAAgB,UAChBC,gBAAiBvF,EACjBzM,wBAAyB4M,EACzB1M,aAAcA,GACdC,WAAY8R,IAAgB,IAAf,MAAEvQ,GAAOuQ,EACpBxD,GAAgB/M,GAChB6N,GAAa,CACXxD,QAAc,OAALrK,QAAK,IAALA,OAAK,EAALA,EAAOkJ,KAAI/I,GAAQA,EAAKwG,GAAG2H,cACpC,EAEJnP,YAAamG,GACblG,cAAemM,SAKvBlM,EAAAA,EAAAA,MAACyI,EAAAA,GAAQ,CACPC,YAAa,CACXC,QAAS,CAAEC,IAAK,GAChBC,OAAQ,CAAED,IAAK,IACfE,OAAQ,CAAEF,IAAK,KACf1I,SAAA,CAEwB,KAAb,OAAZgL,QAAY,IAAZA,OAAY,EAAZA,EAAc9J,UAAiBqL,IAC9BtM,EAAAA,EAAAA,KAAA,OAAKF,UAAW2K,EAAW,SAAS1K,UAClCF,EAAAA,EAAAA,MAACI,EAAAA,EAAW0G,MAAK,CAACxG,KAAK,KAAIJ,SAAA,CACxBkM,EAA8B,KAC/BjM,EAAAA,EAAAA,KAAA,QAAAD,SAAOmM,UAIbrM,EAAAA,EAAAA,MAAC2P,EAAAA,GAAI,CACHjH,YAAa,CACXC,QAAS,CAAEiH,KAAM,GAAIC,IAAK,MAC1BhH,OAAQ,CAAE+G,KAAM,GAAIC,IAAK,MACzB/G,OAAQ,CAAE8G,KAAM,GAAIC,IAAK,OAE3B5P,UAAW2K,EAAW,gBAAgB1K,SAAA,CAErCuM,IACCtM,EAAAA,EAAAA,KAACsI,EAAAA,GAAQ,CACPC,YAAa,CACXC,QAAS,CAAEC,IAAK,GAChBC,OAAQ,CAAED,IAAK,GACfE,OAAQ,CAAEF,IAAK,KACf1I,UAEFC,EAAAA,EAAAA,KAACgR,EAAAA,GAAM,MAGVjG,GAAgBE,EACb,MACE,MAIMgG,GAHJlG,EAAa9J,OAAS,EAClB8J,EACAE,GAC2BuB,QAC/B0E,GAAQ9J,OAAOlC,OAAOgM,GAAM1E,OAAOnQ,SAAS4E,OAAS,IAEjDkQ,EAAmC,GACzC,IAAIC,EAAc,EAoClB,OAlCAH,EAAchX,SAAQ,CAACiX,EAAMtH,KAC3BuH,EAAcE,MACZrR,EAAAA,EAAAA,KAACsI,EAAAA,GAAQ,CAEPC,YAAa,CACXC,QAAS,CAAEC,IAAK,GAChBC,OAAQ,CAAED,IAAK,GACfE,OAAQ,CAAEF,IAAK,KACf1I,UAEFC,EAAAA,EAAAA,KAACiJ,EAAY,IAAKiI,KAPbA,EAAK/J,MAYXyC,EAAQ,GAAK,IAAM,GACpBwD,IACAgE,EAAchE,GAAQnM,SAEtBkQ,EAAcE,MACZrR,EAAAA,EAAAA,KAACsI,EAAAA,GAAQ,CAEPC,YAAa,CACXC,QAAS,CAAEC,IAAK,IAChBC,OAAQ,CAAED,IAAK,IACfE,OAAQ,CAAEF,IAAK,KACf1I,UAEFC,EAAAA,EAAAA,KAAC4H,EAAc,IAAKwF,GAAQgE,MAPvB,UAAUA,MAUnBA,GAAeA,EAAc,GAAKhE,GAAQnM,OAC5C,IAEKkQ,CACR,EA9CD,GA+CA,QAELlD,KACCjO,EAAAA,EAAAA,KAACsR,EAAAA,GAAS,CAACC,OAAO,MAAKxR,UACrBC,EAAAA,EAAAA,KAACgR,EAAAA,GAAM,MAGVrD,IAAsBT,GAAa/B,IAClCnL,EAAAA,EAAAA,KAAA,OAAK/D,IAAKiT,iBAMnB,C","sources":["../node_modules/react-intersection-observer-hook/src/utils.ts","../node_modules/react-intersection-observer-hook/src/useIntersectionObserver.ts","../node_modules/react-intersection-observer-hook/src/useTrackVisibility.ts","../node_modules/@dataartdev/uikit/__internal__/src/hooks/useInfiniteScroll/useInfiniteScroll.js","../node_modules/@dataartdev/uikit/__internal__/src/icons/IconFilter/IconFilter_size_m.js","../node_modules/@dataartdev/uikit/__internal__/src/icons/IconFilter/IconFilter.js","features/blog/components/DesktopFilters.tsx","features/blog/components/BlogPageSearch.tsx","features/blog/components/SubscriptionForm.tsx","features/blog/components/BlogPageBanner.tsx","features/blog/components/BlogPostCard.tsx","features/blog/pages/BlogPage.tsx"],"sourcesContent":["type EntryCallback = (entry: IntersectionObserverEntry) => void;\n\ntype CachedObserver = {\n observer: IntersectionObserver;\n entryCallbacks: Map;\n};\n\ntype ObserverCache = Map;\n\ntype ObserverCachesByRoot = Map<\n IntersectionObserverInit['root'],\n ObserverCache\n>;\n\nexport type CachedIntersectionObserver = {\n observe: (\n node: Element,\n callback: (entry: IntersectionObserverEntry) => void,\n ) => void;\n unobserve: (node: Element) => void;\n};\n\nexport function createObserverCache() {\n const cachesByRoot: ObserverCachesByRoot = new Map();\n\n function getObserver({\n root,\n rootMargin,\n threshold,\n }: IntersectionObserverInit): CachedIntersectionObserver {\n let cacheByRoot = cachesByRoot.get(root);\n\n if (!cacheByRoot) {\n cacheByRoot = new Map();\n cachesByRoot.set(root, cacheByRoot);\n }\n\n const cacheKey = JSON.stringify({ rootMargin, threshold });\n let cachedObserver = cacheByRoot.get(cacheKey);\n\n if (!cachedObserver) {\n const entryCallbacks = new Map();\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n const callback = entryCallbacks.get(entry.target);\n callback?.(entry);\n });\n },\n { root, rootMargin, threshold },\n );\n\n cachedObserver = { observer, entryCallbacks };\n\n cacheByRoot.set(cacheKey, cachedObserver);\n }\n\n return {\n observe: (\n node: Element,\n callback: (entry: IntersectionObserverEntry) => void,\n ) => {\n cachedObserver?.entryCallbacks.set(node, callback);\n cachedObserver?.observer.observe(node);\n },\n unobserve: (node: Element) => {\n cachedObserver?.entryCallbacks.delete(node);\n cachedObserver?.observer.unobserve(node);\n },\n };\n }\n\n return { getObserver };\n}\n","import { useState, useCallback, useRef } from 'react';\nimport { CachedIntersectionObserver, createObserverCache } from './utils';\nimport { Omit } from './types';\n\nconst DEFAULT_ROOT_MARGIN = '0px';\nconst DEFAULT_THRESHOLD = [0];\n\nexport type IntersectionObserverHookArgs = Omit<\n IntersectionObserverInit,\n 'root'\n>;\n\nexport type IntersectionObserverHookRefCallbackNode = Element | null;\n\nexport type IntersectionObserverHookRefCallback = (\n node: IntersectionObserverHookRefCallbackNode,\n) => void;\n\nexport type IntersectionObserverHookRootRefCallbackNode = IntersectionObserverInit['root'];\n\nexport type IntersectionObserverHookRootRefCallback = (\n node: IntersectionObserverHookRootRefCallbackNode,\n) => void;\n\nexport type IntersectionObserverHookResult = [\n IntersectionObserverHookRefCallback,\n {\n entry: IntersectionObserverEntry | undefined;\n rootRef: IntersectionObserverHookRootRefCallback;\n },\n];\n\nconst observerCache = createObserverCache();\n\n// For more info:\n// https://developers.google.com/web/updates/2016/04/intersectionobserver\n// https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\nfunction useIntersectionObserver(\n args?: IntersectionObserverHookArgs,\n): IntersectionObserverHookResult {\n const rootMargin = args?.rootMargin ?? DEFAULT_ROOT_MARGIN;\n const threshold = args?.threshold ?? DEFAULT_THRESHOLD;\n\n const nodeRef = useRef(null);\n const rootRef = useRef(null);\n const observerRef = useRef(null);\n\n const [entry, setEntry] = useState();\n\n const observe = useCallback(() => {\n const node = nodeRef.current;\n\n if (!node) {\n setEntry(undefined);\n return;\n }\n\n const observer = observerCache.getObserver({\n root: rootRef.current,\n rootMargin,\n threshold,\n });\n\n observer.observe(node, (observedEntry) => {\n setEntry(observedEntry);\n });\n\n observerRef.current = observer;\n }, [rootMargin, threshold]);\n\n const unobserve = useCallback(() => {\n const currentObserver = observerRef.current;\n const node = nodeRef.current;\n\n if (node) {\n currentObserver?.unobserve(node);\n }\n\n observerRef.current = null;\n }, []);\n\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with null when it unmounts.\n // So, we don't need an useEffect etc to unobserve nodes.\n // When nodeRef.current is null, it will be unobserved and observe function\n // won't do anything.\n const refCallback = useCallback(\n (node) => {\n unobserve();\n nodeRef.current = node;\n observe();\n },\n [observe, unobserve],\n );\n\n const rootRefCallback = useCallback(\n (rootNode) => {\n unobserve();\n rootRef.current = rootNode;\n observe();\n },\n [observe, unobserve],\n );\n\n return [refCallback, { entry, rootRef: rootRefCallback }];\n}\n\nexport default useIntersectionObserver;\n","import { useState } from 'react';\nimport useIntersectionObserver, {\n IntersectionObserverHookArgs,\n IntersectionObserverHookResult,\n} from './useIntersectionObserver';\n\nexport type TrackVisibilityHookArgs = IntersectionObserverHookArgs;\n\nexport type TrackVisibilityHookResult = [\n IntersectionObserverHookResult[0],\n IntersectionObserverHookResult[1] & {\n isVisible: boolean;\n wasEverVisible: boolean;\n },\n];\n\nfunction useTrackVisibility(\n args?: IntersectionObserverHookArgs,\n): TrackVisibilityHookResult {\n const [ref, result] = useIntersectionObserver(args);\n const isVisible = Boolean(result.entry?.isIntersecting);\n const [wasEverVisible, setWasEverVisible] = useState(isVisible);\n\n if (isVisible && !wasEverVisible) {\n setWasEverVisible(true);\n }\n\n return [ref, { ...result, isVisible, wasEverVisible }];\n}\n\nexport default useTrackVisibility;\n","import { __read } from \"tslib\";\nimport { useEffect } from 'react';\nimport { useTrackVisibility, } from 'react-intersection-observer-hook';\nvar DEFAULT_DELAY_IN_MS = 100;\nexport var useInfiniteScroll = function (_a) {\n var loading = _a.loading, hasNextPage = _a.hasNextPage, onLoadMore = _a.onLoadMore, rootMargin = _a.rootMargin, disabled = _a.disabled, _b = _a.delayInMs, delayInMs = _b === void 0 ? DEFAULT_DELAY_IN_MS : _b;\n var _c = __read(useTrackVisibility({\n rootMargin: rootMargin\n }), 2), ref = _c[0], _d = _c[1], rootRef = _d.rootRef, isVisible = _d.isVisible;\n var shouldLoadMore = !disabled && !loading && isVisible && hasNextPage;\n // eslint-disable-next-line consistent-return\n useEffect(function () {\n if (shouldLoadMore) {\n // When we trigger 'onLoadMore' and new items are added to the list,\n // right before they become rendered on the screen, 'loading' becomes false\n // and 'isVisible' can be true for a brief time, based on the scroll position.\n // So, it triggers 'onLoadMore' just after the first one is finished.\n // We use a small delay here to prevent this kind of situations.\n // It can be configured by hook args.\n var timer_1 = setTimeout(function () {\n onLoadMore();\n }, delayInMs);\n return function () {\n clearTimeout(timer_1);\n };\n }\n }, [onLoadMore, shouldLoadMore, delayInMs]);\n return [ref, { rootRef: rootRef }];\n};\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nfunction IconFilterSizeM(props) {\n return (React.createElement(\"svg\", __assign({ viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M12 16C13.3063 16 14.4175 16.8349 14.8293 18.0001L21 18C21.5523 18 22 18.4477 22 19C22 19.5523 21.5523 20 21 20L14.829 20.0009C14.4169 21.1656 13.3059 22 12 22C10.6941 22 9.58311 21.1656 9.17102 20.0009L3 20C2.44772 20 2 19.5523 2 19C2 18.4477 2.44772 18 3 18L9.17067 18.0001C9.58249 16.8349 10.6937 16 12 16ZM12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18ZM19 9C20.6569 9 22 10.3431 22 12C22 13.6569 20.6569 15 19 15C17.6941 15 16.5831 14.1656 16.171 13.0009L3 13C2.44772 13 2 12.5523 2 12C2 11.4477 2.44772 11 3 11L16.1707 11.0001C16.5825 9.83485 17.6937 9 19 9ZM19 11C18.4477 11 18 11.4477 18 12C18 12.5523 18.4477 13 19 13C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11ZM5 2C6.3118 2 7.42695 2.84196 7.83453 4.01495C7.88799 4.00469 7.94344 4 8 4H21C21.5523 4 22 4.44772 22 5C22 5.55228 21.5523 6 21 6H8C7.94344 6 7.88799 5.9953 7.83399 5.98628C7.42695 7.15804 6.3118 8 5 8C3.34315 8 2 6.65685 2 5C2 3.34315 3.34315 2 5 2ZM5 4C4.44772 4 4 4.44772 4 5C4 5.55228 4.44772 6 5 6C5.55228 6 6 5.55228 6 5C6 4.44772 5.55228 4 5 4Z\" })));\n}\nexport default IconFilterSizeM;\n","import { createIcon } from '../createIcon/createIcon';\nimport IconFilterSizeM from './IconFilter_size_m';\nexport var IconFilter = createIcon({\n m: IconFilterSizeM,\n s: IconFilterSizeM,\n xs: IconFilterSizeM,\n name: 'IconFilter'\n});\n","import './DesktopFilters.scss';\r\nimport React from 'react';\r\nimport { cn } from '../../../common/utils/bem';\r\nimport { Typography } from '@dataartdev/uikit/Typography';\r\nimport { Button } from '@dataartdev/uikit/Button';\r\nimport { RadioGroup } from '@dataartdev/uikit/RadioGroup';\r\nimport { CheckboxGroup } from '@dataartdev/uikit/CheckboxGroup';\r\nimport { Combobox } from '@dataartdev/uikit/Combobox';\r\nimport { IDesctopFilter } from '../pages/blog_page_models';\r\n\r\nexport const cnDesktopFilters = cn('DesktopFilters');\r\n\r\nexport const DesktopFilters: React.FC = ({\r\n modesLabel,\r\n modes,\r\n modeSelected,\r\n modeChange,\r\n // tagsPlaceholder,\r\n tagsPlaceholderSelected,\r\n tags = [],\r\n // moreTags,\r\n // moreTagsButton,\r\n tagsSelected,\r\n tagsChange,\r\n industries = [],\r\n industriesPlaceholder,\r\n industriesSelected,\r\n industriesChange,\r\n industriesPlaceholderSelected,\r\n contentTypePlaceholder,\r\n contentTypes = [],\r\n contentTypesSelected,\r\n contentTypesChange,\r\n // contentTypesPlaceholderSelected,\r\n onResetForm,\r\n clearAllLabel = 'Clear All',\r\n}) => {\r\n return (\r\n
\r\n
\r\n {modesLabel && (\r\n \r\n {modesLabel}\r\n \r\n )}\r\n item.title}\r\n getBadge={item => item.label}\r\n onChange={modeChange}\r\n direction=\"column\"\r\n />\r\n
\r\n
\r\n {industries?.length > 0 && (\r\n item.title}\r\n onChange={industriesChange}\r\n view=\"outline\"\r\n />\r\n )}\r\n {tags?.length > 0 && (\r\n item.title}\r\n view=\"outline\"\r\n />\r\n )}\r\n
\r\n {contentTypes?.length > 0 && (\r\n
\r\n \r\n {contentTypePlaceholder}\r\n \r\n item.title}\r\n getDisabled={item => item.disabled}\r\n onChange={contentTypesChange}\r\n items={contentTypes}\r\n value={contentTypesSelected}\r\n />\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import './BlogPageSearch.scss';\r\nimport React from 'react';\r\nimport { cn } from '../../../common/utils/bem';\r\nimport { Button } from '@dataartdev/uikit/Button';\r\nimport { TextField } from '@dataartdev/uikit/TextField';\r\nimport { IconArrowRight } from '@dataartdev/uikit/IconArrowRight';\r\n\r\nexport const cnBlogPageSearch = cn('BlogPageSearch');\r\n\r\ninterface Props {\r\n placeholder?: string;\r\n nameSelected?: string;\r\n setNameSelected: (value: string) => void;\r\n nameChange: (value: string) => void;\r\n}\r\n\r\nexport const BlogPageSearch: React.FC = ({\r\n placeholder = 'Search',\r\n nameSelected = '',\r\n setNameSelected,\r\n nameChange,\r\n}) => {\r\n const handleSubmit = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n nameChange(nameSelected);\r\n };\r\n\r\n return (\r\n
\r\n setNameSelected(e.value)}\r\n />\r\n \r\n \r\n );\r\n};\r\n","import './SubscriptionForm.scss';\r\n\r\nimport React, { useRef, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { dictionariesSelector, layoutSelector } from '../../../store';\r\nimport { mutationFooterForm } from '../../../network/api/form/mutationFooterForm';\r\nimport { Typography } from '@dataartdev/uikit/Typography';\r\nimport { Button } from '@dataartdev/uikit/Button';\r\nimport { Checkbox } from '@dataartdev/uikit/Checkbox';\r\nimport { TextField } from '@dataartdev/uikit/TextField';\r\nimport { IconArrowRight } from '@dataartdev/uikit/IconArrowRight';\r\nimport * as yup from 'yup';\r\nimport { useFormik } from 'formik';\r\nimport TagManager from 'react-gtm-module';\r\nimport Subscription from '../../../assets/img/subscription.png';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport { recaptchaFormKey, recaptchaKey } from '../../../common/constants';\r\nimport { cn } from '../../../ui/utils/bem';\r\n\r\nconst cnSubscriptionForm = cn('SubscriptionForm');\r\n\r\nexport const SubscriptionForm: React.FC = () => {\r\n const [isSubmited, setIsSubmited] = useState(false);\r\n const { companySiteBlogPost } = useSelector(dictionariesSelector) || {};\r\n const { pageId } = useSelector(layoutSelector);\r\n const {\r\n companySiteBlogPostFormRequiredField = 'This field is required',\r\n companySiteBlogPostFormSubscribeEventSuccessTitle = 'Success!',\r\n companySiteBlogPostFormSubscribeEventSuccessText = \"You've been successfully subscribed to our newsletter. Keep an eye out for our latest insights!\",\r\n companySiteBlogPostFormSubscribeEventTrackingID = 'newsletter_form',\r\n // companySiteBlogPostFormSubscribeEventButton = 'Subscribe',\r\n companySiteBlogPostFormSubscribeEventTitle = 'Subscribe to Our Newsletter',\r\n companySiteBlogPostFormSubscribeEventText = 'Subscribe to our newsletter and never miss an interesting meeting or webinar',\r\n companySiteBlogPostFormSubscribeEventSubscribePolicy = 'I have read and agree to the Privacy Policy',\r\n companySiteBlogPostFormSubscribeEventEmail: {\r\n companySiteBlogPostFormSubscribeEventEmailText = '',\r\n companySiteBlogPostFormSubscribeEventEmailError = '',\r\n } = {},\r\n companySiteBlogPostFormSubscribeEventName,\r\n } =\r\n companySiteBlogPost?.companySiteBlogPostForm\r\n .companySiteBlogPostFormSubscribeEvent || {};\r\n\r\n const validationSchema = yup.object({\r\n name: yup\r\n .string()\r\n .min(3)\r\n .required(companySiteBlogPostFormRequiredField)\r\n .nullable(),\r\n email: yup\r\n .string()\r\n .email(companySiteBlogPostFormSubscribeEventEmailError)\r\n .required(companySiteBlogPostFormRequiredField)\r\n .nullable(),\r\n privacyAgreement: yup\r\n .boolean()\r\n .oneOf([true], 'on')\r\n .required(),\r\n });\r\n\r\n const initialValues = {\r\n name: '',\r\n email: '',\r\n privacyAgreement: false,\r\n };\r\n\r\n const reCaptchaRef = useRef(null);\r\n\r\n const {\r\n handleSubmit,\r\n isSubmitting,\r\n errors,\r\n dirty,\r\n handleBlur,\r\n handleChange,\r\n values,\r\n touched,\r\n } = useFormik({\r\n initialValues,\r\n validationSchema,\r\n onSubmit: async (body, actions) => {\r\n try {\r\n const token = await reCaptchaRef.current?.executeAsync();\r\n await mutationFooterForm({\r\n body: {\r\n ...body,\r\n pageId: pageId,\r\n [`${recaptchaFormKey}`]: token,\r\n },\r\n });\r\n setIsSubmited(true);\r\n actions.resetForm();\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: 'newsletter_subscription',\r\n form_name: companySiteBlogPostFormSubscribeEventTrackingID,\r\n },\r\n });\r\n } catch (error) {\r\n error instanceof Error\r\n ? console.error(error.message)\r\n : console.error(error);\r\n }\r\n },\r\n });\r\n\r\n const reCaptchaAvailability =\r\n !!recaptchaKey && process.env.NODE_ENV === 'production';\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {companySiteBlogPostFormSubscribeEventTitle && (\r\n \r\n {companySiteBlogPostFormSubscribeEventTitle}\r\n \r\n )}\r\n {companySiteBlogPostFormSubscribeEventText && (\r\n \r\n {companySiteBlogPostFormSubscribeEventText}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n handleChange(e)}\r\n onBlur={handleBlur}\r\n value={values.name}\r\n required\r\n caption={touched.name && errors.name ? errors.name : undefined}\r\n status={touched.name && !!errors.name ? 'alert' : undefined}\r\n />\r\n handleChange(e)}\r\n onBlur={handleBlur}\r\n value={values.email}\r\n required\r\n caption={touched.email && errors.email ? errors.email : undefined}\r\n status={touched.email && !!errors.email ? 'alert' : undefined}\r\n />\r\n
\r\n
\r\n handleChange(e)}\r\n onBlur={handleBlur}\r\n checked={values.privacyAgreement}\r\n />\r\n \r\n
\r\n {reCaptchaAvailability && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n {companySiteBlogPostFormSubscribeEventSuccessTitle && (\r\n \r\n {companySiteBlogPostFormSubscribeEventSuccessTitle}\r\n \r\n )}\r\n {companySiteBlogPostFormSubscribeEventSuccessText && (\r\n \r\n {companySiteBlogPostFormSubscribeEventSuccessText}\r\n \r\n )}\r\n
\r\n
\r\n \"Success\"\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import './BlogPageBanner.scss';\r\nimport React from 'react';\r\nimport { cn } from '../../../common/utils/bem';\r\nimport { Button } from '@dataartdev/uikit/Button';\r\nimport { IconArrowRight } from '@dataartdev/uikit/IconArrowRight';\r\nimport { Typography } from '@dataartdev/uikit/Typography';\r\nimport { Picture } from '@dataartdev/uikit/Picture';\r\nimport { Banner } from '../pages/blog_page_models';\r\nimport { prepareButtonAttrs } from '../../../common/utils/prepareButtonAttrs';\r\nimport { GridItem } from '@dataartdev/uikit/Grid';\r\nimport { SubscriptionForm } from './SubscriptionForm';\r\n\r\nexport const cnBlogPageBanner = cn('BlogPageBanner');\r\n\r\nexport const BlogPageBanner: React.FC = props => {\r\n const { picture, text, title, button, isForm, color = '#ffde55' } =\r\n props || {};\r\n const buttonAttr = prepareButtonAttrs(\r\n button?.link,\r\n button?.title,\r\n button?.targetBlank\r\n );\r\n return isForm ? (\r\n \r\n \r\n \r\n ) : (\r\n
\r\n
\r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n {text && (\r\n \r\n {text}\r\n \r\n )}\r\n {Object.keys(buttonAttr).length > 0 && (\r\n \r\n )}\r\n
\r\n {picture && (\r\n
\r\n \r\n
\r\n )}\r\n {Object.keys(buttonAttr).length > 0 && (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n","import './BlogPostCard.scss';\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { cn } from '../../../common/utils/bem';\r\nimport { Typography } from '@dataartdev/uikit/Typography';\r\nimport { Picture } from '@dataartdev/uikit/Picture';\r\nimport { Tag } from '@dataartdev/uikit/Tag';\r\nimport { Item } from '../pages/blog_page_models';\r\nimport { User } from '@dataartdev/uikit/User';\r\n\r\nexport const cnBlogPostCard = cn('BlogPostCard');\r\n\r\nexport const BlogPostCard: React.FC = props => {\r\n const { type, url, string, tags, picture, speakers } = props || {};\r\n const generateCardLink = (url: string) => {\r\n if (!url) return;\r\n return url.includes('http') ? (\r\n \r\n ) : (\r\n \r\n );\r\n };\r\n return (\r\n
\r\n {url && generateCardLink(url)}\r\n {picture && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {type && (\r\n \r\n {type?.title}\r\n \r\n )}\r\n
\r\n {string && {string}}\r\n
\r\n {speakers &&\r\n speakers.length > 0 &&\r\n speakers.map((speaker, index) => (\r\n \r\n {speaker.photo && (\r\n \r\n )}\r\n \r\n ))}\r\n
\r\n
\r\n {tags && tags?.length > 0 && (\r\n
\r\n {tags.map(tag => (\r\n \r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n","import './BlogPage.scss';\r\n\r\nimport React, { useState, useEffect, useCallback } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n useDataQuery,\r\n useDataPagination,\r\n useGTMDataSend,\r\n QueryFilter,\r\n} from 'common/hooks';\r\nimport { queryBlogFeed, queryBlogPage } from 'network';\r\nimport { SiteBlock } from '../../../common/components/SiteBlock/SiteBlock';\r\nimport { Grid, GridItem } from '@dataartdev/uikit/Grid';\r\nimport { Mq } from '@dataartdev/uikit/Mq';\r\nimport { Button } from '@dataartdev/uikit/Button';\r\nimport { Tag } from '@dataartdev/uikit/Tag';\r\nimport { Loader } from '@dataartdev/uikit/Loader';\r\nimport { Typography } from '@dataartdev/uikit/Typography';\r\nimport { IconFilter } from '@dataartdev/uikit/IconFilter';\r\nimport { DesktopFilters } from '../components/DesktopFilters';\r\nimport { useInfiniteScroll } from '@dataartdev/uikit/useInfiniteScroll';\r\nimport { getUrlFilter, RouteParams, updateQueryParams } from 'router';\r\nimport { dictionariesSelector } from 'store';\r\nimport { FilterModal } from 'common/components';\r\nimport { useIntl } from 'react-intl';\r\nimport {\r\n ContentType,\r\n Filter,\r\n Industry,\r\n Item,\r\n Tag as ITag,\r\n} from './blog_page_models';\r\nimport { BlogPageSearch } from '../components/BlogPageSearch';\r\nimport { BlogPageBanner } from '../components/BlogPageBanner';\r\nimport { BlogPostCard } from '../components/BlogPostCard';\r\nimport { cn } from 'ui/utils/bem';\r\n\r\nconst cnBlogPage = cn('BlogPage');\r\n\r\ntype Props = RouteComponentProps;\r\ninterface ModalMethods {\r\n show: () => void;\r\n hide: () => void;\r\n}\r\n\r\nconst BlogPage: React.FC = ({ location, history }) => {\r\n const {\r\n industriesIds,\r\n contentTypes,\r\n tagsIds,\r\n name,\r\n mode = 'latest',\r\n } = getUrlFilter(location);\r\n\r\n const [contentItems, setContentItems] = useState([]);\r\n const [contentDefaultItems, setContentDefaultItems] = useState([]);\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const { companySiteBlog } = useSelector(dictionariesSelector) || {};\r\n const {\r\n companySiteBlogIndustriesFilter,\r\n companySiteBlogTagsFilter,\r\n companySiteBlogContentTypesFilter,\r\n companySiteBlogInsightsTitle,\r\n companySiteBlogChosenTags,\r\n companySiteBlogChosenIndustries,\r\n companySiteBlogInsights: {\r\n companySiteBlogInsightsSearchLabel = 'Search',\r\n companySiteBlogInsightsModeLabel = 'Mode',\r\n companySiteBlogInsightsClearAll = 'Clear all',\r\n } = {},\r\n companySiteBlogNotFound: {\r\n companySiteBlogNotFoundTitle = \"Oh no! We couldn't find anything.\",\r\n companySiteBlogNotFoundText = \"Try trending editor's picks:\",\r\n } = {},\r\n } = companySiteBlog || {};\r\n\r\n const { locale } = useIntl();\r\n\r\n const {\r\n data,\r\n loading: loadingInitial,\r\n updateFilter,\r\n filter: filterData,\r\n } = useDataQuery(\r\n queryBlogPage,\r\n {\r\n locale,\r\n filter: {\r\n industriesIds: industriesIds,\r\n tagsIds: tagsIds,\r\n contentTypes: contentTypes,\r\n mode: mode,\r\n name: name,\r\n },\r\n },\r\n {\r\n skip: currentPage > 1,\r\n }\r\n );\r\n\r\n const {\r\n shortTags,\r\n industries: filterIndustries = [],\r\n tags: filterTags = [],\r\n contentTypes: filterContentTypes = [],\r\n filters: modes = [],\r\n pagesTotal = 1,\r\n items = [],\r\n defaultItems = [],\r\n banners,\r\n metaTitle,\r\n } = data || {};\r\n\r\n const [industriesSelected, setIndustriesSelected] = useState([]);\r\n const [tagsSelected, setTagsSelected] = useState([]);\r\n const [contentTypeSelected, setContentTypeSelected] = useState(\r\n []\r\n );\r\n const [modeSelected, setModesSelected] = useState();\r\n const [nameSelected, setNameSelected] = useState(name);\r\n const [infinityRefVisible, setInfinityRefVisible] = useState(false);\r\n\r\n const {\r\n pagination,\r\n updateFilter: updateFilterFeed,\r\n updatePagination,\r\n data: dataFeed,\r\n loading: loadingFeed,\r\n error,\r\n filter: filterCards,\r\n } = useDataPagination(\r\n queryBlogFeed,\r\n {\r\n locale,\r\n filter: {\r\n industriesIds: industriesIds,\r\n tagsIds: tagsIds,\r\n contentTypes: contentTypes,\r\n mode: mode,\r\n name: name,\r\n },\r\n },\r\n {\r\n skip: currentPage < 2,\r\n }\r\n );\r\n const changeFilter = useCallback(\r\n (filter: QueryFilter) => {\r\n if (filter.mode === 'data-and-analytics') {\r\n filter.tagsIds = ['244'];\r\n }\r\n setCurrentPage(1);\r\n setInfinityRefVisible(false);\r\n setContentItems([]);\r\n setContentDefaultItems([]);\r\n updateFilter(filter);\r\n updateFilterFeed(filter);\r\n },\r\n [setInfinityRefVisible, updateFilter, updateFilterFeed, setContentItems]\r\n );\r\n\r\n useEffect(() => {\r\n if (items?.length > 0) {\r\n setContentItems(items);\r\n setInfinityRefVisible(true);\r\n } else if (defaultItems?.length > 0) {\r\n setContentDefaultItems(defaultItems);\r\n }\r\n }, [items]);\r\n\r\n useEffect(() => {\r\n if (dataFeed) {\r\n setContentItems(prev => [...prev, ...dataFeed.items]);\r\n setInfinityRefVisible(true);\r\n }\r\n }, [dataFeed]);\r\n\r\n useEffect(() => {\r\n setCurrentPage(pagination.page);\r\n }, [pagination]);\r\n\r\n // MODE FILTER\r\n useEffect(() => {\r\n setModesSelected(modes?.find(item => mode == item?.id));\r\n }, [history, modes]);\r\n\r\n // INDUSTRIES FILTER\r\n useEffect(() => {\r\n if (industriesIds) {\r\n const industriesIdsArray = Array.isArray(industriesIds)\r\n ? industriesIds\r\n : [industriesIds];\r\n setIndustriesSelected(\r\n filterIndustries?.filter(item =>\r\n industriesIdsArray?.some(i => item.id.toString() === i)\r\n )\r\n );\r\n }\r\n }, [history, filterIndustries]);\r\n\r\n // TAGS FILTER\r\n useEffect(() => {\r\n if (tagsIds) {\r\n const tagIdsArray = Array.isArray(tagsIds) ? tagsIds : [tagsIds];\r\n\r\n setTagsSelected(\r\n filterTags?.filter(item =>\r\n tagIdsArray.some(i => item.id.toString() === i)\r\n )\r\n );\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [filterTags, history]);\r\n\r\n // CONTENT_TYPE FILTER\r\n useEffect(() => {\r\n if (contentTypes) {\r\n const contentTypesParams = Array.isArray(contentTypes)\r\n ? contentTypes\r\n : [contentTypes];\r\n\r\n setContentTypeSelected(\r\n filterContentTypes?.filter(item =>\r\n contentTypesParams.some(i => item.id.toString() === i)\r\n )\r\n );\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [filterContentTypes, history]);\r\n\r\n useEffect(() => {\r\n const { industriesIds, tagsIds, contentTypes, mode, name } =\r\n currentPage > 2 ? filterCards : filterData;\r\n\r\n updateQueryParams(history, {\r\n industriesIds,\r\n tagsIds,\r\n contentTypes,\r\n mode,\r\n name,\r\n });\r\n }, [filterCards, history, filterData]);\r\n\r\n const [sentryRef] = useInfiniteScroll({\r\n loading: loadingFeed,\r\n hasNextPage: pagination?.page < pagesTotal,\r\n onLoadMore: () => {\r\n updatePagination({ page: pagination.page + 1 });\r\n },\r\n disabled: !!error,\r\n });\r\n\r\n const filterModalRef = React.useRef(null);\r\n\r\n const resetForm = () => {\r\n setTagsSelected([]);\r\n setContentTypeSelected([]);\r\n setIndustriesSelected([]);\r\n setModesSelected(modes[1]);\r\n setNameSelected('');\r\n changeFilter({\r\n industriesIds: '',\r\n tagsIds: '',\r\n contentTypes: '',\r\n name: '',\r\n mode: 'latest',\r\n });\r\n if (filterModalRef.current) {\r\n hideModalFilter();\r\n }\r\n };\r\n\r\n const submitModalForm = () => {\r\n hideModalFilter();\r\n changeFilter({\r\n industriesIds: industriesSelected?.map(item => item.id.toString()),\r\n tagsIds: tagsSelected?.map(item => item.id.toString()),\r\n contentTypes: contentTypeSelected?.map(item => item.id.toString()),\r\n mode: modeSelected?.id,\r\n });\r\n };\r\n\r\n const showModalFilter = () => {\r\n if (filterModalRef.current) {\r\n filterModalRef.current.show();\r\n }\r\n };\r\n\r\n const hideModalFilter = () => {\r\n if (filterModalRef.current) {\r\n filterModalRef.current.hide();\r\n }\r\n };\r\n\r\n useGTMDataSend(metaTitle);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {companySiteBlogInsightsTitle}\r\n \r\n \r\n 0 ||\r\n industriesSelected?.length > 0 ||\r\n contentTypeSelected?.length > 0\r\n }\r\n onClick={showModalFilter}\r\n className={cnBlogPage('Filters-Mobile-Button')}\r\n />\r\n {\r\n setModesSelected(value);\r\n },\r\n }}\r\n industries={{\r\n title: companySiteBlogIndustriesFilter,\r\n contentItems: filterIndustries,\r\n onChange: ({ value }) => {\r\n setIndustriesSelected(value);\r\n },\r\n value: industriesSelected,\r\n }}\r\n tags={{\r\n title: companySiteBlogTagsFilter,\r\n contentItems: filterTags,\r\n onChange: ({ value }) => {\r\n setTagsSelected(value);\r\n },\r\n value: tagsSelected,\r\n }}\r\n contentTypes={{\r\n title: companySiteBlogContentTypesFilter,\r\n contentItems: filterContentTypes,\r\n onChange: ({ value }) => {\r\n setContentTypeSelected(value);\r\n },\r\n value: contentTypeSelected,\r\n }}\r\n />\r\n \r\n
\r\n
\r\n {\r\n changeFilter({\r\n name: value,\r\n });\r\n }}\r\n />\r\n
\r\n \r\n
\r\n {(tagsSelected?.length > 0 ||\r\n industriesSelected?.length > 0 ||\r\n contentTypeSelected?.length > 0) && (\r\n
\r\n \r\n Search results for:\r\n \r\n
\r\n {tagsSelected?.length > 0 &&\r\n tagsSelected.map(item => (\r\n
\r\n {\r\n const actualArray = tagsSelected.filter(\r\n w => w.id !== item.id\r\n );\r\n setTagsSelected(actualArray);\r\n changeFilter({\r\n tagsIds: actualArray?.map(item =>\r\n item.id.toString()\r\n ),\r\n });\r\n }}\r\n label={item.title}\r\n mode=\"cancel\"\r\n />\r\n
\r\n ))}\r\n\r\n {industriesSelected?.length > 0 &&\r\n industriesSelected.map(item => (\r\n
\r\n {\r\n const actualArray = industriesSelected.filter(\r\n w => w.id !== item.id\r\n );\r\n setIndustriesSelected(actualArray);\r\n changeFilter({\r\n industriesIds: actualArray?.map(item =>\r\n item.id.toString()\r\n ),\r\n });\r\n }}\r\n label={item.title}\r\n mode=\"cancel\"\r\n />\r\n
\r\n ))}\r\n\r\n {contentTypeSelected?.length > 0 &&\r\n contentTypeSelected.map(item => (\r\n
\r\n {\r\n const actualArray = contentTypeSelected.filter(\r\n w => w.id !== item.id\r\n );\r\n setContentTypeSelected(actualArray);\r\n changeFilter({\r\n contentTypes: actualArray?.map(item =>\r\n item.id.toString()\r\n ),\r\n });\r\n }}\r\n label={item.title}\r\n mode=\"cancel\"\r\n />\r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {data && (\r\n {\r\n setModesSelected(value);\r\n changeFilter({\r\n mode: value.id,\r\n });\r\n }}\r\n industries={filterIndustries}\r\n industriesSelected={industriesSelected}\r\n industriesPlaceholder={companySiteBlogIndustriesFilter}\r\n industriesPlaceholderSelected={\r\n companySiteBlogChosenIndustries\r\n }\r\n industriesChange={({ value }) => {\r\n setIndustriesSelected(value);\r\n changeFilter({\r\n industriesIds: value?.map(item => item.id.toString()),\r\n });\r\n }}\r\n // moreTags={filterTags}\r\n contentTypes={filterContentTypes}\r\n contentTypePlaceholder={companySiteBlogContentTypesFilter}\r\n contentTypesPlaceholderSelected={'chosen content types'}\r\n contentTypesSelected={contentTypeSelected}\r\n contentTypesChange={({ value }) => {\r\n setContentTypeSelected(value);\r\n changeFilter({\r\n contentTypes: value?.map(item => item.id.toString()),\r\n });\r\n }}\r\n tags={shortTags}\r\n moreTags={filterTags}\r\n moreTagsButton={'see all'}\r\n tagsPlaceholder={companySiteBlogTagsFilter}\r\n tagsPlaceholderSelected={companySiteBlogChosenTags}\r\n tagsSelected={tagsSelected}\r\n tagsChange={({ value }) => {\r\n setTagsSelected(value);\r\n changeFilter({\r\n tagsIds: value?.map(item => item.id.toString()),\r\n });\r\n }}\r\n onResetForm={resetForm}\r\n clearAllLabel={companySiteBlogInsightsClearAll}\r\n />\r\n )}\r\n \r\n \r\n \r\n {contentItems?.length === 0 && !loadingInitial && (\r\n
\r\n \r\n {companySiteBlogNotFoundTitle}{' '}\r\n {companySiteBlogNotFoundText}\r\n \r\n
\r\n )}\r\n \r\n {loadingInitial && (\r\n \r\n \r\n \r\n )}\r\n {contentItems || contentDefaultItems\r\n ? (() => {\r\n const itemsArray =\r\n contentItems.length > 0\r\n ? contentItems\r\n : contentDefaultItems;\r\n const filteredItems = itemsArray.filter(\r\n post => Object.values(post).filter(Boolean).length > 1\r\n );\r\n const itemsToRender: React.ReactNode[] = [];\r\n let bannerIndex = 0;\r\n\r\n filteredItems.forEach((post, index) => {\r\n itemsToRender.push(\r\n \r\n \r\n \r\n );\r\n\r\n if (\r\n (index + 1) % 6 === 0 &&\r\n banners &&\r\n bannerIndex < banners.length\r\n ) {\r\n itemsToRender.push(\r\n \r\n \r\n \r\n );\r\n bannerIndex = (bannerIndex + 1) % banners.length;\r\n }\r\n });\r\n return itemsToRender;\r\n })()\r\n : null}\r\n \r\n {loadingFeed && (\r\n \r\n \r\n \r\n )}\r\n {infinityRefVisible && pagesTotal > currentPage && (\r\n
\r\n )}\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default BlogPage;\r\n"],"names":["createObserverCache","cachesByRoot","Map","getObserver","_ref","root","rootMargin","threshold","cacheByRoot","get","set","cacheKey","JSON","stringify","cachedObserver","entryCallbacks","observer","IntersectionObserver","entries","forEach","entry","callback","target","observe","node","_cachedObserver","_cachedObserver2","unobserve","_cachedObserver3","_cachedObserver4","DEFAULT_ROOT_MARGIN","DEFAULT_THRESHOLD","observerCache","useTrackVisibility","args","_args$rootMargin","_args$threshold","nodeRef","useRef","rootRef","observerRef","useState","_useState","setEntry","useCallback","current","observedEntry","undefined","currentObserver","rootNode","useIntersectionObserver","ref","_useIntersectionObser","result","isVisible","Boolean","_result$entry","isIntersecting","wasEverVisible","setWasEverVisible","_extends","useInfiniteScroll","_a","loading","hasNextPage","onLoadMore","disabled","_b","delayInMs","_c","__read","_d","shouldLoadMore","useEffect","timer_1","setTimeout","clearTimeout","props","React","__assign","viewBox","d","IconFilter","createIcon","m","IconFilterSizeM","s","xs","name","cnDesktopFilters","cn","DesktopFilters","modesLabel","modes","modeSelected","modeChange","tagsPlaceholderSelected","tags","tagsSelected","tagsChange","industries","industriesPlaceholder","industriesSelected","industriesChange","industriesPlaceholderSelected","contentTypePlaceholder","contentTypes","contentTypesSelected","contentTypesChange","onResetForm","clearAllLabel","_jsxs","className","children","_jsx","Typography","Text","size","weight","transform","as","RadioGroup","value","items","getLabel","item","title","getBadge","label","onChange","direction","length","Combobox","multiple","dropdownClassName","groupValues","placeholder","placeholderSelected","getItemLabel","view","CheckboxGroup","getDisabled","Button","onClick","cnBlogPageSearch","BlogPageSearch","nameSelected","setNameSelected","nameChange","onSubmit","e","preventDefault","TextField","width","autoComplete","autoFocus","iconRight","IconArrowRight","type","cnSubscriptionForm","SubscriptionForm","isSubmited","setIsSubmited","companySiteBlogPost","useSelector","dictionariesSelector","pageId","layoutSelector","companySiteBlogPostFormRequiredField","companySiteBlogPostFormSubscribeEventSuccessTitle","companySiteBlogPostFormSubscribeEventSuccessText","companySiteBlogPostFormSubscribeEventTrackingID","companySiteBlogPostFormSubscribeEventTitle","companySiteBlogPostFormSubscribeEventText","companySiteBlogPostFormSubscribeEventSubscribePolicy","companySiteBlogPostFormSubscribeEventEmail","companySiteBlogPostFormSubscribeEventEmailText","companySiteBlogPostFormSubscribeEventEmailError","companySiteBlogPostFormSubscribeEventName","companySiteBlogPostForm","companySiteBlogPostFormSubscribeEvent","validationSchema","yup","min","required","nullable","email","privacyAgreement","oneOf","reCaptchaRef","handleSubmit","isSubmitting","errors","dirty","handleBlur","handleChange","values","touched","useFormik","initialValues","async","body","actions","_reCaptchaRef$current","token","executeAsync","mutationFooterForm","recaptchaFormKey","resetForm","TagManager","dataLayer","event","form_name","error","Error","console","message","reCaptchaAvailability","recaptchaKey","process","isSuccess","Title","onBlur","caption","status","_ref2","Checkbox","_ref3","checked","id","Object","keys","ReCAPTCHA","sitekey","src","Subscription","alt","cnBlogPageBanner","BlogPageBanner","picture","text","button","isForm","color","buttonAttr","prepareButtonAttrs","link","targetBlank","GridItem","breakpoints","desktop","col","tablet","mobile","style","backgroundColor","icon","Picture","cnBlogPostCard","BlogPostCard","url","string","speakers","includes","href","Link","to","generateCardLink","map","speaker","index","_speaker$photo","_speaker$photo2","photo","User","avatarUrl","urlWebp","zIndex","firstName","lastName","tag","Tag","mode","cnBlogPage","location","history","industriesIds","tagsIds","getUrlFilter","contentItems","setContentItems","contentDefaultItems","setContentDefaultItems","currentPage","setCurrentPage","companySiteBlog","companySiteBlogIndustriesFilter","companySiteBlogTagsFilter","companySiteBlogContentTypesFilter","companySiteBlogInsightsTitle","companySiteBlogChosenTags","companySiteBlogChosenIndustries","companySiteBlogInsights","companySiteBlogInsightsSearchLabel","companySiteBlogInsightsModeLabel","companySiteBlogInsightsClearAll","companySiteBlogNotFound","companySiteBlogNotFoundTitle","companySiteBlogNotFoundText","locale","useIntl","data","loadingInitial","updateFilter","filter","filterData","useDataQuery","queryBlogPage","skip","shortTags","filterIndustries","filterTags","filterContentTypes","filters","pagesTotal","defaultItems","banners","metaTitle","setIndustriesSelected","setTagsSelected","contentTypeSelected","setContentTypeSelected","setModesSelected","infinityRefVisible","setInfinityRefVisible","pagination","updateFilterFeed","updatePagination","dataFeed","loadingFeed","filterCards","useDataPagination","queryBlogFeed","changeFilter","prev","page","find","industriesIdsArray","Array","isArray","some","i","toString","tagIdsArray","contentTypesParams","updateQueryParams","sentryRef","filterModalRef","hideModalFilter","hide","useGTMDataSend","_Fragment","Grid","cols","gap","Mq","query","active","showModalFilter","show","FilterModal","onSubmitForm","submitModalForm","_ref4","_ref5","onCancel","actualArray","w","_ref6","_ref7","contentTypesPlaceholderSelected","_ref8","moreTags","moreTagsButton","tagsPlaceholder","_ref9","Loader","filteredItems","post","itemsToRender","bannerIndex","push","SiteBlock","topGap"],"sourceRoot":""}