{"version":3,"file":"static/js/5917.1a8ecdbb132d2d804554.js","mappings":"8MAWA,MAAMA,EAAU,CACZC,0BAA2B,CACvBC,OAAQ,QACR,CAAC,sBAAsBC,EAAAA,EAAYC,OAAQ,CACvCF,OAAQ,UAGhBG,YAAa,CACTC,QAAS,QACT,CAAC,sBAAsBH,EAAAA,EAAYC,OAAQ,CACvCE,QAAS,SAGjBC,WAAY,CACRL,OAAQ,QACRM,gBAAiBC,EAAAA,GAASC,KAAKC,MAC/BL,QAAS,QACT,CAAC,sBAAsBH,EAAAA,EAAYC,OAAQ,CACvCE,QAAS,UAKd,SAASM,GAAc,QAAEC,IAC5B,MAAOC,IAAYC,EAAAA,EAAAA,IAAQC,EAAAA,IAG3B,UAFoBH,EAAQI,WAAYJ,EAAQK,iBAE9BL,EAAQM,uBAAyBL,EACxC,MAIPM,EAAAA,EAAAA,GAAA,OAAKC,IAAKR,EAAQM,sBAAwBnB,EAAQK,iBAAciB,EAAUC,UACtEH,EAAAA,EAAAA,GAACI,EAAAA,GAAmB,CAChBC,UAAWZ,EAAQI,SACnBS,gBAAiBb,EAAQK,eACzBS,IAAKd,EAAQe,UAAY,GACzBC,UAAWhB,EAAQiB,iBAAmB,GACtCC,gBAAiBjB,EACjBkB,YAAalB,EACbmB,UAAU,EACVC,YAAa,CAAEC,iBAAiB,GAAOZ,UAEvCH,EAAAA,EAAAA,GAAA,OAAKC,IAAKrB,EAAQC,+BAIlC,C,kHC/Ce,SAASmC,GAAwB,QAC5CC,EAAO,eACPC,IAEA,OACIlB,EAAAA,EAAAA,GAACmB,EAAAA,EAAuB,CACpBC,YAAU,EACVnB,IAAG,CAAGrB,EAAAA,EAAQyC,UAAWzC,EAAAA,EAAQ0C,cAAa,OAC9CC,MAAMC,EAAAA,EAAAA,KAAaC,EAAAA,EAAAA,IAA+BR,EAASC,KAGvE,C,eCZO,SAASQ,GAAgB,QAAET,EAAO,eAAEC,IACvC,OACIlB,EAAAA,EAAAA,GAAC2B,EAAAA,EAAiB,CAACC,UAAWC,EAAAA,GAAK1B,UAC/BH,EAAAA,EAAAA,GAACgB,EAAuB,CAACC,QAASA,EAASC,eAAgBA,KAGvE,C,8KCXO,MAAMY,EAAqB,CAC9BT,UAAW,CACPU,aAAc,OACdC,MAAO,QAEXV,cAAe,CACXW,MAAO5C,EAAAA,GAAS6C,KAAKC,UACrB,MAAO,CACHC,WAAY,8BACZC,SAAU,UACVC,WAAY,UACZC,WAAY,UACZC,eAAgB,YAChBP,MAAO5C,EAAAA,GAASC,KAAKmD,WACrBC,UAAW,aACXC,QAAS,gBACT,UAAW,CACPvD,gBAAiB,IAAGwD,EAAAA,EAAAA,IAAavD,EAAAA,GAASC,KAAKuD,UAAW,mBAE9D,UAAW,CACPC,aAAczD,EAAAA,GAASC,KAAKmD,WAC5BrD,gBAAiB,IAAGwD,EAAAA,EAAAA,IAAavD,EAAAA,GAASC,KAAKuD,UAAW,mBAE9D,WAAY,CACRE,QAAS,OACT3D,gBAAiB,IAAGwD,EAAAA,EAAAA,IAAavD,EAAAA,GAASC,KAAKuD,UAAW,mBAE9D,0CAA2C,CACvC5B,QAAS,KACTnC,OAAQ,QACRkD,MAAO,QACPgB,WAAY,SACZC,cAAe,WACf/D,QAAS,eACTgE,gBAAiB,OAAOC,KACxBC,eAAgB,UAChBC,iBAAkB,aAEtB,wEAAyE,CACrEpC,QAAS,KACTnC,OAAQ,QACRkD,MAAO,QACPgB,WAAY,SACZC,cAAe,WACf/D,QAAS,eACTgE,gBAAiB,OAAOC,KACxBC,eAAgB,UAChBC,iBAAkB,cAG1B,UAAW,CACPhB,SAAU,SACVJ,MAAO5C,EAAAA,GAAS6C,KAAKC,UACrBmB,UAAW,UACXC,OAAQ,cACR,CAAC,sBAAsBxE,EAAAA,EAAYyE,OAAQ,CACvCnB,SAAU,UAEd,CAAC,sBAAsBtD,EAAAA,EAAY0E,OAAQ,CACvCpB,SAAU,UAEd,CAAC,sBAAsBtD,EAAAA,EAAYC,OAAQ,CACvCqD,SAAU,WAGlB,OAAQ,CACJkB,OAAQ,gBACR,eAAgB,CACZtB,MAAO5C,EAAAA,GAAS6C,KAAKwB,eAEzB,eAAgB,CACZ3B,aAAc,IAGtB,OAAQ,CACJwB,OAAQ,gBACR,eAAgB,CACZxB,aAAc,IAGtB,OAAQ,IACD4B,EAAAA,EAAiBC,MACpB3B,MAAO,UACPS,UAAW,aACX,uBAAwB,CACpBX,aAAc,OAElB,UAAW,CACP8B,UAAW,MACX9B,aAAc,IAGtB,QAAS,IACF4B,EAAAA,EAAiBC,MACpBE,WAAY,WACZ1E,gBAAiBC,EAAAA,GAASC,KAAKC,MAC/BwE,WAAY,gDACZ9B,MAAO5C,EAAAA,GAAS6C,KAAKC,WAEzB,SAAU,IACHwB,EAAAA,EAAiBC,MACpBjB,QAAS,OACTV,MAAO5C,EAAAA,GAAS6C,KAAKC,UACrBO,UAAW,aACXqB,WAAY,gFAEhB,cAAe,IACRJ,EAAAA,EAAiBC,MACpB3B,MAAO5C,EAAAA,GAAS6C,KAAKC,UACrB6B,OAAQ,aAAaC,EAAAA,GAAO3E,KAAK4E,QAAQC,OACzCC,eAAgB,YAEpB,UAAW,CACPlF,QAAS,QACTqE,OAAQ,OACR,OAAQ,CACJZ,QAAS,YAGjB,QAAS,CACLX,MAAO,OACPqC,SAAU,OACVvF,OAAQ,QAEZ,WAAY,CACRI,QAAS,QACT8C,MAAO,OACPuB,OAAQ,EACRc,SAAU,OACVC,SAAU,YAEd,iBAAkB,CACdf,OAAQ,OACRvB,MAAO,OACPuC,MAAO,OACP,gBAAiB,CACbC,cAAe,sBAIvB,iBAAkB,CACdjB,OAAQ,mBACRkB,UAAW,yBACX,MAAO,CACH9B,QAAS,GAEb,8BAA+B,CAC3B1B,QAAS,OAAOyD,KAChBJ,SAAU,WACVK,KAAM,EACNC,OAAQ,GAEZ,oCAAqC,CACjC3D,QAAS,OAAOyD,KAChBJ,SAAU,WACVK,KAAM,EACNC,OAAQ,GAEZ,oCAAqC,CACjC3D,QAAS,OAAOyD,KAChBJ,SAAU,WACVK,KAAM,EACNC,OAAQ,GAEZ,qCAAsC,CAClC3D,QAAS,gFACTqD,SAAU,WACVK,KAAM,EACNE,MAAO,EACPD,OAAQ,SACRE,IAAK,GAET,qCAAsC,CAClC7D,QAAS,gFACTqD,SAAU,WACVK,KAAM,EACNE,MAAO,IAGf,kCAAmC,CAC/BE,MAAO,OACPxB,OAAQ,oBAEZ,oCAAqC,CACjCrE,QAAS,QACTqE,OAAQ,aAEZ,mCAAoC,CAChCwB,MAAO,QACPxB,OAAQ,oBAEZ,OAAQ,IACDI,EAAAA,EAAiBqB,QACpBjD,aAAc,SAElB,OAAQ,IACD4B,EAAAA,EAAiBsB,QACpBlD,aAAc,SACd8B,UAAW,SAEf,OAAQ,IACDF,EAAAA,EAAiBuB,QACpBjD,MAAO5C,EAAAA,GAAS6C,KAAKwB,cACrB3B,aAAc,SACd8B,UAAW,OAEf,WAAY,IACLF,EAAAA,EAAiBC,MACpB3B,MAAO5C,EAAAA,GAAS6C,KAAKC,WAEzB,OAAQ,IACDwB,EAAAA,EAAiBwB,MACpBlD,MAAO5C,EAAAA,GAAS6C,KAAKC,WAEzB,MAAO,IACAwB,EAAAA,EAAiBC,MACpB3B,MAAO5C,EAAAA,GAAS6C,KAAKC,UACrBO,UAAW,e,2HCvNvB,SAAS0C,EAAoBC,GAGzB,GAAIA,EAAIC,OAFoB,IAGxB,OAAOD,EACJ,CACH,MAAME,EAAoBF,EAAIG,UAAU,EALhB,KAKwCC,YAAY,KAC5E,OAA2B,IAAvBF,EACOF,EAAIG,UAAU,EAPD,KASbH,EAAIG,UAAU,EAAGD,EAAoB,EAEpD,CACJ,CAgBA,SAASG,EAAsBjG,EAASkG,EAAaC,GACjD,OAAInG,EAAQoG,YAAYF,IAAgBlG,EAAQoG,YAAYF,GAAa9F,SAC9D+F,EAAwBnG,EAAQoG,YAAYF,GAAa9F,UAEzD+F,EAAwBE,EAEvC,CAEA,SAASC,EAAqBC,EAAcvG,EAASkG,EAAaC,EAAyBK,GACvF,OAAID,GAAgBvG,EAAQyG,gBAAkBzG,EAAQyG,eAAeC,OAvBzE,SAAsBC,EAAMH,GACxB,MAAO,CACHI,MAAOJ,EACD,GAAGA,OAAuBG,EAAKF,eAAeC,OAAOG,OACrDF,EAAKF,eAAeC,OAAOG,KACjCC,YAAaH,EAAKF,eAAeC,OAAOK,eAClCpB,EAAoBgB,EAAKF,eAAeC,OAAOK,gBAC/C,GAAGJ,EAAKF,eAAeC,OAAOG,8CACpCG,UAAWL,EAAKF,eAAeC,OAAOM,UACtCC,cAAeN,EAAKF,eAAeC,OAAOQ,iBAC1CC,aAAcR,EAAKF,eAAeC,OAAOU,gBAEjD,CAYeC,CAAarH,EAASwG,GAEtB,CACHI,MAAO5G,EAAQoG,YAAYF,GAAaoB,UAClCtH,EAAQoG,YAAYF,GAAaoB,UACjCtH,EAAQoG,YAAYF,GAAaU,MACvCE,YAAa9G,EAAQoG,YAAYF,GAAaqB,gBACxCvH,EAAQoG,YAAYF,GAAaqB,gBACjCvH,EAAQoG,YAAYF,GAAaY,YACvC1G,SAAU6F,EAAsBjG,EAASkG,EAAaC,GACtDa,UAAWhH,EAAQoG,YAAYF,GAAac,UAC5CG,aAAcnH,EAAQoG,YAAYF,GAAakB,gBAC/CH,cAAejH,EAAQoG,YAAYF,GAAagB,iBAG5D,CAEO,SAASM,GAAyB,aACrCjB,GAAe,EAAK,QACpBkB,GAAU,EAAK,QACfzH,EAAO,YACPkG,EAAW,OACXwB,EAAM,kBACNlB,IAEA,MAAM,wBAAEL,IAA4BwB,EAAAA,EAAAA,KAC9BC,EAAMtB,EAAqBC,EAAcvG,EAASkG,EAAaC,EAAyBK,GAE9F,OACIqB,EAAAA,EAAAA,IAAAC,EAAAA,GAAA,CAAApH,SAAA,EACIH,EAAAA,EAAAA,GAACwH,EAAAA,EAAU,CAACH,IAAKA,EAAKH,QAASA,IAC9BC,GAASnH,EAAAA,EAAAA,GAACyH,EAAAA,EAAY,CAACN,OAAQA,IAAa,OAGzD,CAEAF,EAAyBS,UAAY,CACjC1B,aAAc2B,IAAAA,KACdT,QAASS,IAAAA,KACThC,YAAagC,IAAAA,OACblI,QAASkI,IAAAA,SAAmBC,QAAQC,WACpCV,OAAQQ,IAAAA,MAAgB,CACpBG,KAAMH,IAAAA,OACNI,KAAMJ,IAAAA,SAEV1B,kBAAmB0B,IAAAA,O,uMC/EvB,MAAM/I,EAAU,CACZoJ,UAAW,CACPzE,OAAQ,mBACRtB,MAAO5C,EAAAA,GAASC,KAAKmD,WACrBrD,gBAAiB,UACjB4E,OAAQ,aAAa3E,EAAAA,GAASC,KAAKmD,aACnCwF,aAAc,SACdC,UAAW,QACXvF,QAAS,0BACTL,WAAY,MACZD,SAAU,SACVL,MAAO,OACPI,WAAY,sDACZ,UAAW,CACPhD,iBAAiBwD,EAAAA,EAAAA,IAAavD,EAAAA,GAASC,KAAKuD,UAAW,KACvDP,WAAY,OAEhB,CAAC,sBAAsBvD,EAAAA,EAAYC,OAAQ,CACvCgD,MAAO,OACPK,SAAU,WAGlB8F,aAAc,CACVtE,UAAW,SAcZ,SAASuE,GAAY,MAAEC,EAAK,oBAAEC,EAAmB,YAAEC,GAAc,IACpE,MAAOC,IAAoB7I,EAAAA,EAAAA,IAAQ8I,EAAAA,KAC7B,4BAAEC,IAAgCC,EAAAA,EAAAA,KAClCC,GAAwBC,EAAAA,EAAAA,GAAeH,EAA6B,eACpEI,EAAiBT,EAAMU,QAAQC,IAAUA,EAAKC,SAEpD,OAAOH,EAAexD,QAClBgC,EAAAA,EAAAA,IAAAC,EAAAA,GAAA,CAAApH,SAAA,CACMoI,EAIE,MAHAvI,EAAAA,EAAAA,GAACkJ,EAAAA,EAAO,CAACC,QAAQ,KAAKvH,UAAU,KAAIzB,SAC/BmI,GAA4CM,EAAsBQ,YAG3EpJ,EAAAA,EAAAA,GAAC6B,EAAAA,GAAI,CAACR,WAAS,EAACpB,IAAKrB,EAAQuJ,aAAahI,SACrC2I,EAAeO,KAAKL,IACjBhJ,EAAAA,EAAAA,GAACsJ,EAAAA,EAAM,CAEH,aAAY,GAAGN,EAAK1C,QAAQsC,EAAsBW,MAClDC,MAAMC,EAAAA,EAAAA,IACF,IAAGC,EAAAA,EAAAA,IAA2ClB,EAAkBmB,EAAAA,GAAmBC,OAC/EZ,EAAKa,QAGbV,QAAQ,YACRlH,MAAM,UACNhC,IAAKrB,EAAQoJ,UACbpG,UAAU,IAAGzB,SAEZ6I,EAAK1C,MAZD0C,EAAK1C,aAiB1B,IACR,C,wICrEO,SAASwD,GAAsB,YAAEC,EAAW,UAAEC,IACjD,MAAOxB,IAAoB7I,EAAAA,EAAAA,IAAQ8I,EAAAA,IAEnC,OACIzI,EAAAA,EAAAA,GAACiK,EAAAA,EAAc,CAACC,gBAAiB,EAAE/J,SAC9B4J,EAAYV,KAAI,CAACc,EAAaC,KAC3B,MAAMC,EAAc,CAChBhE,MAAO8D,EAAY9D,MACnB0B,KAAMoC,EAAY5D,YAClB+D,MAAO,CACHjK,UAAW8J,EAAYI,aACvBC,WAAYL,EAAYM,mBACxBjK,SAAU2J,EAAYO,aACtB7J,UAAU,GAEd8F,iBAAkBwD,EAAYxD,kBAGlC,OACI3G,EAAAA,EAAAA,GAAC6B,EAAAA,GAAI,CAAC8I,MAAI,EAACC,GAAI,GAAI5L,GAAI,EAAGyE,GAAI,EAAEtD,UAC5BH,EAAAA,EAAAA,GAAC6K,EAAAA,EAAI,CACDC,KAAM,IACCC,EAAAA,EAAUC,iBACb/J,QAASoJ,GAEbb,KAAM,IAAGE,EAAAA,EAAAA,IAA2ClB,EAAkBwB,KAClEG,EAAYN,OAEhB,cAAa,GAAGG,QAAgBI,OATFD,EAAYN,KAW3C,KAK3B,C,0FC7CO,SAASoB,GAAS,YAAEC,EAAW,WAAEC,IAKpC,OAJmB,MAAfA,GAAwC,qBAAXC,SAC7BA,OAAOC,SAAS7B,KAAO0B,IAGpBlL,EAAAA,EAAAA,GAACsL,EAAAA,GAAQ,CAACC,GAAIL,EAAaM,SAAO,GAC7C,CAEAP,EAASvD,UAAY,CACjBwD,YAAavD,IAAAA,OAAiBE,WAC9BsD,WAAYxD,IAAAA,OAAiBE,W,4DCZ1B,MAAM4D,EAA2B,CACpCpK,UAAW,CACPkC,OAAQ,IACRZ,QAAS,OACT+I,UAAW,yCACXC,WAAY,sCACZ,CAAC,sBAAsB5M,EAAAA,EAAY6M,OAAQ,CACvCrI,OAAQ,iBACRZ,QAAS,oBAGjBkJ,cAAe,CACXtI,OAAQ,IACRZ,QAAS,OACT+I,UAAW,yCACXC,WAAY,UACZ,CAAC,sBAAsB5M,EAAAA,EAAYC,OAAQ,CACvC2D,QAAS,EACT+I,UAAW,SAGnBrF,MAAO,CACHtE,aAAc,OACdC,MAAO,OACP,CAAC,sBAAsBjD,EAAAA,EAAY6M,OAAQ,CACvCvJ,SAAU,WAGlByJ,gBAAiB,CACbxJ,WAAY,IACZP,aAAc,QAElBgK,WAAY,CACR1J,SAAU,SACVC,WAAY,IACZL,MAAO5C,EAAAA,GAASC,KAAKmD,WACrBV,aAAc,EACd,CAAC,sBAAsBhD,EAAAA,EAAYC,OAAQ,CACvCqD,SAAU,OACVN,aAAc,MAGtBd,QAAS,CACL4C,UAAW,SACX,CAAC,sBAAsB9E,EAAAA,EAAY6M,OAAQ,CACvC/H,UAAW,WAGnBmI,cAAe,CACXnI,UAAW,QACX,CAAC,sBAAsB9E,EAAAA,EAAY6M,OAAQ,CACvCvJ,SAAU,SACVC,WAAY,SAGpB2J,mBAAoB,CAChBC,SAAU,SACVC,eAAgB,gBAChB,CAAC,sBAAsBpN,EAAAA,EAAY6M,OAAQ,CACvCM,SAAU,SAGlBE,WAAY,CACR7I,OAAQ,SACRvB,MAAO,OACP,CAAC,sBAAsBjD,EAAAA,EAAYC,OAAQ,CACvCuE,OAAQ,WAGhB8I,cAAe,CACX9I,OAAQ,cACRvB,MAAO,OACP,CAAC,sBAAsBjD,EAAAA,EAAYC,OAAQ,CACvCuE,OAAQ,WAGhB+I,MAAO,CACHpN,QAAS,OACT,CAAC,sBAAsBH,EAAAA,EAAYC,OAAQ,CACvCE,QAAS,QACT2E,UAAW,OACX9B,aAAc,SAGtBwK,KAAM,CACF1I,UAAW,OACX,CAAC,sBAAsB9E,EAAAA,EAAYC,OAAQ,CACvCuE,OAAQ,aAGhBiJ,eAAgB,CACZ3I,UAAW,QAEf4I,kBAAmB,CACf,CAAC,sBAAsB1N,EAAAA,EAAY6M,OAAQ,CACvC/H,UAAW,SAGnB6I,mBAAoB,CAChB1J,WAAY,OACZ,CAAC,sBAAsBjE,EAAAA,EAAY6M,OAAQ,CACvCrI,OAAQ,gBAGhBoJ,SAAU,CACNtK,SAAU,UAEduK,aAAc,CACV7K,aAAc,QAElB8K,iBAAkB,CACd9K,aAAc,KAElB+K,kBAAmB,CACf5N,QAAS,QAEb6N,eAAgB,CACZpK,QAAS,eACTY,OAAQ,QAEZyJ,UAAW,CACPjK,QAAS,OACT,CAAC,sBAAsBhE,EAAAA,EAAYC,OAAQ,CACvCuE,OAAQ,oBAGhB0J,WAAY,CACR/N,QAAS,QAET,UAAW,CACP6D,QAAS,QAEb,WAAY,CACRA,QAAS,QAGb,0BAA2B,CACvB3D,gBAAiB6E,EAAAA,GAAO3E,KAAKmD,WAAWyK,UAE5C,0BAA2B,CACvB9N,gBAAiB6E,EAAAA,GAAO3E,KAAKmD,WAAWyK,UAE5C,2BAA4B,CACxB9N,gBAAiB6E,EAAAA,GAAO3E,KAAKmD,WAAWyK,WAGhDC,YAAa,CACT7I,SAAU,WACV8I,SAAU,SACVpL,MAAO,OACPqL,WAAY,SACZ9J,OAAQ,UAEZ+J,WAAY,CACRtL,MAAO,OACPuB,OAAQ,SACR,aAAc,CACVzE,OAAQ,OACRwF,SAAU,WACVtC,MAAO,OACP8C,IAAK,EACLH,KAAM,IAGd4I,iBAAkB,CACdjJ,SAAU,WACVQ,IAAK,EACLH,KAAM,EACNC,OAAQ,EACRC,MAAO,EACP7C,MAAO,OACPlD,OAAQ,Q,gGC1KT,SAAS2C,EAA+BR,EAAiBC,GAC5D,OAAOsM,EAA2BvM,EAASwM,EAAAA,GAAqBvM,EACpE,CAEO,SAASwM,EAA2BzM,EAAiBC,GACxD,OAAOsM,EAA2BvM,EAASC,EAAgBuM,EAAAA,GAC/D,CAEO,SAASD,EAA2BvM,EAAiB0M,EAAsBC,GAC9E,MAAMC,EAAiB5M,EACjB6M,EAAe,IAAIC,OAAOJ,EAAc,MAE9C,OAAOE,EAAerC,QAAQsC,EAAcF,EAChD,CAEO,SAASI,EAA2B/M,GACvC,MAAMgN,GAAM,IAAIC,WAAYC,gBAAgBlN,EAAS,aAC/CmN,EAASH,EAAII,iBAAiB,OACRC,MAAMC,KAAKH,GAAQrF,QAAQyF,IAASA,EAAIC,QAAQ,YAOxDC,SAASF,IACzB,MAAMG,EAAsBH,EAAII,aAAa,SACvCC,EAAsBL,EAAII,aAAa,SAE7CJ,EAAIM,gBAAgB,SACpBN,EAAIM,gBAAgB,SAEpB,MAAMC,EAASC,SAASC,cAAc,UAEtCF,EAAOG,aAAa,QAAS,SAASP,GAA4C,MAClFE,GAAuBE,EAAOG,aAAa,QAASL,GAEpD,MACMM,EADiD,MAA7BX,EAAIY,YAAYC,SACAb,EAAIY,WAAaZ,EAlB/D,IAAqBc,EAAgBC,EAAhBD,EAoBLH,EApBqBI,EAoBNR,EAnB3BO,EAAGF,YAAYI,aAAaD,EAASD,GACrCC,EAAQE,YAAYH,EAkBc,IAKtC,OAFgBrB,EAAIyB,WAAW,GAAGA,WAAW,GAEbC,SACpC,CAuBO,SAASC,EAAerO,EAAcsO,EAAiC3O,GAC1E,MAAM+M,GAAM,IAAIC,WAAYC,gBAAgB5M,EAAM,aACnC0M,EAAII,iBAAiB,OAE7BK,SAASF,IACZA,EAAIsB,KAAMC,EAAAA,EAAAA,IAAiB7O,EAAgB2O,EAAKrB,EAAIsB,KAAK,IAK7D,OAFgB,IAAIE,eAAgBC,kBAAkBhC,EAG1D,CAEO,SAASiC,EAAejP,GAC3B,MACMmN,GADM,IAAIF,WAAYC,gBAAgBlN,EAAS,aAClCoN,iBAAiB,OAIpC,OAFcC,MAAMC,KAAKH,GAAQ+B,MAAM3B,IAASA,EAAII,aAAa,SAElD,wCAA0C,IAC7D,CAEO,SAASwB,EAAqBnP,EAAiBoP,GAClD,MAAMpC,GAAM,IAAIC,WAAYC,gBAAgBlN,EAAS,aACrD,IAAIqP,EAAgBD,EAASE,aAC7B,MAAMC,EAAavC,EAAII,iBAAiB,kBAExC,GAA0B,IAAtBmC,EAAWlL,OACX,OAAO,KAGX,IAAK,MAAMmL,KAAUD,EAAY,CAC7B,MAAME,EAAQC,SAASF,EAAOG,QAAQpL,UAAU,IAMhD,GAJIkL,EAAQJ,IACRA,EAAgBI,GAGhBA,EAAQJ,EACR,MAAO,qGAGXA,EAAgBI,EAAQ,CAC5B,CAEA,OAAO,IACX,C,4DCpHO,MAAMpP,EAAgB,CACzBmP,OAAQ,CACJvR,QAAS,QACT,CAAC,sBAAsBH,EAAAA,EAAYC,OAAQ,CACvCE,QAAS,SAGjB2R,YAAa,CACT,CAAC,sBAAsB9R,EAAAA,EAAYC,OAAQ,CACvC6E,UAAW,IAGnBiN,WAAY,CACR,CAAC,sBAAsB/R,EAAAA,EAAY0E,OAAQ,CACvCI,UAAW,EACXwJ,WAAY,oBAGpB0D,qBAAsB,CAClB3R,gBAAiBC,EAAAA,GAASC,KAAKC,MAC/B+E,SAAU,WACV,WAAY,CACRrD,QAAS,KACTqD,SAAU,WACVxF,OAAQ,SACRkD,MAAO,OACP8C,IAAK,UACLH,KAAM,EACNvF,gBAAiBC,EAAAA,GAASC,KAAKC,MAC/ByR,QAAS,GAEb,CAAC,sBAAsBjS,EAAAA,EAAYC,OAAQ,CACvCI,gBAAiB,OACjB,WAAY,CACR6B,QAAS,UAIrBgQ,kBAAmB,CACf5M,SAAU,SACVd,OAAQ,OACR,6BAA8B,CAC1Bc,SAAU,0BAEd,CAAC,sBAAsBtF,EAAAA,EAAYC,OAAQ,CACvCqF,SAAU,sBAGlB6M,MAAO,CACHhS,QAAS,SAEbiS,iBAAkB,CACdtN,UAAW,SACX9B,aAAc,OACdsC,SAAU,OACV,CAAC,sBAAsBtF,EAAAA,EAAYC,OAAQ,CACvC6E,UAAW,QACX8H,WAAY,QACZD,UAAW,QACX1J,MAAO,SAGfoP,kBAAmB,CACfrP,aAAc,OACdsC,SAAU,QAEdgN,YAAa,CACThN,SAAU,QAEdiN,aAAc,CACVzN,UAAW,SACX9B,aAAc,OACd,CAAC,sBAAsBhD,EAAAA,EAAY0E,OAAQ,CACvCI,UAAW,QACX8H,WAAY,QACZD,UAAW,UAGnB6F,cAAe,CACXlN,SAAU,OACVd,OAAQ,SACR,CAAC,sBAAsBxE,EAAAA,EAAYC,OAAQ,CACvCgD,MAAO,OACPuB,OAAQ,MAGhBiO,oBAAqB,CACjBzP,aAAc,QAElB0P,oBAAqB,CACjBlO,OAAQ,eAEZiJ,eAAgB,CACZjJ,OAAQ,UAEZmO,QAAS,CACLpP,WAAY,MACZP,aAAc,QAElB4P,iBAAkB,CACdrN,SAAU,WACV0M,OAAQ,EACR,WAAY,CACR/P,QAAS,KACTqD,SAAU,WACVxF,OAAQ,SACRkD,MAAO,OACP4C,OAAQ,EACRD,KAAM,EACNvF,gBAAiBC,EAAAA,GAASC,KAAKC,MAC/ByR,QAAS,GAEb,CAAC,sBAAsBjS,EAAAA,EAAYC,OAAQ,CACvC,WAAY,CACRiC,QAAS,UAIrB2Q,WAAY,CACR,CAAC,sBAAsB7S,EAAAA,EAAY0E,OAAQ,CACvCyI,SAAU,S","sources":["components/ArticleHeader.tsx","components/Articles/RenderedCKEditorArticle.tsx","components/Articles/RenderedArticle.tsx","components/Articles/styleObjects/ckEditorHTMLStyles.ts","components/BlogSection/ArticleSectionPageHelmet.jsx","components/BlogSection/BlogComponents/Shared/RenderChips.tsx","components/BottomArticleCardList.tsx","components/Redirect.jsx","components/styleObjects/ArticleContentArea.ts","helpers/editorHelpers.ts","pages/public/styleObjects/articleStyles.ts"],"sourcesContent":["import React from 'react';\nimport { StandardImageBanner } from './SectionComponents';\nimport { breakpoints, v2Colors } from '@web-for-marketing/react-ui';\nimport { useAtom } from 'jotai';\nimport { isMobileAtom } from '@atoms/appSettings';\nimport { ArticleEntity } from '@models/article';\n\ninterface ArticleHeaderProps {\n article: ArticleEntity;\n}\n\nconst classes = {\n headerImageInnerContainer: {\n height: '32rem',\n [`@media (max-width: ${breakpoints.md})`]: {\n height: '20rem',\n },\n },\n bannerImage: {\n display: 'block',\n [`@media (max-width: ${breakpoints.md})`]: {\n display: 'none',\n },\n },\n noMediaBox: {\n height: '30rem',\n backgroundColor: v2Colors.core.cloud,\n display: 'block',\n [`@media (max-width: ${breakpoints.md})`]: {\n display: 'none',\n },\n },\n} as const;\n\nexport function ArticleHeader({ article }: ArticleHeaderProps): JSX.Element | null {\n const [isMobile] = useAtom(isMobileAtom);\n const hasImage = !!(article.imageUrl || article.mobileImageUrl);\n\n if (!hasImage || (article.hideMobileHeaderImage && isMobile)) {\n return null;\n }\n\n return (\n
\n \n
\n \n
\n );\n}\n","import React from 'react';\nimport { DangerouslySetInnerHTML } from '../SectionComponents/helpers/DangerouslySetInnerHTML';\nimport { tryDecodeURI } from '../../helpers/string';\nimport { replaceWithEditorSafeImageUrls } from '@helpers/editorHelpers';\nimport { ckEditorHTMLStyles as classes } from './styleObjects/ckEditorHTMLStyles';\n\ninterface RenderedCKEditorArticleProps {\n content: string;\n mediaUrlPrefix: string;\n}\n\nexport default function RenderedCKEditorArticle({\n content,\n mediaUrlPrefix,\n}: RenderedCKEditorArticleProps): JSX.Element {\n return (\n \n );\n}\n","import React from 'react';\nimport { LazyLoadContainer } from '@web-for-marketing/react-ui';\nimport RenderedCKEditorArticle from './RenderedCKEditorArticle';\nimport { Grid } from '@mui/material';\n\ninterface RenderedArticleProps {\n content: string;\n mediaUrlPrefix: string;\n}\n\nexport function RenderedArticle({ content, mediaUrlPrefix }: RenderedArticleProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import { colors, getRgbaColor, breakpoints, v2Colors } from '@web-for-marketing/react-ui';\nimport { typographyStyles } from '@web-for-marketing/react-ui';\nimport externalLinkWithBg from '@images/Blog/ExternalLinkWithBackground.svg';\nimport openInNewTab from '@images/Blog/OpenInNewTab.svg';\n\nexport const ckEditorHTMLStyles = {\n container: {\n marginBottom: '4rem',\n width: '100%',\n },\n articleStyles: {\n color: v2Colors.text.secondary,\n '& a': {\n transition: '200ms background-color ease',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n lineHeight: 'inherit',\n textDecoration: 'underline',\n color: v2Colors.core.innovation,\n wordBreak: 'break-word',\n padding: '0.5rem 0.2rem',\n '&:hover': {\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.03)} !important`,\n },\n '&:focus': {\n outlineColor: v2Colors.core.innovation,\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.06)} !important`,\n },\n '&:active': {\n outline: 'none',\n backgroundColor: `${getRgbaColor(v2Colors.core.deepSpace, 0.05)} !important`,\n },\n '&[target=\"_blank\"]:not(figure *)::after': {\n content: '\"\"',\n height: '0.8em',\n width: '0.8em',\n marginLeft: '0.6rem',\n verticalAlign: 'baseline',\n display: 'inline-block',\n backgroundImage: `url(${openInNewTab})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n },\n '&:not([href*=\"www.geotab.com\"]):not([href^=\"/\"]):not(figure *)::after': {\n content: '\"\"',\n height: '0.8em',\n width: '0.8em',\n marginLeft: '0.6rem',\n verticalAlign: 'baseline',\n display: 'inline-block',\n backgroundImage: `url(${openInNewTab})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n },\n },\n '& quote': {\n fontSize: '3.2rem',\n color: v2Colors.text.secondary,\n fontStyle: 'oblique',\n margin: '0 1rem 2rem',\n [`@media (max-width: ${breakpoints.xl})`]: {\n fontSize: '2.8rem',\n },\n [`@media (max-width: ${breakpoints.lg})`]: {\n fontSize: '2.6rem',\n },\n [`@media (max-width: ${breakpoints.md})`]: {\n fontSize: '2.4rem',\n },\n },\n '& ul': {\n margin: '2rem 0 2.2rem',\n '& li::marker': {\n color: v2Colors.text.activePrimary,\n },\n '&:last-child': {\n marginBottom: 0,\n },\n },\n '& ol': {\n margin: '2rem 0 2.2rem',\n '&:last-child': {\n marginBottom: 0,\n },\n },\n '& li': {\n ...typographyStyles.body1,\n color: 'inherit',\n wordBreak: 'break-word',\n '&:not(:last-of-type)': {\n marginBottom: '1em',\n },\n '& ul,ol': {\n marginTop: '1em',\n marginBottom: 0,\n },\n },\n '& pre': {\n ...typographyStyles.body1,\n whiteSpace: 'pre-wrap',\n backgroundColor: v2Colors.core.cloud,\n fontFamily: '\"Inconsolata\", \"Menlo\", \"Consolas\", monospace',\n color: v2Colors.text.secondary,\n },\n '& code': {\n ...typographyStyles.body1,\n padding: '2rem',\n color: v2Colors.text.secondary,\n wordBreak: 'break-word',\n fontFamily: '\"source-code-pro\", \"Menlo\", \"Monaco\", \"Consolas\", \"Courier New\", \"monospace\"',\n },\n '& table, td': {\n ...typographyStyles.body1,\n color: v2Colors.text.secondary,\n border: `1px solid ${colors.core.mineral.main}`,\n borderCollapse: 'collapse',\n },\n '& table': {\n display: 'table',\n margin: 'auto',\n '& td': {\n padding: '0.72rem',\n },\n },\n '& img': {\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n },\n '& figure': {\n display: 'block',\n width: 'auto',\n margin: 0,\n maxWidth: '100%',\n position: 'relative',\n },\n '& figure.media': {\n margin: 'auto',\n width: '100%',\n clear: 'both',\n '& > div > div': {\n paddingBottom: '56.25% !important',\n },\n },\n\n '& figure.image': {\n margin: '2rem 2rem 2rem 0',\n boxSizing: 'content-box !important' as 'content-box',\n '& a': {\n padding: 0,\n },\n '& a[target=\"_blank\"]::after': {\n content: `url(${externalLinkWithBg})`,\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n '& a[target=\"_blank\"]:hover::after': {\n content: `url(${externalLinkWithBg})`,\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n '& a[target=\"_blank\"]:focus::after': {\n content: `url(${externalLinkWithBg})`,\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n '& a[target=\"_blank\"]:hover::before': {\n content: 'linear-gradient(140deg, rgba(0, 120, 211, 0) 0%, rgba(0, 120, 211, 0.3) 100%)',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: '0.5rem',\n top: 0,\n },\n '& a[target=\"_blank\"]:focus::before': {\n content: 'linear-gradient(140deg, rgba(0, 120, 211, 0) 0%, rgba(0, 120, 211, 0.5) 100%)',\n position: 'absolute',\n left: 0,\n right: 0,\n },\n },\n '& figure.image-style-align-left': {\n float: 'left',\n margin: '2rem 2rem 2rem 0',\n },\n '& figure.image-style-align-center': {\n display: 'block',\n margin: '2rem auto',\n },\n '& figure.image-style-align-right': {\n float: 'right',\n margin: '2rem 0 2rem 2rem',\n },\n '& h1': {\n ...typographyStyles.header1,\n marginBottom: '0.3em',\n },\n '& h2': {\n ...typographyStyles.header3,\n marginBottom: '1.6rem',\n marginTop: '0.8em',\n },\n '& h3': {\n ...typographyStyles.header4,\n color: v2Colors.text.activePrimary,\n marginBottom: '1.6rem',\n marginTop: '1em',\n },\n '& h4, h6': {\n ...typographyStyles.body1,\n color: v2Colors.text.secondary,\n },\n '& h5': {\n ...typographyStyles.body2,\n color: v2Colors.text.secondary,\n },\n '& p': {\n ...typographyStyles.body1,\n color: v2Colors.text.secondary,\n wordBreak: 'break-word',\n },\n },\n} as const;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useStaticValues } from '@stateManagement/StaticValuesContext';\nimport { PageHelmet } from '../../components/PageHelmet';\nimport { ScriptHelmet } from '@components/ScriptHelmet';\nimport geotabShare from '@images/geotabShareImage.jpg';\n\nfunction truncateDescription(bio) {\n const seoDescriptionLimit = 120;\n\n if (bio.length < seoDescriptionLimit) {\n return bio;\n } else {\n const lastSentenceIndex = bio.substring(0, seoDescriptionLimit).lastIndexOf('.');\n if (lastSentenceIndex === -1) {\n return bio.substring(0, seoDescriptionLimit);\n } else {\n return bio.substring(0, lastSentenceIndex + 1);\n }\n }\n}\n\nfunction getAuthorSeo(blog, authorTranslation) {\n return {\n title: authorTranslation\n ? `${authorTranslation} - ${blog.authorPageData.author.name}`\n : blog.authorPageData.author.name,\n description: blog.authorPageData.author.shortBiography\n ? truncateDescription(blog.authorPageData.author.shortBiography)\n : `${blog.authorPageData.author.name} have written blog articles for Geotab.`,\n canonical: blog.authorPageData.author.canonical,\n datePublished: blog.authorPageData.author.publishedDateUtc,\n dateModified: blog.authorPageData.author.modifiedDateUtc,\n };\n}\n\nfunction getArticleHeaderImage(article, articleType, prefixStringWithBaseUrl) {\n if (article.articleData[articleType] && article.articleData[articleType].imageUrl) {\n return prefixStringWithBaseUrl(article.articleData[articleType].imageUrl);\n } else {\n return prefixStringWithBaseUrl(geotabShare);\n }\n}\n\nfunction getArticleSectionSeo(isAuthorPage, article, articleType, prefixStringWithBaseUrl, authorTranslation) {\n if (isAuthorPage && article.authorPageData && article.authorPageData.author) {\n return getAuthorSeo(article, authorTranslation);\n } else {\n return {\n title: article.articleData[articleType].pageTitle\n ? article.articleData[articleType].pageTitle\n : article.articleData[articleType].title,\n description: article.articleData[articleType].metaDescription\n ? article.articleData[articleType].metaDescription\n : article.articleData[articleType].description,\n imageUrl: getArticleHeaderImage(article, articleType, prefixStringWithBaseUrl),\n canonical: article.articleData[articleType].canonical,\n dateModified: article.articleData[articleType].modifiedDateUtc,\n datePublished: article.articleData[articleType].publishedDateUtc,\n };\n }\n}\n\nexport function ArticleSectionPageHelmet({\n isAuthorPage = false,\n noIndex = false,\n article,\n articleType,\n script,\n authorTranslation,\n}) {\n const { prefixStringWithBaseUrl } = useStaticValues();\n const seo = getArticleSectionSeo(isAuthorPage, article, articleType, prefixStringWithBaseUrl, authorTranslation);\n\n return (\n <>\n \n {script ? : null}\n \n );\n}\n\nArticleSectionPageHelmet.propTypes = {\n isAuthorPage: PropTypes.bool,\n noIndex: PropTypes.bool,\n articleType: PropTypes.string,\n article: PropTypes.objectOf(Object).isRequired,\n script: PropTypes.shape({\n type: PropTypes.string,\n body: PropTypes.string,\n }),\n authorTranslation: PropTypes.string,\n};\n","import React from 'react';\nimport { Button, Grid } from '@mui/material';\nimport { ensureInternalURLTrailingSlash } from '@helpers/string';\nimport { useAtom } from 'jotai';\nimport { selectedLanguageAtom } from '@atoms/appSettings';\nimport { useTranslation } from '@stateManagement/TranslationContext';\nimport { getTranslation } from '@helpers/languageTranslations';\nimport { getLanguageRouteAndPrefixByCodeAndRouteKey } from '@helpers/languages';\nimport { languageRouteTypes } from '@helpers/languageRoutes';\nimport { v2Colors, getRgbaColor, breakpoints } from '@web-for-marketing/react-ui';\nimport { Heading } from '@web-for-marketing/react-ui';\n\nconst classes = {\n tagButton: {\n margin: '1rem 1rem 1rem 0',\n color: v2Colors.core.innovation,\n backgroundColor: '#ffffff',\n border: `1px solid ${v2Colors.core.innovation}`,\n borderRadius: '2.5rem',\n minHeight: 'unset',\n padding: '.5rem 2.5rem !important',\n fontWeight: '500',\n fontSize: '1.8rem',\n width: 'auto',\n transition: 'background-color 400ms ease, font-weight 400ms ease',\n '&:hover': {\n backgroundColor: getRgbaColor(v2Colors.core.deepSpace, 0.05),\n fontWeight: '700',\n },\n [`@media (max-width: ${breakpoints.md})`]: {\n width: 'auto',\n fontSize: '1.6rem',\n },\n },\n tagContainer: {\n marginTop: '1rem',\n },\n};\n\nexport interface RenderChipsProps {\n chips: {\n name: string;\n slug: string;\n hidden: boolean;\n }[];\n hideHeading?: boolean;\n overrideHeadingText?: string;\n}\n\nexport function RenderChips({ chips, overrideHeadingText, hideHeading = false }: RenderChipsProps): JSX.Element | null {\n const [selectedLanguage] = useAtom(selectedLanguageAtom);\n const { selectedLanguageTranslation } = useTranslation();\n const translatedRenderChips = getTranslation(selectedLanguageTranslation, 'renderChips');\n const nonHiddenChips = chips.filter((chip) => !chip.hidden);\n\n return nonHiddenChips.length ? (\n <>\n {!hideHeading ? (\n \n {overrideHeadingText ? overrideHeadingText : translatedRenderChips.postTags}\n \n ) : null}\n \n {nonHiddenChips.map((chip) => (\n \n {chip.name}\n \n ))}\n \n \n ) : null;\n}\n","import React from 'react';\nimport { ChildContainer } from './GeotabGridComponents';\nimport { Card } from './Cards/Card';\nimport { cardTypes } from '../helpers/ObjectTypeModels/Card';\nimport { getLanguageRouteAndPrefixByCodeAndRouteKey } from '@helpers/languages';\nimport { useAtom } from 'jotai';\nimport { selectedLanguageAtom } from '@atoms/appSettings';\nimport { ArticleEntity } from '@models/article';\nimport { Grid } from '@mui/material';\n\ninterface BottomArticleCardListProps {\n articleList: ArticleEntity[];\n routeType: 'blogPostUrl' | 'pressReleaseUrl' | 'whitePaperUrl' | 'caseStudyUrl' | 'glossaryUrl';\n}\nexport function BottomArticleCardList({ articleList, routeType }: BottomArticleCardListProps): JSX.Element {\n const [selectedLanguage] = useAtom(selectedLanguageAtom);\n\n return (\n \n {articleList.map((articleCard, index) => {\n const cardContent = {\n title: articleCard.title,\n body: articleCard.description,\n image: {\n imagePath: articleCard.cardImageUrl,\n mobilePath: articleCard.mobileCardImageUrl,\n imageAlt: articleCard.cardImageAlt,\n lazyLoad: true,\n },\n publishedDateUtc: articleCard.publishedDateUtc,\n };\n\n return (\n \n \n \n );\n })}\n \n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Navigate } from 'react-router-dom';\n\nexport function Redirect({ redirectUrl, statusCode }) {\n if (statusCode === 200 && typeof window !== 'undefined') {\n window.location.href = redirectUrl;\n }\n\n return ;\n}\n\nRedirect.propTypes = {\n redirectUrl: PropTypes.string.isRequired,\n statusCode: PropTypes.number.isRequired,\n};\n","import { colors, breakpoints, v2Colors } from '@web-for-marketing/react-ui';\n\nexport const articleContentAreaStyles = {\n container: {\n margin: '0',\n padding: '5rem',\n boxShadow: '0px 15px 15px rgba(102, 120, 140, .41)',\n background: '#FFFFFF 0% 0% no-repeat padding-box',\n [`@media (max-width: ${breakpoints.sm})`]: {\n margin: '0 -9.6vw -3rem',\n padding: '3rem 9.6vw 4rem',\n },\n },\n mainContainer: {\n margin: '0',\n padding: '5rem',\n boxShadow: '0 1.5rem 1.5rem rgb(102 120 140 / 40%)',\n background: '#FFFFFF',\n [`@media (max-width: ${breakpoints.md})`]: {\n padding: 0,\n boxShadow: 'none',\n },\n },\n title: {\n marginBottom: '1rem',\n width: '100%',\n [`@media (max-width: ${breakpoints.sm})`]: {\n fontSize: '3.6rem',\n },\n },\n blogDescription: {\n fontWeight: 400,\n marginBottom: '3rem',\n },\n subHeading: {\n fontSize: '3.2rem',\n fontWeight: 400,\n color: v2Colors.core.innovation,\n marginBottom: 0,\n [`@media (max-width: ${breakpoints.md})`]: {\n fontSize: '2rem',\n marginBottom: '0',\n },\n },\n content: {\n marginTop: '2.5rem',\n [`@media (max-width: ${breakpoints.sm})`]: {\n marginTop: '1.5rem',\n },\n },\n publishedDate: {\n marginTop: '0.6em',\n [`@media (max-width: ${breakpoints.sm})`]: {\n fontSize: '1.8rem',\n fontWeight: 'bold',\n },\n },\n publishedContainer: {\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n [`@media (max-width: ${breakpoints.sm})`]: {\n flexWrap: 'wrap',\n },\n },\n dividerTop: {\n margin: '3rem 0',\n width: '100%',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '2rem 0',\n },\n },\n dividerBottom: {\n margin: '5rem 0 6rem',\n width: '100%',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '4rem 0',\n },\n },\n media: {\n display: 'none',\n [`@media (max-width: ${breakpoints.md})`]: {\n display: 'block',\n marginTop: '2rem',\n marginBottom: '2rem',\n },\n },\n tags: {\n marginTop: '2rem',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '3rem 0 0',\n },\n },\n downloadButton: {\n marginTop: '4rem',\n },\n downloadContainer: {\n [`@media (max-width: ${breakpoints.sm})`]: {\n marginTop: '1rem',\n },\n },\n downloadBtnWrapper: {\n marginLeft: 'auto',\n [`@media (max-width: ${breakpoints.sm})`]: {\n margin: '1rem auto 0',\n },\n },\n bodyText: {\n fontSize: '1.6rem',\n },\n bodySubtitle: {\n marginBottom: '1rem',\n },\n displayContainer: {\n marginBottom: '0',\n },\n shareAndLikeIcons: {\n display: 'flex',\n },\n roundShareIcon: {\n padding: '0 !important',\n margin: '12px',\n },\n fixMargin: {\n outline: 'none',\n [`@media (max-width: ${breakpoints.md})`]: {\n margin: '2.5rem 0 1rem 0',\n },\n },\n authorLink: {\n display: 'block',\n\n '&:focus': {\n outline: 'none',\n },\n '&:active': {\n outline: 'none',\n },\n\n '&:focus div:first-child': {\n backgroundColor: colors.core.innovation.lightest,\n },\n '&:hover div:first-child': {\n backgroundColor: colors.core.innovation.lightest,\n },\n '&:active div:first-child': {\n backgroundColor: colors.core.innovation.lightest,\n },\n },\n iframeMedia: {\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n paddingTop: '56.25%',\n margin: '2rem 0',\n },\n videoMedia: {\n width: '100%',\n margin: '2rem 0',\n '& > iframe': {\n height: '100%',\n position: 'absolute',\n width: '100%',\n top: 0,\n left: 0,\n },\n },\n responsiveIframe: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: '100%',\n height: '100%',\n },\n} as const;\n","import { ValidatorMessage } from '@web-for-marketing/react-ui';\nimport { mediaUrlPrefixToken, resolveImagePath } from './gallery';\n\nexport function replaceWithEditorSafeImageUrls(content: string, mediaUrlPrefix: string): string {\n return replaceStringInImageSource(content, mediaUrlPrefixToken, mediaUrlPrefix);\n}\n\nexport function replaceWithDbSafeImageUrls(content: string, mediaUrlPrefix: string): string {\n return replaceStringInImageSource(content, mediaUrlPrefix, mediaUrlPrefixToken);\n}\n\nexport function replaceStringInImageSource(content: string, lookupString: string, replacementString: string): string {\n const updatedContent = content;\n const replaceRegex = new RegExp(lookupString, 'gi');\n\n return updatedContent.replace(replaceRegex, replacementString);\n}\n\nexport function wrapImageContentWithFigure(content: string): string {\n const doc = new DOMParser().parseFromString(content, 'text/html');\n const images = doc.querySelectorAll('img');\n const imagesWithoutFigure = Array.from(images).filter((img) => !img.closest('figure'));\n\n function wrapElement(el: ParentNode, wrapper: HTMLElement): void {\n el.parentNode?.insertBefore(wrapper, el);\n wrapper.appendChild(el);\n }\n\n imagesWithoutFigure.forEach((img) => {\n const classAttributeValue = img.getAttribute('class');\n const styleAttributeValue = img.getAttribute('style');\n\n img.removeAttribute('class');\n img.removeAttribute('style');\n\n const figure = document.createElement('figure');\n\n figure.setAttribute('class', `image ${classAttributeValue ? classAttributeValue : ''}`);\n styleAttributeValue && figure.setAttribute('style', styleAttributeValue);\n\n const wrappedWithAnchor = img.parentNode?.nodeName === 'A';\n const elementToWrap = wrappedWithAnchor ? img.parentNode : img;\n\n wrapElement(elementToWrap, figure);\n });\n\n const bodyTag = doc.childNodes[0].childNodes[1];\n\n return (bodyTag as HTMLElement).innerHTML;\n}\n\nexport function removeImages(html: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n const images = doc.querySelectorAll('img');\n\n images.forEach((img) => {\n let prevElement = img as HTMLElement;\n let currentElement = img.parentElement;\n\n while (currentElement?.parentElement != null && currentElement.childElementCount == 1) {\n prevElement = currentElement;\n currentElement = currentElement.parentElement;\n }\n\n currentElement?.removeChild(prevElement);\n });\n\n const strHtml = new XMLSerializer().serializeToString(doc);\n\n return strHtml;\n}\n\nexport function updateImageSrc(html: string, urls: { [key: string]: string }, mediaUrlPrefix: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n const images = doc.querySelectorAll('img');\n\n images.forEach((img) => {\n img.src = resolveImagePath(mediaUrlPrefix, urls[img.src]);\n });\n\n const strHtml = new XMLSerializer().serializeToString(doc);\n\n return strHtml;\n}\n\nexport function validateImages(content: string): ValidatorMessage {\n const doc = new DOMParser().parseFromString(content, 'text/html');\n const images = doc.querySelectorAll('img');\n\n const noAlt = Array.from(images).some((img) => !img.getAttribute('alt'));\n\n return noAlt ? 'All images must have an alt attribute' : null;\n}\n\nexport function validateHeadersOrder(content: string, metadata: { headingLevel: number }): ValidatorMessage {\n const doc = new DOMParser().parseFromString(content, 'text/html');\n let expectedLevel = metadata.headingLevel;\n const allHeaders = doc.querySelectorAll('h1, h2, h3, h4');\n\n if (allHeaders.length === 0) {\n return null;\n }\n\n for (const header of allHeaders) {\n const level = parseInt(header.tagName.substring(1));\n\n if (level < expectedLevel) {\n expectedLevel = level;\n }\n\n if (level > expectedLevel) {\n return 'All headers must have the right order: h1, h2, h3, h4. Heading levels should only increase by one.';\n }\n\n expectedLevel = level + 1;\n }\n\n return null;\n}\n","import { v2Colors, breakpoints } from '@web-for-marketing/react-ui';\n\nexport const articleStyles = {\n header: {\n display: 'block',\n [`@media (max-width: ${breakpoints.md})`]: {\n display: 'none',\n },\n },\n blogContent: {\n [`@media (max-width: ${breakpoints.md})`]: {\n marginTop: 0,\n },\n },\n blogExtras: {\n [`@media (max-width: ${breakpoints.lg})`]: {\n marginTop: 0,\n paddingTop: '4rem !important',\n },\n },\n relatedPostContainer: {\n backgroundColor: v2Colors.core.cloud,\n position: 'relative',\n '&:before': {\n content: '\"\"',\n position: 'absolute',\n height: '100rem',\n width: '100%',\n top: '-100rem',\n left: 0,\n backgroundColor: v2Colors.core.cloud,\n zIndex: -1,\n },\n [`@media (max-width: ${breakpoints.md})`]: {\n backgroundColor: 'none',\n '&:before': {\n content: 'none',\n },\n },\n },\n centeredContainer: {\n maxWidth: '1612px',\n margin: 'auto',\n '@media (max-width: 1950px)': {\n maxWidth: 'calc(79.8611vw + 48px)',\n },\n [`@media (max-width: ${breakpoints.md})`]: {\n maxWidth: 'calc(77vw + 48px)',\n },\n },\n block: {\n display: 'block',\n },\n pressReleaseCard: {\n marginTop: '-20rem',\n marginBottom: '3rem',\n maxWidth: '100%',\n [`@media (max-width: ${breakpoints.md})`]: {\n marginTop: 'unset',\n background: 'unset',\n boxShadow: 'unset',\n width: '100%',\n },\n },\n noHeaderMediaCard: {\n marginBottom: '3rem',\n maxWidth: '100%',\n },\n relatedPost: {\n maxWidth: '100%',\n },\n blogSideArea: {\n marginTop: '-20rem',\n marginBottom: '3rem',\n [`@media (max-width: ${breakpoints.lg})`]: {\n marginTop: 'unset',\n background: 'unset',\n boxShadow: 'unset',\n },\n },\n clientProfile: {\n maxWidth: '100%',\n margin: '8rem 0',\n [`@media (max-width: ${breakpoints.md})`]: {\n width: '100%',\n margin: '0',\n },\n },\n clientProfileHeader: {\n marginBottom: '3rem',\n },\n recentNewsContainer: {\n margin: '0 24px 80px',\n },\n downloadButton: {\n margin: '3rem 0',\n },\n heading: {\n fontWeight: '500',\n marginBottom: '2rem',\n },\n headerBackground: {\n position: 'relative',\n zIndex: 1,\n '&:before': {\n content: '\"\"',\n position: 'absolute',\n height: '1500px',\n width: '100%',\n bottom: 0,\n left: 0,\n backgroundColor: v2Colors.core.cloud,\n zIndex: -1,\n },\n [`@media (max-width: ${breakpoints.md})`]: {\n '&:before': {\n content: 'none',\n },\n },\n },\n mobileWrap: {\n [`@media (max-width: ${breakpoints.lg})`]: {\n flexWrap: 'wrap',\n },\n },\n} as const;\n"],"names":["classes","headerImageInnerContainer","height","breakpoints","md","bannerImage","display","noMediaBox","backgroundColor","v2Colors","core","cloud","ArticleHeader","article","isMobile","useAtom","isMobileAtom","imageUrl","mobileImageUrl","hideMobileHeaderImage","_jsx","css","undefined","children","StandardImageBanner","imagePath","mobileImagePath","alt","imageAlt","mobileAlt","mobileHeaderAlt","disableGradient","bannerOnTop","lazyLoad","customProps","noBottomPadding","RenderedCKEditorArticle","content","mediaUrlPrefix","DangerouslySetInnerHTML","parseLinks","container","articleStyles","html","tryDecodeURI","replaceWithEditorSafeImageUrls","RenderedArticle","LazyLoadContainer","component","Grid","ckEditorHTMLStyles","marginBottom","width","color","text","secondary","transition","fontSize","fontWeight","lineHeight","textDecoration","innovation","wordBreak","padding","getRgbaColor","deepSpace","outlineColor","outline","marginLeft","verticalAlign","backgroundImage","openInNewTab","backgroundSize","backgroundRepeat","fontStyle","margin","xl","lg","activePrimary","typographyStyles","body1","marginTop","whiteSpace","fontFamily","border","colors","mineral","main","borderCollapse","maxWidth","position","clear","paddingBottom","boxSizing","externalLinkWithBg","left","bottom","right","top","float","header1","header3","header4","body2","truncateDescription","bio","length","lastSentenceIndex","substring","lastIndexOf","getArticleHeaderImage","articleType","prefixStringWithBaseUrl","articleData","geotabShare","getArticleSectionSeo","isAuthorPage","authorTranslation","authorPageData","author","blog","title","name","description","shortBiography","canonical","datePublished","publishedDateUtc","dateModified","modifiedDateUtc","getAuthorSeo","pageTitle","metaDescription","ArticleSectionPageHelmet","noIndex","script","useStaticValues","seo","_jsxs","_Fragment","PageHelmet","ScriptHelmet","propTypes","PropTypes","Object","isRequired","type","body","tagButton","borderRadius","minHeight","tagContainer","RenderChips","chips","overrideHeadingText","hideHeading","selectedLanguage","selectedLanguageAtom","selectedLanguageTranslation","useTranslation","translatedRenderChips","getTranslation","nonHiddenChips","filter","chip","hidden","Heading","variant","postTags","map","Button","tag","href","ensureInternalURLTrailingSlash","getLanguageRouteAndPrefixByCodeAndRouteKey","languageRouteTypes","TAG","slug","BottomArticleCardList","articleList","routeType","ChildContainer","breakSpaceValue","articleCard","index","cardContent","image","cardImageUrl","mobilePath","mobileCardImageUrl","cardImageAlt","item","xs","Card","card","cardTypes","BLOG_FOUR_COLUMN","Redirect","redirectUrl","statusCode","window","location","Navigate","to","replace","articleContentAreaStyles","boxShadow","background","sm","mainContainer","blogDescription","subHeading","publishedDate","publishedContainer","flexWrap","justifyContent","dividerTop","dividerBottom","media","tags","downloadButton","downloadContainer","downloadBtnWrapper","bodyText","bodySubtitle","displayContainer","shareAndLikeIcons","roundShareIcon","fixMargin","authorLink","lightest","iframeMedia","overflow","paddingTop","videoMedia","responsiveIframe","replaceStringInImageSource","mediaUrlPrefixToken","replaceWithDbSafeImageUrls","lookupString","replacementString","updatedContent","replaceRegex","RegExp","wrapImageContentWithFigure","doc","DOMParser","parseFromString","images","querySelectorAll","Array","from","img","closest","forEach","classAttributeValue","getAttribute","styleAttributeValue","removeAttribute","figure","document","createElement","setAttribute","elementToWrap","parentNode","nodeName","el","wrapper","insertBefore","appendChild","childNodes","innerHTML","updateImageSrc","urls","src","resolveImagePath","XMLSerializer","serializeToString","validateImages","some","validateHeadersOrder","metadata","expectedLevel","headingLevel","allHeaders","header","level","parseInt","tagName","blogContent","blogExtras","relatedPostContainer","zIndex","centeredContainer","block","pressReleaseCard","noHeaderMediaCard","relatedPost","blogSideArea","clientProfile","clientProfileHeader","recentNewsContainer","heading","headerBackground","mobileWrap"],"sourceRoot":""}