{"version":3,"file":"newsAndStories.0762b8fcdb5d6ea68677.chunk.js","mappings":";2UAOC,WACA,aAEA,IAAIA,EAAS,CAAC,EAAEC,eAGhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIG,EAAMF,UAAUD,GACpB,GAAKG,EAAL,CAEA,IAAIC,EAAU,EAAOD,GAErB,GAAgB,WAAZC,GAAoC,WAAZA,EAC3BL,EAAQM,KAAKF,QACP,GAAIG,MAAMC,QAAQJ,IACxB,GAAIA,EAAID,OAAQ,CACf,IAAIM,EAAQV,EAAWW,MAAM,KAAMN,GAC/BK,GACHT,EAAQM,KAAKG,EAEf,OACM,GAAgB,WAAZJ,EAAsB,CAChC,GAAID,EAAIO,WAAaC,OAAOC,UAAUF,WAAaP,EAAIO,SAASA,WAAWG,SAAS,iBAAkB,CACrGd,EAAQM,KAAKF,EAAIO,YACjB,QACD,CAEA,IAAK,IAAII,KAAOX,EACXP,EAAOmB,KAAKZ,EAAKW,IAAQX,EAAIW,IAChCf,EAAQM,KAAKS,EAGhB,CAxBkB,CAyBnB,CAEA,OAAOf,EAAQiB,KAAK,IACrB,CAEqCC,EAAOC,SAC3CpB,EAAWqB,QAAUrB,EACrBmB,EAAOC,QAAUpB,GAC+C,WAAtB,EAAOsB,EAAAA,OAA2BA,EAAAA,UAI3E,KAFwB,EAAF,WACtB,OAAOtB,CACP,UAFoB,OAEpB,aAEDuB,OAAOvB,WAAaA,CAErB,CApDA,oFCLM,MAAMwB,EAAU,IACrB,uBACEC,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,OAAO,UACPC,YAAY,IACZC,cAAc,QACdC,eAAe,SAEf,0BAAQC,GAAG,KAAKC,GAAG,IAAIC,EAAE,MACzB,wBAAMC,EAAE,qVCRL,MAAMC,EAAgB,EAAGC,OAAMC,eAElC,qBAAGA,UAAWA,EAAS,cAAc,QAClCD,GCRME,EAAW,IACtB,uBAAKhB,MAAM,6BAA4B,oBAAmB,gBAAgBE,OAAO,KAAKC,QAAQ,YAAYF,MAAM,MAC9G,wBAAMG,KAAK,OAAOF,OAAO,KAAKD,MAAM,OACpC,wBAAMW,EAAE,+KCHCK,EAAU,IACrB,uBAAKjB,MAAM,6BAA6BkB,EAAE,MAAMC,EAAE,MAAMlB,MAAM,KAAKC,OAAO,KAAKC,QAAQ,aACrF,wBAAMS,EAAE,qSCFCQ,EAAe,IAC1B,uBAAKnB,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOJ,MAAM,8BAChE,qBAAGqB,GAAG,iBACJ,wBAAMA,GAAG,SAAST,EAAE,+FAA+FP,OAAO,QAAQC,YAAY,MAAMC,cAAc,QAAQC,eAAe,UACzL,wBAAMa,GAAG,WAAWT,EAAE,aAAaP,OAAO,QAAQC,YAAY,MAAMC,cAAc,QAAQC,eAAe,UACzG,wBAAMa,GAAG,WAAWT,EAAE,cAAcP,OAAO,QAAQC,YAAY,MAAMC,cAAc,QAAQC,eAAe,0BCLzG,MAAMc,EAAQ,EAAGjB,SAAS,UAAWkB,SAAS,KAEjD,uBACEvB,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLoB,MAAO,CACLC,aAAc,WACdC,gBAAiB,SACjBC,UAAW,UAAUJ,UAGvB,wBAAMX,EAAE,wBAAwBP,OAAQA,EAAQC,YAAY,OCdrDsB,EAAQ,IACnB,uBAAK3B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOJ,MAAM,8BAChE,wBACEY,EAAE,aACFP,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,UAEjB,wBACEI,EAAE,aACFP,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,WCdRqB,EAAS,IACpB,uBAAK7B,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,QACtF,wBAAMQ,EAAE,YAAYP,OAAO,UAAUC,YAAY,MAAMC,cAAc,QAAQC,eAAe,UAC5F,wBAAMI,EAAE,6PAA6PP,OAAO,UAAUC,YAAY,MAAMC,cAAc,QAAQC,eAAe,UAC7U,wBAAMI,EAAE,YAAYP,OAAO,UAAUC,YAAY,MAAMC,cAAc,QAAQC,eAAe,UAC5F,wBAAMI,EAAE,YAAYP,OAAO,UAAUC,YAAY,MAAMC,cAAc,QAAQC,eAAe,WCLnFsB,EAAW,IACtB,uBAAK7B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOJ,MAAM,8BAChE,wBACEY,EAAE,0NACFR,KAAK,YAEP,wBACEQ,EAAE,8NACFR,KAAK,aCRE2B,EAAW,IACtB,uBAAK9B,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOJ,MAAM,8BAChE,wBACEgC,SAAS,UACTC,SAAS,UACTrB,EAAE,mnCACFR,KAAK,iHCQJ,MAAM8B,EAAS,EACpBC,OACApB,YAAY,GACZqB,UAAU,SACVC,OACAC,OAAO,SACPC,YAAW,EACXC,QAAQ,UACRC,UAAS,EACTC,WACAC,UACGC,MAEH,MAAMC,EAAMR,EAAO,IAAM,SAEzB,OAAO,IAAAS,eACLD,EACA,CACET,UACArB,UACE,IAAW,WAAY,CACrB,QAAkB,OAATuB,EACT,WAAqB,UAATA,EACZ,YAAsB,WAATA,EACb,WAAqB,UAATA,EACZ,gBAAiBC,EACjB,UAAqB,SAAVC,EACX,aAAwB,YAAVA,EACd,aAAwB,YAAVA,EACd,SAAoB,QAAVA,EACV,cAAeC,IAEjB,IACA1B,EACFsB,UACY,MAARQ,GAAe,CAAEE,OAAQ,UAC7BJ,UACGC,GAEL,CAACT,EAAMO,GACR,mFC3CI,MAAMM,GAAQ,IAAAC,aACnB,EAEIN,OAAO,OACPO,QACAC,OACAC,cACAC,WACAtC,YAAY,GACZuC,eAAe,GACfC,WACGX,GAELY,IAGE,yBAAOzC,UAAW,WAAaA,GAC5BmC,GAAS,wBAAMnC,UAAU,iBAAiB,GAAGmC,KAASG,EAAW,IAAM,MACxE,yBACEG,IAAKA,EACLb,KAAMA,EACNQ,KAAMA,EACN9B,GAAI8B,EACJC,YAAaA,EACbrC,UAAU,gBACVuC,aAAcA,EACdC,MAAOA,KACHX,wFCrCP,MAAMa,EAAiB,IAE1B,uBAAK1C,UAAU,qBACb,uBAAKA,UAAU,wBAAwB2C,IAAI,yBAAyBC,IAAI,wGCOvE,MAAMC,EAAe,EAC1BT,OACAU,MACAC,kBACAC,yBACAC,WACAC,eACAC,UAGE,2BACE,sBAAI3E,KAAM,EAAG6C,QAAS2B,EAAwBhD,UAAW+C,EAAkB,GAAK,YAC7EG,MAECC,EAAKC,KAAI,CAACC,EAAMC,IAClB,sBAAI9E,IAAK8E,EAAOjC,QAAS,IAAM4B,EAASI,EAAKP,KAC3C,4BAAOO,EAAKjB,IACZ,qBAAGpC,UAAU,yBCnBVuD,EAAoB,EAC/BnB,OACAoB,YACAC,cACAN,OACAF,cAGE,2BACE,sBAAI5B,QAASoC,EAAajF,KAAM,GAC9B,4BACE,qBAAGwB,UAAU,oBACZwD,GAAa,YAGdL,EAAKC,KAAI,CAACC,EAAMC,IAClB,sBAAI9E,IAAK8E,EAAOjC,QAAS,IAAM4B,EAASI,IACrCA,EAAKjB,qBCCT,MAAMsB,EAAS,EACpBtB,OACAU,MACAa,YACAC,iBACAV,eACAH,kBACAT,YAAW,EACXuB,QACAV,OACAhB,QAAQ,GACRqB,gBAEA,MAAOM,EAAWC,IAAgB,IAAAC,WAAkB,IAC7CC,EAAkBC,IAAuB,IAAAF,UAAuB,OAChEG,EAAsBC,IAA2B,IAAAJ,UAAqB,MAEvEK,EAAU,KACdN,GAAa,GACbG,EAAoB,MACpBE,EAAwB,KAAK,EC/CT,EAACT,EAA0BU,KACjD,MAAOC,EAAOC,IAAY,IAAAP,UAAiBL,IAE3C,IAAAa,YAAU,KACJb,GAAaA,IAAcW,IAC7BD,IACAE,EAASZ,MAEV,CAACA,GAAW,ED0Cfc,CAASd,EAAWU,IAEpB,IAAAG,YAAU,KACRH,GAAS,GACR,CAAClB,IAEJ,MAAMuB,GAAY,IAAAC,QAAuB,OAIzC,EAAAC,EAAA,GAAgBF,GAHW,KACzBX,GAAa,EAAM,IA8BrB,OACE,uBAAKtB,IAAKiC,EAAW1E,UAAU,YAC5BmC,GACC,yBAAO0C,SAAS,QAAgB1C,IAC7BA,EACAG,GAAY,MAIjB,uBAAKtC,UAAU,YACb,uBAAKA,UAAU,mBAAkB,aAAY,QAAgBmC,GAAQd,QApCvD,KAClB0C,GAAcD,EAAU,GAoClB,4BAAOK,EAAuBA,EAAqB/B,GAAQyB,GAC3D,qBAAG7D,UAAU,qBAEd8D,GACC,uBAAK9D,UAAU,iBACb,0BACIiE,EAWA,gBAACV,EAAiB,CAChBnB,KAAMA,EACNe,KAAMc,EACNT,UAAWA,EACXC,YApCH,KACXS,EAAoB,KAAK,EAoCXjB,SAnDYI,IAC1BO,EAAeP,GACfe,EAAwBf,GACxBU,GAAa,GACbG,EAAoB,KAAK,IAgCb,gBAACrB,EAAY,CACXT,KAAMA,EACNU,IAAKA,EACLK,KAAMA,EACNF,SA5CQ6B,IACtBZ,EAAoBY,EAAS,EA4Cf/B,gBAAiBA,EACjBC,uBAnCe,KACzBD,IACFa,EAAe,MACfS,MAiCYnB,aAAcA,OAgB7B,uGEpHI,MAAM6B,EAAe,EAC1BvD,YAAW,EACXoC,iBACAT,OACAf,OACAD,QACAG,YAAW,EACXuB,YAEA,MAAOC,EAAWC,IAAgB,IAAAC,WAAS,GAErCU,GAAY,IAAAC,QAAO,OAIzB,EAAAC,EAAA,GAAgBF,GAHW,KACzBX,GAAa,EAAM,IAIrB,MAWMiB,GAAY,IAAAC,UAAQ,IACjB9B,EACHA,EAAKC,KAAI,CAACC,EAAM7E,IACd,sBAAIA,IAAKA,EAAK6C,QAAS,IARd,CAACgC,IAChBO,EAAeP,GACfU,GAAa,EAAM,EAMgBd,CAASI,IACnCjB,EAAOiB,EAAKjB,GAAQiB,KAGzB,IACH,CAACF,EAAMf,IAEV,OACE,uBAAKK,IAAKiC,EAAW1E,UAAWwB,EAAW,2BAA6B,mBACrEW,GACC,yBAAO0C,SAAS,QAAgB1C,IAC7BA,EACAG,GAAY,MAGjB,uBAAKtC,UAAU,WAAU,aAAY,QAAgBmC,IACnD,uBAAKnC,UAAU,0BAA0BqB,QA9B3B,KACbG,GACHuC,GAAcD,KA6BV,4BAAOD,GACP,qBAAG7D,UAAU,qBAEd8D,GACC,uBAAK9D,UAAU,wBACb,0BAAKgF,KAKd,sHCxEI,MAAME,EAAmBC,IAC9B,IAAKA,EAAK,MAAO,GAEjB,OADqBA,EAAIC,QAAQ,OAAQ,KAAKC,aAC3B,EAGRC,EAAiB,CAACH,EAAaI,KAC1C,IAAKJ,EAAK,MAAO,GACjB,IAAIK,EAAYL,EAAIM,UAAU,EAAGF,GAEjC,OADAC,GAAa,MACNA,CAAS,EAOLE,EAAoB,CAACP,KAAgBQ,KAChD,IAAIC,EAAqBT,EAIzB,OAHAQ,EAAKE,SAAQ,CAAChI,EAAKyF,KACjBsC,EAAqBA,EAAmBR,QAAQ,IAAI9B,KAAUzF,EAAI,IAE7D+H,CAAkB,mFCrBpB,MAAMhB,EAAkB,CAC7BnC,EACAqD,KAEO,IAAAtB,YAAU,KACf,MAAMuB,EAAeC,IACfvD,EAAIwD,UAAYxD,EAAIwD,QAAQC,SAASF,EAAEhE,SACzC8D,EAAQE,IAOZ,OAHAG,SAASC,iBAAiB,YAAaL,GACvCI,SAASC,iBAAiB,aAAcL,GAEjC,KACLI,SAASE,oBAAoB,YAAaN,GAC1CI,SAASE,oBAAoB,aAAcN,EAAY,CACxD,GACA,CAACtD,EAAKqD,yICNJ,MAAMQ,EAAU,EACrBC,QAAQ,OACRC,WACAC,QACAC,cAAa,EACbC,cACAC,gBAGE,uBACE5G,UAAW,IAAW,YAAa,gBAAiB,eAAgB,CAClE,YAAuB,WAAVuG,KAEf,sBAAIvG,UAAU,iBAAiBwG,GAC/B,uBAAKxG,UAAU,cACb,qBAAGA,UAAU,0BAA0ByG,IAExCC,GAAc,gBAACvF,EAAA,EAAM,CAACC,KAAMuF,EAAarF,KAAMsF,EAAYrF,KAAK,QAAQE,MAAM,yDC3B9E,MAAMoF,EAAkB,CAC7BvG,EACA6C,KAEA,IAAK,MAAM2D,KAAe3D,EACxB,GAAI2D,EAAYC,KAAOzG,EACrB,OAAOwG,GAMAE,EAAqB,CAChC1G,EACA6C,EACA8D,KAEA,IAAK,MAAM5D,KAAQF,EACjB,GAAIE,EAAK4D,GAAc,CACrB,MAAMH,EAAczD,EAAK4D,GAAaC,QAAQJ,GAAgBA,EAAYC,IAAMzG,IAAI6G,IAAI,GACxF,GAAIL,EACF,OAAOA,IAsBFM,EAA2BF,IAEtC,MAAM,aAAEG,KAAiBC,GAAoBJ,EAC7C,OAAO7I,OAAOkJ,OAAOD,GAAiBE,KAAKC,QAAQ,EChDxCC,EAAoC,CAACC,EAAQC,KACxD,MAAMC,GAAe,IAAAlD,SAAO,IAE5B,IAAAH,YAAU,KACHqD,EAAa5B,QACb4B,EAAa5B,SAAU,EADD0B,GACM,GAChCC,EAAK,ECwBGE,EAAuB,EAClCC,OACAC,aACAC,aAAa,GACbC,YAAY,GACZC,QAAQ,GACRC,aAAa,GACblB,SACAmB,WACAC,iBAAgB,EAChBC,qBAEA,MAAOlB,EAAcmB,IAAmB,IAAAxE,UAASkD,EAAOG,eACjDoB,EAAsBC,IAA2B,IAAA1E,UAASsE,IAC1DK,EAAiBC,IAAsB,IAAA5E,WAAS,GAEvD0D,GAAgB,KACdc,EAAgB,GAAG,GAClB,CAACR,IAEJ,MAAMa,EAAqB,CACzB,CAAEC,KAAMf,EAAKgB,SAAUhC,GAAI,UACxBoB,EAAM/E,KAAK4F,IAAS,CAAGF,KAAME,EAAK5K,WAAY2I,GAAIiC,EAAK5K,gBAGtD6K,EACJV,EAAe3G,MAAQiF,EAAgBK,EAAOpC,UAAUiC,GAAIkB,IAAaa,KACrEI,EACJX,EAAeY,UACfnC,EAAmBE,EAAOiC,UAAUpC,GAAIqB,EAAY,kBAAkBU,KAClEM,EACJb,EAAec,SAAWrC,EAAmBE,EAAOmC,SAAStC,GAAImB,EAAW,cAAcY,KACtFQ,EACJf,EAAeS,MAAQnC,EAAgBK,EAAO8B,MAAM5K,WAAYyK,IAAqBC,KAMvF,OACE,uBAAK9I,UAAU,2BACb,uBAAKA,UAAU,oCACb,gBAACiC,EAAAsH,EAAK,CACJ3H,KAAK,OACLY,MAAO6E,EACPjF,KAAK,oBACLC,YAAa0F,EAAKyB,SAClBnB,SAAWrC,IACTwC,EAAgBxC,EAAEhE,OAAOQ,OACzBoG,GAAmB,EAAK,EAE1Ba,UAAYzD,IACI,UAAVA,EAAExH,KACJ6J,EAAS,eAAgBhB,MAI/B,uBAAKrH,UAAU,oCACb,gBAACmB,EAAA,EAAM,CACLI,KAAK,QACLC,UAAWmH,EACXvH,KAAK,SACLK,MAAM,UACNzB,UAAU,yCACVqB,QAAS,KACPgH,EAAS,eAAgBhB,EAAa,IAG1C,qBAAGrH,UAAU,yCAAyCqB,QAjC7B,KAC/BqH,GAAyBD,EAAqB,GAiCrCA,EAAuBV,EAAK2B,oBAAsB3B,EAAK4B,mBAK7DlB,GACC,uBAAKzI,UAAU,oCACb,gBAAC+E,EAAA,EAAY,CACXlB,MAAOoF,GAAmBlB,EAAK6B,KAC/BzG,KAAM8E,EACN7F,KAAK,OACLwB,eAAiBP,IACC,QAAZA,EAAK0D,GAITsB,EAAS,WAAYhF,GAHnBgF,EAAS,gBAAYwB,EAGG,IAG9B,gBAACnG,EAAA,EAAM,CACLX,iBAAe,EACfG,aAAc6E,EAAK+B,cACnBnG,UAAWqE,EACXnE,MAAOqF,GAAmBnB,EAAKgC,SAC/BvG,UAAWuE,EAAKiC,KAChB7G,KAAMiF,EACNhG,KAAK,OACLU,IAAI,gBACJc,eAAiBP,IACfgF,EAAS,WAAYhF,EAAK,IAG9B,gBAACK,EAAA,EAAM,CACLX,iBAAe,EACfG,aAAc6E,EAAKkC,aACnBtG,UAAWqE,EACXnE,MAAOuF,GAAkBrB,EAAKmC,SAC9B1G,UAAWuE,EAAKiC,KAChB7G,KAAM+E,EACN9F,KAAK,OACLU,IAAI,YACJc,eAAiBP,IACfgF,EAAS,UAAWhF,EAAK,IAG7B,gBAAC0B,EAAA,EAAY,CACXlB,MAAOyF,GAAcvB,EAAKoC,KAC1BhH,KAAM0F,EACNzG,KAAK,OACLwB,eAAiBP,IACC,QAAZA,EAAK0D,GACPsB,EAAS,YAAQwB,GAEjBxB,EAAS,OAAQhF,EAAK0D,QAOnC,0BCtJH,MAAMqD,EAAUC,EAAA,mBACI,CAChBC,YAAa,CAAC,UAEfC,gBAAgB,CACfC,UAAYC,IAAU,CACpBC,4BAA6BD,EAAME,MAAgC,CACjEA,MAAO,KAAM,CACXC,IAAKJ,EAAA,2BACLK,OAAQ,CAAEC,KAAM/L,OAAO+L,KAAMC,OAAQhM,OAAOgM,UAE9CC,kBAAoBC,IACX,IACFA,EACHC,YAAaD,EAASE,YACtBC,KAAMH,EAASG,KACfvI,aAAcxE,OAAOgN,QAAQ,CAC3BC,IAAKL,EAASG,KAAKG,WAChBN,EAASO,WACXpI,KAAI,EAAE5E,EAAKgE,MACL,CACLsG,KAAMtG,GAAOpE,WACb2I,GAAIvI,MAGRiN,UAAWR,EAASS,aAI1BC,oBAAqBlB,EAAME,MAA2C,CACpEA,MAAO,EAAGiB,cAAa1E,MAAa,CAClC0D,IAAKJ,EAAA,aACLK,OAAQ,CACNC,KAAM/L,OAAO+L,KACbC,OAAQhM,OAAOgM,OACfa,SAA0B,IAAhB1E,EAAO2E,KAAa,GAAKD,KAChC1E,KAGP8D,kBAAoBC,IACX,CACLa,OAAQb,EAASa,OACjBC,YAAad,EAASe,iBAAiBpO,OAASqN,EAASgB,aACzDC,MAAOjB,EAASe,iBAChBG,WAAYlB,EAASe,iBAAiBpO,OACtCqO,aAAchB,EAASgB,aACvBG,WAAYnB,EAASmB,YAAc,GACnCC,UAAWpB,EAASoB,WAAa,GACjClC,KAAMc,EAASd,OAGnBmC,mBAAoB,EAAGC,kBACdA,EAETC,MAAO,CAACvG,EAASwG,EAAUC,KAIzB,IAF0B,IAAxBzG,EAAQ8F,aAAmD,IAA1BU,EAASP,MAAMtO,OAGhD,MAAO,CACLmO,aAAa,EACbG,MAAO,GACPC,WAAY,EACZF,aAAc,GAIlB,GAAsB,IAAlBS,EAAK7O,IAAIgO,KACX,OAAOY,EAGT,MAAME,EAAgBF,EAASP,MAAMhF,QAAQ7D,IHNZ,CAACA,IACjB,IAAlBA,EAAKuJ,SGKmDC,CAA4BxJ,KAC7EyJ,EAAa7G,EAAQkG,WAAaQ,EAAc/O,OAEtD,MAAO,CACLmO,YAAae,EAAaL,EAASR,aACnCH,OAAQW,EAASX,OACjBI,MAAO,IAAIjG,EAAQiG,SAAUS,GAC7BR,WAAYW,EAAaL,EAASR,aAAeQ,EAASR,aAAea,EACzEb,aAAcQ,EAASR,aACvBG,WAAYK,EAASL,YAAc,GACnCC,UAAWI,EAASJ,WAAa,GACjClC,KAAMsC,EAAStC,KAChB,MAIP4C,kBAAkB,KAGT,oCAAEC,EAAmC,gCAAEC,GAAoC7C,ECpF3E8C,EAAY,EACvBC,MACAC,QACAC,WACAC,QACAC,WACAC,QACAtC,cACAuC,cACAC,gBAAgB,UAcd,gBAAC,WAAc,CAAClP,IAAK2O,GACnB,uBAAKnN,UAAU,wBACb,uBACEA,UAAW,IAAW,aAAc,CAClC,cAAiC,UAAlB0N,EACf,YAA+B,QAAlBA,KAGf,uBAAK1N,UAAU,oBACb,qBAAGsB,KAAM+L,EAAUrL,OAAO,UACxB,uBAAKW,IAAKyK,EAAOO,QAAQ,OAAO/K,IAAKwK,EAAOjO,OAAO,MAAMD,MAAM,UAGnE,uBAAKc,UAAU,sBACb,qBAAGsB,KAAMiM,GACP,qBAAGvN,UAAU,wCAAwCsN,IAEvD,qBAAGhM,KAAM+L,EAAUrL,OAAO,UACxB,sBAAIhC,UAAU,oBAAoBwN,IAEnCtC,GACC,qBAAGlL,UAAU,+CAA+CkL,GAE9D,qBAAGlL,UAAU,wCA5BC,IAAI4N,KA4BqDH,GA5B1CI,wBAAmBhE,EALZ,CAC1Cb,KAAM,UACN8E,MAAO,OACPC,IAAK,iBCvBEjC,EAAS,EAAGjI,QAAOmK,OAAMC,kBAElC,uBACEjO,UAAW,IAAW,oBAAqB,cAAe,CACxD,6BAA8BiO,KAGhC,sBAAIjO,UAAU,uBAAuB6D,GACrC,uBAAK7D,UAAU,oBACZgO,EAAK5K,KAAI,EAAG0F,OAAMoF,OAAO5K,IACxB,qBAAG9E,IAAK8E,EAAOhC,KAAM4M,EAAKlO,UAAU,yCACjC8I,OCNAqF,EAAqB,EAAGC,QAAOC,aAC1C,MAAMC,EAA6BD,EAAOE,SAAWH,EAAMxQ,OAC3D,OACE,uBAAKoC,UAAU,yBACZoO,EAAMhL,KAAI,CAACC,EAAMC,IAEd,gCACGgL,GAA8BhL,IAAU+K,EAAOE,UAC9C,gBAACzC,EAAM,CACLtN,IAAK6P,EAAOxK,MACZA,MAAOwK,EAAOxK,MACdmK,KAAMK,EAAOD,OAAS,GACtBH,cAAY,IAGhB,gBAACf,EAAS,CACR1O,IAAK6E,EAAKmL,YACVhB,MAAOnK,EAAKmK,MACZF,MAAOjK,EAAKoL,UACZlB,SAAUlK,EAAKkK,SACfE,YAAapK,EAAKuK,KAClB1C,YAAa7H,EAAKqL,aAClBtB,MAAO/J,EAAK+J,MACZC,SAAUhK,EAAKmL,YACfd,cAAc,YAKpBY,GACA,gBAACxC,EAAM,CAACtN,IAAK6P,EAAOxK,MAAOA,MAAOwK,EAAOxK,MAAOmK,KAAMK,EAAOD,OAAS,GAAIH,cAAY,IAG3F,EC7CGU,EAAuC,CAC3CtH,aAAc,GACdvC,cAAU+E,EACVV,cAAUU,EACVR,aAASQ,EACTb,UAAMa,GAgBD,MCbM+E,EAAc,EAAGxN,OAAMC,UAASwN,UAASC,sBAElD,uBAAK9O,UAAU,wCACb,qBAAGA,UAAU,0BAA0B8O,GACtCD,GACC,gBAAC1N,EAAA,EAAM,CACLM,MAAM,UACNL,KAAMA,EACNpB,UAAU,kCACVqB,QAASA,KCXN0N,EAAwB,EACnCjC,aACAkC,YACArN,cAGE,uBAAK3B,UAAU,4BACb,qBAAGA,UAAU,2BAA2B,GAAG8M,KAAckC,KACxDrN,iBCNA,MAAMsN,EAAM,EAAG9M,QAAO+M,eAAcC,UAAU,eAEjD,uBAAKnP,UAAW,IAAW,QAAS,SAASmP,MAC3C,qBAAGnP,UAAU,gBAAgBmC,GAC7B,0BAAQnC,UAAU,eAAeqB,QAAS6N,GACxC,gBAAC,KAAK,sBC4Id,IC3JA,EDsBkC,KAChC,MAAME,GAAgB,IAAAzK,QX6BS,MAC/B,MAAMiG,EAAM,IAAIyE,IAAItQ,OAAOuQ,SAAShO,MACpC,MAAO,CACL+F,aAAcuD,EAAI2E,aAAaC,IAAI,YAAc,GACjDnG,QAASuB,EAAI2E,aAAaC,IAAI,WAC1B,CACEzI,GAAI6D,EAAI2E,aAAaC,IAAI,YAAc,GACvC1G,UAAMe,QAERA,EACJV,SAAUyB,EAAI2E,aAAaC,IAAI,cAC3B,CACEzI,GAAI6D,EAAI2E,aAAaC,IAAI,cACzB1G,UAAMe,QAERA,EACJ/E,SAAU8F,EAAI2E,aAAaC,IAAI,YAC3B,CAAEzI,GAAI6D,EAAI2E,aAAaC,IAAI,YAAa1G,UAAMe,QAC9CA,EACJb,KAAM4B,EAAI2E,aAAaC,IAAI,SAAW5E,EAAI2E,aAAaC,IAAI,aAAU3F,EACtE,EWjD4B4F,KACrBzB,KAAM0B,EAAUC,UAAWC,GAAkB5C,KAE9C6C,EAAkBC,IAAuB,IAAA9L,WAAS,IAClD+L,GAAyB/B,KAAMgC,EAAgBC,WAAYC,IAChEjD,IAEIkD,EAAoB,CAACjJ,EAAkC0E,EAAkBC,IACtEkE,EAAsB,CAC3BK,QAASlJ,EAAOG,aAChBgC,QAASnC,EAAOmC,SAAStC,GACzBiC,KAAM9B,EAAO8B,KACbpH,KAA8B,QAAxBsF,EAAOpC,UAAUiC,QAAe8C,EAAY3C,EAAOpC,UAAUiC,GACnEoC,SAAUjC,EAAOiC,UAAUpC,GAC3B8E,OACAD,cAIE,KAAEC,EAAI,WAAEwE,EAAU,UAAEC,GJjCrB,WACL,MAAOzE,EAAM0E,IAAW,IAAAvM,UAAS,GAUjC,MAAO,CAAE6H,OAAMwE,WARI,KACjBE,GAASC,GAASA,EAAO,GAAE,EAOFF,UAJT,KAChBC,EAAQ,EAAE,EAId,CIqB0CE,IAElC,OAAEvJ,EAAM,WAAEc,EAAU,cAAE0I,EAAa,eAAEnI,EAAc,cAAEoI,EAAa,eAAEC,GJrBrC,CAACxB,IACtC,MAAOlI,EAAQ2J,IAAa,IAAA7M,UAASoL,IAC9BpH,EAAY8I,IAAiB,IAAA9M,UAAS,GAW7C,MAAO,CACLkD,SACAc,aACA2I,cARkB,KAClBE,EAAUlC,GACVmC,GAAeN,GAASA,EAAO,GAAE,EAOjCjI,eAAgB,CACd3G,KAAMsF,EAAOpC,UAAUgE,KACvBK,SAAUjC,EAAOiC,UAAUL,KAC3BO,QAASnC,EAAOmC,SAASP,KACzBE,KAAM9B,EAAO8B,MAAM5K,YAErBsS,cAAeK,KAAKC,UAAUrC,KAAoBoC,KAAKC,UAAU9J,GACjE0J,eApBqB,CAACxO,EAAkCI,KACxDqO,GAAWL,IAAS,IAAMA,EAAM,CAACpO,GAAOI,KAAS,EAoBlD,EIHCyO,CAAwB7B,EAAcnJ,UAExC,IAAAzB,YAAU,KAEHkL,GACLS,EAAkBjJ,EAAQwI,EAASwB,SAAU,EAAE,GAC9C,CAAChK,EAAQwI,IAEZhI,GAAgB,KXvBe,CAACyJ,IAChC,MAAMvG,EAAM,IAAIyE,IAAItQ,OAAOuQ,SAAShO,OACpC,QAA0BsJ,EAAK,UAAWuG,EAAE9J,eAC5C,QAA0BuD,EAAK,UAAWuG,EAAE9H,SAAStC,KACrD,QAA0B6D,EAAK,aAAcuG,EAAEhI,UAAUpC,KACzD,QAA0B6D,EAAK,WAAYuG,EAAErM,UAAUiC,KACvD,QAA0B6D,EAAK,OAAQuG,EAAEnI,MAEzCjK,OAAOqS,QAAQC,UAAU,CAAC,EAAG,KAAMzG,EAAI,EWgBrC0G,CAAkBpK,EAAO,GACxB,CAACA,KAEJ,IAAA1C,YAAU,KACHkL,IACLI,GAAoB,GAEpBK,EAAkBjJ,EAAQwI,EAASwB,SAAUrF,GAC1C0F,SACAC,MAAK,KACJ1B,GAAoB,EAAM,IAC1B,GACH,CAACjE,IAEJ,MAAM4F,EAAmB7B,EAEzB,OACE,gCACE,uBAAK5P,UAAU,yDACb,uBAAKA,UAAU,sBACZyR,GAAoB,gBAAC/O,EAAA,EAAc,MACnCgN,IAAa+B,GACZ,gCACE,gBAACnL,EAAO,CAACE,SAAUkJ,EAASlC,MAAO/G,MAAOiJ,EAASxE,cACnD,gBAACpD,EAAoB,CACnBC,KAAM2H,EAAStE,KACfnD,WAAYyH,EAAS7M,aACrBqF,UAAW8H,GAAgB3D,UAC3BjE,WAAY4H,GAAgB5D,WAC5BjE,MAAO6H,GAAgB7F,MAAQuF,EAASjE,UACxClD,eAAgBA,EAChBrB,OAAQA,EACRc,WAAYA,EACZM,cAAelB,EAAwBgI,EAAcnJ,SACrDoC,SAAUuI,IAEXZ,GACC,gCACE,gBAACjB,EAAqB,CACpBjC,WAAYkD,EAAe/D,aAC3B+C,UAAWU,EAAStE,KAAKsG,SAExBhB,GACC,gBAACzB,EAAG,CACFE,QAAQ,UACRhN,MAAOuN,EAAStE,KAAKuG,aACrBzC,aAAc,KACZoB,IACAK,GAAe,KAKtBT,IAA4BL,EAC3B,gBAACnN,EAAA,EAAc,MAEf,gCACmC,IAAhCsN,EAAe9D,MAAMtO,OACpB,uBAAKoC,UAAU,8BACb,qBAAGA,UAAU,wBAAwB0P,EAAStE,KAAKwG,gBAGrD,gCACE,gBAACzD,EAAkB,CACjBC,MAAO4B,EAAe9D,MACtBmC,OAAQ,CACNE,SAAUmB,EAASmC,iBACnBhO,MAAO6L,EAAStE,KAAK0G,cACrB1D,MAAO4B,EAAelE,UAG1B,gBAAC8C,EAAW,CACVxN,KAAMsO,EAAStE,KAAK2G,SACpB1Q,QAASgP,EACTxB,SAAUqB,GAA2BF,EAAejE,YACpD+C,iBACGe,GAAqBK,EAMlB,IALA,QACER,EAAStE,KAAK4G,qBACdhC,EAAe7D,WAAW/N,WAC1B4R,EAAe/D,aAAa7N,gBAU7CyR,GAAoB,gBAACnN,EAAA,EAAc,UAQnD,sZEzJI,MAAMuP,EAAa,CACxBC,gBAAiB,0BAGNC,EAAS,CACpBC,YAAa,eAGFC,EAAkB,CAC7BC,uBAAwB,+BAGbC,EAAc,CACzBC,iBAAkB,0BAClBC,YAAa,+BAGFC,EAAS,CACpBC,SAAU,8BACVC,qBAAsB,qCAGXC,EAAiB,CAC5BC,wBAAyB,0CACzBC,UAAW,qCACXC,aAAc,2BAGHC,EAAW,CACtBC,mBAAoB,iCACpBC,iBAAkB,2BAGPC,EAAS,CACpBC,YAAa,qBACbC,mBAAoB,4BACpBC,wBAAyB,gBACzBC,iBAAkB,mBAClBC,aAAc,sBACdC,oBAAqB,6BAGVC,EAAU,CACrBX,aAAc,2BAGHY,EAAO,CAClBb,UAAW,4BAWAc,EAAY,CACvBC,mBAAoB,gCACpBC,oBAAqB,kCACrBC,iBAAkB,mCAClBC,2BAA4B,kCAC5BC,kBAAmB,qBACnBC,4BAA6B,4CAGlBC,EAAoB,CAC/BC,4BAA6B,0BAC7BC,2BAA4B,kBAC5BC,2BAA4B,mBAC5BC,2BAA4B,mBAC5BC,iBAAkB,6DAGPC,EAAW,CACtBC,YAAa,uBACbC,cAAe,yBAGJC,EAAU,CACrBC,iBAAkB,mBAClBC,oBAAqB,6BACrBC,kBAAmB,qCACnBC,iBAAkB,wBAClBC,sBAAuB,gCACvBC,iBAAkB,wBAClBC,WAAY,wBAGDC,EAAkB,CAC7BC,qBAAsB","sources":["webpack://AlfaLaval/./node_modules/classnames/index.js","webpack://AlfaLaval/./assets/icons/common/Profile.tsx","webpack://AlfaLaval/./assets/icons/common/IconContainer.tsx","webpack://AlfaLaval/./assets/icons/common/Facebook.tsx","webpack://AlfaLaval/./assets/icons/common/Twitter.tsx","webpack://AlfaLaval/./assets/icons/common/ExternalLink.tsx","webpack://AlfaLaval/./assets/icons/common/Arrow.tsx","webpack://AlfaLaval/./assets/icons/common/Cross.tsx","webpack://AlfaLaval/./assets/icons/common/Delete.tsx","webpack://AlfaLaval/./assets/icons/common/Email.tsx","webpack://AlfaLaval/./assets/icons/common/Phone.tsx","webpack://AlfaLaval/./components/Button/Button.tsx","webpack://AlfaLaval/./components/Input/Input.tsx","webpack://AlfaLaval/./components/LoadingSpinner/LoadingSpinner.tsx","webpack://AlfaLaval/./components/Select/components/CategoryList.tsx","webpack://AlfaLaval/./components/Select/components/SubCategoriesList.tsx","webpack://AlfaLaval/./components/Select/Select.tsx","webpack://AlfaLaval/./components/Select/Select.hooks.ts","webpack://AlfaLaval/./components/SimpleSelect/SimpleSelect.tsx","webpack://AlfaLaval/./helpers/stringHelpers.ts","webpack://AlfaLaval/./hooks/useOutsideClick.tsx","webpack://AlfaLaval/./components/news/Heading/Heading.tsx","webpack://AlfaLaval/./pages/NewsAndStories/NewsAndStories.helpers.ts","webpack://AlfaLaval/./hooks/useUpdateEffect.ts","webpack://AlfaLaval/./pages/NewsAndStories/components/NewsAndStoriesFilter/NewsAndStoriesFilter.tsx","webpack://AlfaLaval/./pages/NewsAndStories/NewsAndStories.service.ts","webpack://AlfaLaval/./components/news/NewsBlock/NewsBlock.tsx","webpack://AlfaLaval/./components/news/Topics/Topics.tsx","webpack://AlfaLaval/./pages/NewsAndStories/components/NewsAndStoriesList/NewsAndStoriesList.tsx","webpack://AlfaLaval/./pages/NewsAndStories/NewsAndStories.hooks.tsx","webpack://AlfaLaval/./pages/NewsAndStories/components/ShowMoreBtn/ShowMoreBtn.tsx","webpack://AlfaLaval/./pages/NewsAndStories/components/NewsAndStoriesToolbar/NewsAndStoriesToolbar.tsx","webpack://AlfaLaval/./components/Tag/Tag.tsx","webpack://AlfaLaval/./pages/NewsAndStories/NewsAndStories.tsx","webpack://AlfaLaval/./pages/NewsAndStories/index.ts","webpack://AlfaLaval/./services/endpoints.ts"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from 'react';\r\n\r\nexport const Profile = () => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width='21'\r\n height='21'\r\n viewBox='0 0 21 21'\r\n fill='none'\r\n stroke='#11387f'\r\n strokeWidth='2'\r\n strokeLinecap='round'\r\n strokeLinejoin='round'\r\n >\r\n <circle cx='12' cy='7' r='4' />\r\n <path d='M12 14s-8-1.5-8 4h16c0-5.5-8-4-8-4z' />\r\n </svg>\r\n);\r\n","import React, { ReactNode } from 'react';\r\n\r\ninterface IconContainerProps {\r\n icon: ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport const IconContainer = ({ icon, className }: IconContainerProps) => {\r\n return (\r\n <i className={className} aria-hidden=\"true\">\r\n {icon}\r\n </i>\r\n )\r\n};","import React from 'react';\r\n\r\nexport const Facebook = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" enable-background=\"new 0 0 24 24\" height=\"20\" viewBox=\"0 0 24 24\" width=\"20\">\r\n <rect fill=\"none\" height=\"20\" width=\"20\" />\r\n <path d=\"M22,12c0-5.52-4.48-10-10-10S2,6.48,2,12c0,4.84,3.44,8.87,8,9.8V15H8v-3h2V9.5C10,7.57,11.57,6,13.5,6H16v3h-2 c-0.55,0-1,0.45-1,1v2h3v3h-3v6.95C18.05,21.45,22,17.19,22,12z\" />\r\n </svg>\r\n);\r\n\r\n\r\n","import React from 'react';\r\n\r\nexport const Twitter = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\r\n <path d=\"M 2.3671875 3 L 9.4628906 13.140625 L 2.7402344 21 L 5.3808594 21 L 10.644531 14.830078 L 14.960938 21 L 21.871094 21 L 14.449219 10.375 L 20.740234 3 L 18.140625 3 L 13.271484 8.6875 L 9.2988281 3 L 2.3671875 3 z M 6.2070312 5 L 8.2558594 5 L 18.033203 19 L 16.001953 19 L 6.2070312 5 z\"></path>\r\n </svg>\r\n);","import React from 'react';\r\n\r\nexport const ExternalLink = () => (\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"external-link\">\r\n <path id=\"Vector\" d=\"M18 13V17C18 18.0609 17.5786 19.0783 16.8284 19.8284C16.0783 20.5786 15.0609 21 14 21H3V6H11\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n <path id=\"Vector_2\" d=\"M15 3H21V9\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n <path id=\"Vector_3\" d=\"M10 14L21 3\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </g>\r\n </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const Arrow = ({ stroke = '#10387F', rotate = 0 }) => {\r\n return (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width='24'\r\n height='24'\r\n viewBox='0 0 24 24'\r\n fill='none'\r\n style={{\r\n transformBox: 'fill-box',\r\n transformOrigin: 'center',\r\n transform: `rotate(${rotate}deg)`,\r\n }}\r\n >\r\n <path d='M9 18.5L15 12.5L9 6.5' stroke={stroke} strokeWidth='2' />\r\n </svg>\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nexport const Cross = () => (\r\n <svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M18 6L6 18'\r\n stroke='currentColor'\r\n strokeWidth='2'\r\n strokeLinecap='round'\r\n strokeLinejoin='round'\r\n />\r\n <path\r\n d='M6 6L18 18'\r\n stroke='currentColor'\r\n strokeWidth='2'\r\n strokeLinecap='round'\r\n strokeLinejoin='round'\r\n />\r\n </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const Delete = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M3 6H5H21\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n <path d=\"M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V18C19 19.0609 18.5786 20.0783 17.8284 20.8284C17.0783 21.5786 16.0609 22 15 22H5V6H19Z\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n <path d=\"M10 11V17\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n <path d=\"M14 11V17\" stroke=\"#3D3935\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const EmailSvg = () => (\r\n <svg width='20' height='15' viewBox='0 0 20 15' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n d='M0.833496 2.74939C0.833496 1.64482 1.72893 0.74939 2.8335 0.74939H17.1668C18.2714 0.74939 19.1668 1.64482 19.1668 2.74939V3.50801L11.7086 8.675C10.6809 9.38697 9.31942 9.38697 8.29173 8.675L0.833496 3.50801V2.74939Z'\r\n fill='#3D3935'\r\n />\r\n <path\r\n d='M0.833496 4.42755L8.29173 9.59454C9.31942 10.3065 10.6809 10.3065 11.7086 9.59454L19.1668 4.42755V12.0827C19.1668 13.1873 18.2714 14.0827 17.1668 14.0827H2.8335C1.72893 14.0827 0.833496 13.1873 0.833496 12.0827V4.42755Z'\r\n fill='#3D3935'\r\n />\r\n </svg>\r\n);\r\n","import React from 'react';\r\n\r\nexport const PhoneSvg = () => (\r\n <svg width='18' height='17' viewBox='0 0 18 17' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n <path\r\n fillRule='evenodd'\r\n clipRule='evenodd'\r\n d='M17.3327 12.5608V15.0698C17.3336 15.3028 17.2857 15.5333 17.1923 15.7468C17.0988 15.9602 16.9617 16.1517 16.7896 16.3092C16.6177 16.4667 16.4146 16.5865 16.1936 16.6611C15.9725 16.7358 15.7382 16.7635 15.5058 16.7425C12.9272 16.4629 10.4502 15.5835 8.27395 14.175C6.24917 12.8909 4.53255 11.1777 3.24595 9.15694C1.82971 6.97511 0.948369 4.49104 0.673306 1.90593C0.652365 1.67465 0.679901 1.44157 0.754173 1.22149C0.828436 1.00143 0.947808 0.799203 1.10467 0.627696C1.26154 0.456188 1.45247 0.319163 1.66532 0.225335C1.87815 0.131506 2.10824 0.0829403 2.34091 0.0827228H4.8549C5.26157 0.0787251 5.65584 0.222458 5.9642 0.487116C6.27256 0.751775 6.47396 1.11931 6.53088 1.52122C6.63701 2.32415 6.83377 3.11253 7.11751 3.87132C7.23022 4.17066 7.25461 4.49599 7.18782 4.80875C7.12095 5.12151 6.96567 5.4086 6.74042 5.63599L5.67613 6.69811C6.86905 8.79196 8.60613 10.5256 10.7041 11.7161L11.7684 10.654C11.9961 10.4292 12.2838 10.2742 12.5972 10.2075C12.9106 10.1408 13.2365 10.1651 13.5365 10.2776C14.2968 10.5608 15.0868 10.7572 15.8913 10.8631C16.2983 10.9204 16.6701 11.125 16.9359 11.438C17.2016 11.7511 17.3428 12.1507 17.3327 12.5608Z'\r\n fill='#3D3935'\r\n />\r\n </svg>\r\n);\r\n","import { createElement, ReactNode, MouseEvent } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nexport interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> {\r\n text: string;\r\n className?: string;\r\n type?: 'button' | 'submit' | 'reset';\r\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\r\n href?: string;\r\n size?: 'xs' | 'small' | 'medium' | 'large';\r\n disabled?: boolean;\r\n color?: 'grey' | 'default' | 'primary' | 'cta';\r\n border?: boolean;\r\n children?: ReactNode;\r\n}\r\n\r\nexport const Button = ({\r\n text,\r\n className = '',\r\n onClick = () => {},\r\n href,\r\n size = 'medium',\r\n disabled = false,\r\n color = 'default',\r\n border = false,\r\n children,\r\n type,\r\n ...props\r\n}: ButtonProps) => {\r\n const tag = href ? 'a' : 'button';\r\n\r\n return createElement(\r\n tag,\r\n {\r\n onClick,\r\n className:\r\n classNames('c-button', {\r\n 'is-xs': size === 'xs',\r\n 'is-small': size === 'small',\r\n 'is-medium': size === 'medium',\r\n 'is-large': size === 'large',\r\n 'is-disabled': !!disabled,\r\n 'is-grey': color === 'grey',\r\n 'is-default': color === 'default',\r\n 'is-primary': color === 'primary',\r\n 'is-cta': color === 'cta',\r\n 'is-border': !!border,\r\n }) +\r\n ' ' +\r\n className,\r\n href,\r\n ...(tag === 'a' && { target: '_blank' }),\r\n type,\r\n ...props,\r\n },\r\n [text, children]\r\n );\r\n};\r\n","import React, { forwardRef } from 'react';\r\nimport './Input.scss';\r\n\r\ninterface InputProps extends React.HTMLAttributes<HTMLInputElement> {\r\n type: 'text' | 'email';\r\n label?: string;\r\n name: string;\r\n placeholder?: string;\r\n required?: boolean;\r\n value?: string;\r\n defaultValue?: string;\r\n}\r\n\r\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\r\n (\r\n {\r\n type = 'text',\r\n label,\r\n name,\r\n placeholder,\r\n required,\r\n className = '',\r\n defaultValue = '',\r\n value,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n return (\r\n <label className={'c-input ' + className}>\r\n {label && <span className='c-input-label'>{`${label} ${required ? '*' : ''}`}</span>}\r\n <input\r\n ref={ref}\r\n type={type}\r\n name={name}\r\n id={name}\r\n placeholder={placeholder}\r\n className='c-input-field'\r\n defaultValue={defaultValue}\r\n value={value}\r\n {...props}\r\n />\r\n </label>\r\n );\r\n }\r\n);\r\n","import React from \"react\";\r\nimport \"./LoadingSpinner.scss\";\r\n\r\nexport const LoadingSpinner = () => {\r\n return (\r\n <div className=\"c-loading-spinner\">\r\n <img className=\"inline-block lazyload\" src=\"/ui/css/img/loader.gif\" alt=\"Loading\" />\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { SelectItem } from '../Select.types';\r\n\r\ninterface CategoryListProps {\r\n name: string;\r\n sub: string;\r\n selectableTitle: boolean;\r\n onClickSelectableTitle?: () => void;\r\n onSelect: (item: SelectItem[]) => void;\r\n defaultTitle: string;\r\n list: SelectItem[];\r\n}\r\n\r\nexport const CategoryList = ({\r\n name,\r\n sub,\r\n selectableTitle,\r\n onClickSelectableTitle,\r\n onSelect,\r\n defaultTitle,\r\n list,\r\n}: CategoryListProps) => {\r\n return (\r\n <div>\r\n <li key={-1} onClick={onClickSelectableTitle} className={selectableTitle ? '' : 'inactive'}>\r\n {defaultTitle}\r\n </li>\r\n {...list.map((item, index) => (\r\n <li key={index} onClick={() => onSelect(item[sub])}>\r\n <span>{item[name]}</span>\r\n <i className='icon-angle-right' />\r\n </li>\r\n ))}\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { SelectItem } from '../Select.types'\r\n\r\ninterface SubCategoriesListProps {\r\n name: string;\r\n backLabel?: string;\r\n onClickBack?: () => void;\r\n list: SelectItem[];\r\n onSelect: (item: SelectItem) => void;\r\n}\r\n\r\nexport const SubCategoriesList = ({\r\n name,\r\n backLabel,\r\n onClickBack,\r\n list,\r\n onSelect,\r\n}: SubCategoriesListProps) => {\r\n return (\r\n <div>\r\n <li onClick={onClickBack} key={-1}>\r\n <span>\r\n <i className='icon-angle-left' />\r\n {backLabel || 'Back'}\r\n </span>\r\n </li>\r\n {...list.map((item, index) => (\r\n <li key={index} onClick={() => onSelect(item)}>\r\n {item[name]}\r\n </li>\r\n ))}\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { CategoryList } from './components/CategoryList';\r\nimport { SubCategoriesList } from './components/SubCategoriesList';\r\nimport { useReset } from './Select.hooks';\r\nimport { getComputerName } from '@helpers/stringHelpers';\r\nimport { SelectItem } from './Select.types';\r\nimport './Select.scss';\r\n\r\ninterface List {\r\n [key: string]: Array<SelectItem> | string;\r\n Id: string;\r\n Name: string;\r\n}\r\n\r\ninterface SelectProps {\r\n name: string;\r\n sub: string;\r\n resetTime?: number | null;\r\n selectFunction: (item: SelectItem) => void;\r\n defaultTitle: string;\r\n selectableTitle?: boolean;\r\n title: string;\r\n list: List[];\r\n label?: string;\r\n backLabel?: string;\r\n required?: boolean;\r\n}\r\n\r\nexport const Select = ({\r\n name,\r\n sub,\r\n resetTime,\r\n selectFunction,\r\n defaultTitle,\r\n selectableTitle,\r\n required = false,\r\n title,\r\n list,\r\n label = '',\r\n backLabel,\r\n}: SelectProps) => {\r\n const [isShowing, setIsShowing] = useState<boolean>(false);\r\n const [selectedCategory, setSelectedCategory] = useState<SelectItem[]>(null);\r\n const [selectedCategoryItem, setSelectedCategoryItem] = useState<SelectItem>(null);\r\n\r\n const doReset = () => {\r\n setIsShowing(false);\r\n setSelectedCategory(null);\r\n setSelectedCategoryItem(null);\r\n };\r\n\r\n useReset(resetTime, doReset);\r\n\r\n useEffect(() => {\r\n doReset();\r\n }, [list]);\r\n\r\n const selectRef = useRef<HTMLDivElement>(null);\r\n const handleClickOutside = () => {\r\n setIsShowing(false);\r\n };\r\n useOutsideClick(selectRef, handleClickOutside);\r\n\r\n const handleClick = () => {\r\n setIsShowing(!isShowing);\r\n };\r\n\r\n const selectCategory = (category: SelectItem[]) => {\r\n setSelectedCategory(category);\r\n };\r\n\r\n const selectCategoryItem = (item: SelectItem) => {\r\n selectFunction(item);\r\n setSelectedCategoryItem(item);\r\n setIsShowing(false);\r\n setSelectedCategory(null);\r\n };\r\n\r\n const onClickSelectableTitle = () => {\r\n if (selectableTitle) {\r\n selectFunction(null);\r\n doReset();\r\n }\r\n };\r\n\r\n const back = () => {\r\n setSelectedCategory(null);\r\n };\r\n\r\n return (\r\n <div ref={selectRef} className='c-select'>\r\n {label && (\r\n <label htmlFor={getComputerName(label)}>\r\n {label}\r\n {required && ' *'}\r\n </label>\r\n )}\r\n\r\n <div className='c-button'>\r\n <div className='c-select-wrapper' data-name={getComputerName(label)} onClick={handleClick}>\r\n <span>{selectedCategoryItem ? selectedCategoryItem[name] : title}</span>\r\n <i className='icon-angle-down' />\r\n </div>\r\n {isShowing && (\r\n <div className='c-select-list'>\r\n <ul>\r\n {!selectedCategory ? (\r\n <CategoryList\r\n name={name}\r\n sub={sub}\r\n list={list}\r\n onSelect={selectCategory}\r\n selectableTitle={selectableTitle}\r\n onClickSelectableTitle={onClickSelectableTitle}\r\n defaultTitle={defaultTitle}\r\n />\r\n ) : (\r\n <SubCategoriesList\r\n name={name}\r\n list={selectedCategory}\r\n backLabel={backLabel}\r\n onClickBack={back}\r\n onSelect={selectCategoryItem}\r\n />\r\n )}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const useReset = (resetTime: number | null, doReset: () => void) => {\r\n const [reset, setReset] = useState<number>(resetTime);\r\n\r\n useEffect(() => {\r\n if (resetTime && resetTime !== reset) {\r\n doReset();\r\n setReset(resetTime);\r\n }\r\n }, [resetTime]);\r\n};\r\n","import React, { useRef, useState, useMemo } from 'react';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { getComputerName } from '@helpers/stringHelpers';\r\nimport './SimpleSelect.scss';\r\n\r\nexport interface SimpleSelectProps<T> {\r\n disabled?: boolean;\r\n selectFunction: (item: T) => void;\r\n list: T[];\r\n name: string;\r\n label?: string;\r\n required?: boolean;\r\n title: string;\r\n}\r\n\r\nexport const SimpleSelect = <T,>({\r\n disabled = false,\r\n selectFunction,\r\n list,\r\n name,\r\n label,\r\n required = false,\r\n title,\r\n}: SimpleSelectProps<T>) => {\r\n const [isShowing, setIsShowing] = useState(false);\r\n\r\n const selectRef = useRef(null);\r\n const handleClickOutside = () => {\r\n setIsShowing(false);\r\n };\r\n useOutsideClick(selectRef, handleClickOutside);\r\n\r\n const handleClick = () => {\r\n if (!disabled) {\r\n setIsShowing(!isShowing);\r\n }\r\n };\r\n\r\n const onSelect = (item: T) => {\r\n selectFunction(item);\r\n setIsShowing(false);\r\n };\r\n\r\n const listItems = useMemo(() => {\r\n return list\r\n ? list.map((item, key) => (\r\n <li key={key} onClick={() => onSelect(item)}>\r\n {name ? item[name] : item}\r\n </li>\r\n ))\r\n : [];\r\n }, [list, name]);\r\n\r\n return (\r\n <div ref={selectRef} className={disabled ? 'c-simple-select disabled' : 'c-simple-select'}>\r\n {label && (\r\n <label htmlFor={getComputerName(label)}>\r\n {label}\r\n {required && ' *'}\r\n </label>\r\n )}\r\n <div className='c-button' data-name={getComputerName(label)}>\r\n <div className='c-simple-select-wrapper' onClick={handleClick}>\r\n <span>{title}</span>\r\n <i className='icon-angle-down' />\r\n </div>\r\n {isShowing && (\r\n <div className='c-simple-select-list'>\r\n <ul>{listItems}</ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","// replaces all spaces with -\r\nexport const getComputerName = (str: string): string => {\r\n if (!str) return '';\r\n const computerName = str.replace(/\\s+/g, '-').toLowerCase();\r\n return computerName;\r\n};\r\n\r\nexport const truncateString = (str: string, limit: number): string => {\r\n if (!str) return '';\r\n let truncated = str.substring(0, limit);\r\n truncated += '...';\r\n return truncated;\r\n};\r\n\r\nexport const normalizeInput = (value: string): string => {\r\n return value.toLowerCase().trim();\r\n};\r\n\r\nexport const interpolateString = (str: string, ...args: string[]): string => {\r\n let interpolatedString = str;\r\n args.forEach((arg, index) => {\r\n interpolatedString = interpolatedString.replace(`{${index}}`, arg);\r\n });\r\n return interpolatedString;\r\n};\r\n","import { useEffect } from \"react\";\r\n\r\nexport const useOutsideClick = (\r\n ref: React.RefObject<any>,\r\n handler: Function\r\n) => {\r\n return useEffect(() => {\r\n const handleClick = (e: any) => {\r\n if (ref.current && !ref.current.contains(e.target)) {\r\n handler(e);\r\n }\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClick);\r\n document.addEventListener(\"touchstart\", handleClick);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClick);\r\n document.removeEventListener(\"touchstart\", handleClick);\r\n };\r\n }, [ref, handler]);\r\n};\r\n","import React from 'react';\r\nimport './Heading.scss';\r\nimport { Button } from '@components/Button';\r\nimport classNames from 'classnames';\r\n\r\ninterface HeadingProps {\r\n state?: 'left' | 'center';\r\n headline: string;\r\n intro: string;\r\n showButton?: boolean;\r\n buttonLabel?: string;\r\n buttonLink?: string;\r\n}\r\n\r\nexport const Heading = ({\r\n state = 'left',\r\n headline,\r\n intro,\r\n showButton = false,\r\n buttonLabel,\r\n buttonLink,\r\n}: HeadingProps) => {\r\n return (\r\n <div\r\n className={classNames('l-section', 'l-section-100', 'news-heading', {\r\n 'is-center': state === 'center',\r\n })}>\r\n <h1 className='al-break-word'>{headline}</h1>\r\n <div className='news-intro'>\r\n <p className='font-light-x-lg-lh-150'>{intro}</p>\r\n </div>\r\n {showButton && <Button text={buttonLabel} href={buttonLink} size='small' color='primary' />}\r\n </div>\r\n );\r\n};\r\n","import { CountryItem, IndustryItem, SublistItem } from '@type/common';\r\nimport { NewsAndStoriesFilter, NewsAndStoriesTopicsElement } from './NewsAndStories.types';\r\nimport { optionallySetSearchParams } from '@helpers/URLHelpers';\r\n\r\nexport const getItemFromList = (\r\n id: string,\r\n list: { Id: string; Name: string }[]\r\n): { Id: string; Name: string } => {\r\n for (const subListItem of list) {\r\n if (subListItem.Id === id) {\r\n return subListItem;\r\n }\r\n }\r\n};\r\n\r\n// If 2 response with same id it will show last response name in filter\r\nexport const getItemFromSubList = (\r\n id: string,\r\n list: CountryItem[] | IndustryItem[] | SublistItem[],\r\n subListName: string\r\n): SublistItem => {\r\n for (const item of list) {\r\n if (item[subListName]) {\r\n const subListItem = item[subListName].filter((subListItem) => subListItem.Id == id).at(-1);\r\n if (subListItem) {\r\n return subListItem;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const setURLfromFilters = (f: NewsAndStoriesFilter) => {\r\n const url = new URL(window.location.href);\r\n optionallySetSearchParams(url, 'keyword', f.searchString);\r\n optionallySetSearchParams(url, 'country', f.country?.Id);\r\n optionallySetSearchParams(url, 'industries', f.industry?.Id);\r\n optionallySetSearchParams(url, 'category', f.category?.Id);\r\n optionallySetSearchParams(url, 'year', f.year);\r\n\r\n window.history.pushState({}, null, url);\r\n};\r\n\r\nexport const resetURL = () => {\r\n const url = new URL(window.location.href);\r\n window.history.pushState({}, null, url.origin + url.pathname);\r\n};\r\n\r\nexport const shouldDefaultOpenFilter = (filter: NewsAndStoriesFilter): boolean => {\r\n /* All filter values are set to falsey values if the filter is empty */\r\n const { searchString, ...advancedFilters } = filter;\r\n return Object.values(advancedFilters).some(Boolean);\r\n};\r\n\r\nexport const getFiltersFromURL = (): NewsAndStoriesFilter => {\r\n const url = new URL(window.location.href);\r\n return {\r\n searchString: url.searchParams.get('keyword') || '',\r\n country: url.searchParams.get('country')\r\n ? {\r\n Id: url.searchParams.get('country') || '',\r\n Name: undefined,\r\n }\r\n : undefined,\r\n industry: url.searchParams.get('industries')\r\n ? {\r\n Id: url.searchParams.get('industries'),\r\n Name: undefined,\r\n }\r\n : undefined,\r\n category: url.searchParams.get('category')\r\n ? { Id: url.searchParams.get('category'), Name: undefined }\r\n : undefined,\r\n year: url.searchParams.get('year') ? +url.searchParams.get('year') : undefined,\r\n };\r\n};\r\n\r\nexport const isNewsAndStoriesTopicsBlock = (item: any): item is NewsAndStoriesTopicsElement => {\r\n return item.isTopics === true;\r\n};\r\n","import { useEffect, useRef } from 'react';\r\n\r\nexport const useUpdateEffect: typeof useEffect = (effect, deps) => {\r\n const isFirstMount = useRef(true);\r\n\r\n useEffect(() => {\r\n if (!isFirstMount.current) effect();\r\n else isFirstMount.current = false;\r\n }, deps);\r\n};\r\n","import React, { ChangeEvent, useEffect, useState } from 'react';\r\nimport { Select } from '@components/Select';\r\nimport { SimpleSelect } from '@components/SimpleSelect';\r\nimport { CountryItem, IndustryItem, SublistItem } from '@type/common';\r\nimport { Button } from '@components/Button';\r\nimport { Input } from '@components/Input';\r\nimport { NewsAndStoriesFilter as NewsAndStoriesFilterType } from '../../NewsAndStories.types';\r\nimport { getItemFromList, getItemFromSubList } from '@pages/NewsAndStories/NewsAndStories.helpers';\r\nimport './NewsAndStoriesFilter.scss';\r\nimport { useUpdateEffect } from '@hooks/useUpdateEffect';\r\n\r\ninterface NewsAndStoriesFilterProps {\r\n i18n: Record<string, string>;\r\n resetCount: number;\r\n categories: SublistItem[];\r\n countries: CountryItem[];\r\n years: number[];\r\n industries: IndustryItem[];\r\n selectorTitles: {\r\n type: string;\r\n industry: string;\r\n country: string;\r\n year: string;\r\n };\r\n filter: NewsAndStoriesFilterType;\r\n isDefaultOpen?: boolean;\r\n onChange: (\r\n name: keyof NewsAndStoriesFilterType,\r\n value: NewsAndStoriesFilterType[keyof NewsAndStoriesFilterType]\r\n ) => void;\r\n}\r\n\r\nexport const NewsAndStoriesFilter = ({\r\n i18n,\r\n resetCount,\r\n categories = [],\r\n countries = [],\r\n years = [],\r\n industries = [],\r\n filter,\r\n onChange,\r\n isDefaultOpen = false,\r\n selectorTitles,\r\n}: NewsAndStoriesFilterProps) => {\r\n const [searchString, setSearchString] = useState(filter.searchString);\r\n const [isAdvancedFilterOpen, setIsAdvancedFilterOpen] = useState(isDefaultOpen);\r\n const [isKeywordsDirty, setIsKeywordsDirty] = useState(false);\r\n\r\n useUpdateEffect(() => {\r\n setSearchString('');\r\n }, [resetCount]);\r\n\r\n const yearsListFormatted = [\r\n { Name: i18n.AllYears, Id: 'All' },\r\n ...years.map((year) => ({ Name: year.toString(), Id: year.toString() })),\r\n ];\r\n\r\n const categoriesTitle =\r\n selectorTitles.type || getItemFromList(filter.category?.Id, categories)?.Name;\r\n const industriesTitle =\r\n selectorTitles.industry ||\r\n getItemFromSubList(filter.industry?.Id, industries, 'SubIndustries')?.Name;\r\n const countriesTitle =\r\n selectorTitles.country || getItemFromSubList(filter.country?.Id, countries, 'Countries')?.Name;\r\n const yearsTitle =\r\n selectorTitles.year || getItemFromList(filter.year?.toString(), yearsListFormatted)?.Name;\r\n\r\n const onAdvancedFilterBtnClick = () => {\r\n setIsAdvancedFilterOpen(!isAdvancedFilterOpen);\r\n };\r\n\r\n return (\r\n <div className='news-and-stories-filter'>\r\n <div className='news-and-stories-filter-standard'>\r\n <Input\r\n type='text'\r\n value={searchString}\r\n name='searchForKeywords'\r\n placeholder={i18n.Keywords}\r\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\r\n setSearchString(e.target.value);\r\n setIsKeywordsDirty(true);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n onChange('searchString', searchString);\r\n }\r\n }}\r\n />\r\n <div className='news-and-stories-filter-controls'>\r\n <Button\r\n size='small'\r\n disabled={!isKeywordsDirty}\r\n text='Filter'\r\n color='primary'\r\n className='news-and-stories-filter__filter-button'\r\n onClick={() => {\r\n onChange('searchString', searchString);\r\n }}\r\n />\r\n <a className='news-and-stories-filter__advanced-link' onClick={onAdvancedFilterBtnClick}>\r\n {isAdvancedFilterOpen ? i18n.HideAdvancedFilters : i18n.AdvancedFilters}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n {isAdvancedFilterOpen && (\r\n <div className='news-and-stories-filter-advanced'>\r\n <SimpleSelect\r\n title={categoriesTitle || i18n.Type}\r\n list={categories}\r\n name='Name'\r\n selectFunction={(item) => {\r\n if (item.Id === 'All') {\r\n onChange('category', undefined);\r\n return;\r\n }\r\n onChange('category', item);\r\n }}\r\n />\r\n <Select\r\n selectableTitle\r\n defaultTitle={i18n.AllIndustries}\r\n resetTime={resetCount}\r\n title={industriesTitle || i18n.Industry}\r\n backLabel={i18n.Back}\r\n list={industries}\r\n name='Name'\r\n sub='SubIndustries'\r\n selectFunction={(item) => {\r\n onChange('industry', item);\r\n }}\r\n />\r\n <Select\r\n selectableTitle\r\n defaultTitle={i18n.AllCountries}\r\n resetTime={resetCount}\r\n title={countriesTitle || i18n.Location}\r\n backLabel={i18n.Back}\r\n list={countries}\r\n name='Name'\r\n sub='Countries'\r\n selectFunction={(item) => {\r\n onChange('country', item);\r\n }}\r\n />\r\n <SimpleSelect\r\n title={yearsTitle || i18n.Year}\r\n list={yearsListFormatted}\r\n name='Name'\r\n selectFunction={(item) => {\r\n if (item.Id === 'All') {\r\n onChange('year', undefined);\r\n } else {\r\n onChange('year', item.Id);\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import { apiSlice } from '@services/apiSlice';\r\nimport { NewsAndStories as endpoints } from '@services/endpoints';\r\nimport {\r\n NewsAndStoriesList,\r\n NewsAndStoriesPage,\r\n NewsListResponse,\r\n NewsPageResponse,\r\n NewsQueryParams,\r\n} from './NewsAndStories.types';\r\nimport { isNewsAndStoriesTopicsBlock } from './NewsAndStories.helpers';\r\n\r\nconst newsApi = apiSlice\r\n .enhanceEndpoints({\r\n addTagTypes: ['News'],\r\n })\r\n .injectEndpoints({\r\n endpoints: (build) => ({\r\n fetchNewsAndStoriesPageData: build.query<NewsAndStoriesPage, void>({\r\n query: () => ({\r\n url: endpoints.fetchNewsAndStoriesData,\r\n params: { lang: window.lang, pageId: window.pageId },\r\n }),\r\n transformResponse: (response: NewsPageResponse) => {\r\n return {\r\n ...response,\r\n Description: response.Decsription,\r\n I18n: response.I18n,\r\n CategoryList: Object.entries({\r\n All: response.I18n.AllType,\r\n ...response.TypeList,\r\n }).map(([key, value]) => {\r\n return {\r\n Name: value?.toString(),\r\n Id: key,\r\n };\r\n }),\r\n YearsList: response.YearList,\r\n };\r\n },\r\n }),\r\n fetchNewsAndStories: build.query<NewsAndStoriesList, NewsQueryParams>({\r\n query: ({ pageSize, ...filter }) => ({\r\n url: endpoints.fetchNews,\r\n params: {\r\n lang: window.lang,\r\n pageId: window.pageId,\r\n pageSize: filter.page === 1 ? 10 : pageSize,\r\n ...filter,\r\n },\r\n }),\r\n transformResponse: (response: NewsListResponse) => {\r\n return {\r\n Topics: response.Topics,\r\n HasNextPage: response.NewsListingItems.length < response.TotalResults,\r\n Items: response.NewsListingItems,\r\n ItemsCount: response.NewsListingItems.length,\r\n TotalResults: response.TotalResults,\r\n Industries: response.Industries || [],\r\n Countries: response.Countries || [],\r\n Year: response.Year,\r\n };\r\n },\r\n serializeQueryArgs: ({ endpointName }) => {\r\n return endpointName;\r\n },\r\n merge: (current, incoming, meta) => {\r\n const isRequestWithNoResults =\r\n current.HasNextPage === false && incoming.Items.length === 0;\r\n\r\n if (isRequestWithNoResults) {\r\n return {\r\n HasNextPage: false,\r\n Items: [],\r\n ItemsCount: 0,\r\n TotalResults: 0,\r\n };\r\n }\r\n\r\n if (meta.arg.page === 1) {\r\n return incoming;\r\n }\r\n\r\n const incomingItems = incoming.Items.filter((item) => !isNewsAndStoriesTopicsBlock(item));\r\n const itemsCount = current.ItemsCount + incomingItems.length;\r\n\r\n return {\r\n HasNextPage: itemsCount < incoming.TotalResults,\r\n Topics: incoming.Topics,\r\n Items: [...current.Items, ...incomingItems],\r\n ItemsCount: itemsCount > incoming.TotalResults ? incoming.TotalResults : itemsCount,\r\n TotalResults: incoming.TotalResults,\r\n Industries: incoming.Industries || [],\r\n Countries: incoming.Countries || [],\r\n Year: incoming.Year,\r\n };\r\n },\r\n }),\r\n }),\r\n overrideExisting: false,\r\n });\r\n\r\nexport const { useFetchNewsAndStoriesPageDataQuery, useLazyFetchNewsAndStoriesQuery } = newsApi;\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\nimport './NewsBlock.scss';\r\n\r\ninterface NewsBlockProps {\r\n Key?: number;\r\n Image: string;\r\n ImageUrl: string;\r\n Topic: string;\r\n TopicUrl: string;\r\n Title: string;\r\n Description?: string;\r\n PublishDate: string;\r\n ImageIsRight?: boolean;\r\n imagePosition?: 'left' | 'right' | 'top';\r\n}\r\n\r\nexport const NewsBlock = ({\r\n Key,\r\n Image,\r\n ImageUrl,\r\n Topic,\r\n TopicUrl,\r\n Title,\r\n Description,\r\n PublishDate,\r\n imagePosition = 'left',\r\n}: NewsBlockProps) => {\r\n const formatPublishDate = (date: string) => {\r\n // TODO: ask to do this in backend\r\n const options: Intl.DateTimeFormatOptions = {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n };\r\n const formattedDate = new Date(date).toLocaleDateString(undefined, options);\r\n return formattedDate;\r\n };\r\n\r\n return (\r\n <React.Fragment key={Key}>\r\n <div className='news-block-container'>\r\n <div\r\n className={classNames('news-block', {\r\n 'right-image': imagePosition === 'right',\r\n 'top-image': imagePosition === 'top',\r\n })}\r\n >\r\n <div className='news-block-image'>\r\n <a href={ImageUrl} target='_blank'>\r\n <img src={Image} loading='lazy' alt={Image} height='360' width='640' />\r\n </a>\r\n </div>\r\n <div className='news-block-content'>\r\n <a href={TopicUrl}>\r\n <p className='news-block-topic font-bold-xs-lh-150'>{Topic}</p>\r\n </a>\r\n <a href={ImageUrl} target='_blank'>\r\n <h3 className='news-block-title'>{Title}</h3>\r\n </a>\r\n {Description && (\r\n <p className='news-block-description font-light-md-lh-150'>{Description}</p>\r\n )}\r\n <p className='news-block-date font-light-sm-lh-140'>{formatPublishDate(PublishDate)}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n};\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\nimport './Topics.scss';\r\n\r\ninterface TopicsProps {\r\n title: string;\r\n data: { Name: string; Url: string }[];\r\n noBackground?: boolean;\r\n}\r\n\r\nexport const Topics = ({ title, data, noBackground }: TopicsProps) => {\r\n return (\r\n <div\r\n className={classNames('l-section-padding', 'news-topics', {\r\n 'news-topics--no-background': noBackground,\r\n })}\r\n >\r\n <h2 className='news-topics-heading'>{title}</h2>\r\n <div className='news-topics-tabs'>\r\n {data.map(({ Name, Url }, index) => (\r\n <a key={index} href={Url} className='news-topics-tab font-medium-sm-lh-140'>\r\n {Name}\r\n </a>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { NewsBlock } from '@components/news/NewsBlock';\r\nimport { NewsAndStoriesItem } from '@pages/NewsAndStories/NewsAndStories.types';\r\nimport { Topics } from '@components/news/Topics';\r\nimport './NewsAndStoriesList.scss';\r\n\r\ninterface NewsAndStoriesListProps {\r\n topics: {\r\n position: number;\r\n title: string;\r\n items: Array<{ Name: string; Url: string }>;\r\n };\r\n items: Array<NewsAndStoriesItem>;\r\n}\r\n\r\nexport const NewsAndStoriesList = ({ items, topics }: NewsAndStoriesListProps) => {\r\n const moreItemsThanTopicPosition = topics.position < items.length;\r\n return (\r\n <div className='news-and-stories-list'>\r\n {items.map((item, index) => {\r\n return (\r\n <>\r\n {moreItemsThanTopicPosition && index === topics.position && (\r\n <Topics\r\n key={topics.title}\r\n title={topics.title}\r\n data={topics.items || []}\r\n noBackground\r\n />\r\n )}\r\n <NewsBlock\r\n key={item.ContentLink}\r\n Title={item.Title}\r\n Topic={item.TopicName}\r\n TopicUrl={item.TopicUrl}\r\n PublishDate={item.Date}\r\n Description={item.Introduction}\r\n Image={item.Image}\r\n ImageUrl={item.ContentLink}\r\n imagePosition='top'\r\n />\r\n </>\r\n );\r\n })}\r\n {!moreItemsThanTopicPosition && (\r\n <Topics key={topics.title} title={topics.title} data={topics.items || []} noBackground />\r\n )}\r\n </div>\r\n );\r\n};\r\n","import { useState } from 'react';\r\nimport { NewsAndStoriesFilter } from './NewsAndStories.types';\r\n\r\nconst DEFAULT_FILTER: NewsAndStoriesFilter = {\r\n searchString: '',\r\n category: undefined,\r\n industry: undefined,\r\n country: undefined,\r\n year: undefined,\r\n};\r\nexport function useNewsAndStoriesPagination<T>() {\r\n const [page, setPage] = useState(1);\r\n\r\n const onNextPage = () => {\r\n setPage((prev) => prev + 1);\r\n };\r\n\r\n const resetPage = () => {\r\n setPage(1);\r\n };\r\n\r\n return { page, onNextPage, resetPage };\r\n}\r\n\r\nexport const useNewsAndStoriesFilter = (defaultFilter: NewsAndStoriesFilter) => {\r\n const [filter, setFilter] = useState(defaultFilter);\r\n const [resetCount, setResetCount] = useState(0);\r\n\r\n const setFilterValue = (name: keyof NewsAndStoriesFilter, value: any) => {\r\n setFilter((prev) => ({ ...prev, [name]: value }));\r\n };\r\n\r\n const resetFilter = () => {\r\n setFilter(DEFAULT_FILTER);\r\n setResetCount((prev) => prev + 1);\r\n };\r\n\r\n return {\r\n filter,\r\n resetCount,\r\n onResetFilter: resetFilter,\r\n selectorTitles: {\r\n type: filter.category?.Name,\r\n industry: filter.industry?.Name,\r\n country: filter.country?.Name,\r\n year: filter.year?.toString(),\r\n },\r\n isFilterDirty: JSON.stringify(DEFAULT_FILTER) !== JSON.stringify(filter),\r\n setFilterValue,\r\n };\r\n};\r\n","import React from 'react';\r\nimport { Button } from '@components/Button';\r\nimport './ShowMoreBtn.scss';\r\n\r\ninterface ShowMoreBtnProps {\r\n text: string;\r\n onClick: () => void;\r\n showingCountText: string;\r\n showBtn: boolean;\r\n}\r\n\r\nexport const ShowMoreBtn = ({ text, onClick, showBtn, showingCountText }: ShowMoreBtnProps) => {\r\n return (\r\n <div className='news-and-stories-show-more-container'>\r\n <p className='font-light-x-lg-lh-140'>{showingCountText}</p>\r\n {showBtn && (\r\n <Button\r\n color='primary'\r\n text={text}\r\n className='news-and-stories__next-page-btn'\r\n onClick={onClick}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport './NewsAndStoriesToolbar.scss';\r\n\r\ninterface NewsAndStoriesToolbarProps {\r\n itemsCount: number;\r\n itemsText: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const NewsAndStoriesToolbar = ({\r\n itemsCount,\r\n itemsText,\r\n children,\r\n}: NewsAndStoriesToolbarProps) => {\r\n return (\r\n <div className='news-and-stories-toolbar'>\r\n <p className='news-and-stories__count'>{`${itemsCount} ${itemsText}`}</p>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Cross } from '@icons/common';\r\nimport './Tag.scss';\r\nimport classNames from 'classnames';\r\n\r\ninterface TagProps {\r\n label: string;\r\n variant?: 'secondary' | 'primary';\r\n onCloseClick?: () => void;\r\n}\r\n\r\nexport const Tag = ({ label, onCloseClick, variant = 'secondary' }: TagProps) => {\r\n return (\r\n <div className={classNames('c-tag', `c-tag-${variant}`)}>\r\n <p className='c-tag__label'>{label}</p>\r\n <button className='c-tag__close' onClick={onCloseClick}>\r\n <Cross />\r\n </button>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { LoadingSpinner } from '@components/LoadingSpinner';\r\nimport { Heading } from '@components/news/Heading';\r\nimport { NewsAndStoriesFilter } from './components/NewsAndStoriesFilter';\r\nimport {\r\n useFetchNewsAndStoriesPageDataQuery,\r\n useLazyFetchNewsAndStoriesQuery,\r\n} from './NewsAndStories.service';\r\nimport { NewsAndStoriesList } from './components/NewsAndStoriesList';\r\nimport { NewsAndStoriesFilter as NewsAndStoriesFilterType } from './NewsAndStories.types';\r\nimport { useNewsAndStoriesFilter, useNewsAndStoriesPagination } from './NewsAndStories.hooks';\r\nimport { ShowMoreBtn } from './components/ShowMoreBtn';\r\nimport { NewsAndStoriesToolbar } from './components/NewsAndStoriesToolbar';\r\nimport { Tag } from '@components/Tag';\r\nimport './NewsAndStories.scss';\r\nimport { interpolateString } from '@helpers/stringHelpers';\r\nimport {\r\n getFiltersFromURL,\r\n setURLfromFilters,\r\n shouldDefaultOpenFilter,\r\n} from './NewsAndStories.helpers';\r\nimport { useUpdateEffect } from '@hooks/useUpdateEffect';\r\n\r\nexport const NewsAndStoriesPage = () => {\r\n const defaultFilter = useRef(getFiltersFromURL());\r\n const { data: pageData, isLoading: isLoadingPage } = useFetchNewsAndStoriesPageDataQuery();\r\n\r\n const [isLoadingNewPage, setIsLoadingNewPage] = useState(false);\r\n const [doFetchNewsAndStories, { data: newsAndStories, isFetching: isLoadingNewsAndStories }] =\r\n useLazyFetchNewsAndStoriesQuery();\r\n\r\n const fetchFilteredNews = (filter: NewsAndStoriesFilterType, pageSize: number, page: number) => {\r\n return doFetchNewsAndStories({\r\n keyword: filter.searchString,\r\n country: filter.country?.Id,\r\n year: filter.year,\r\n type: filter.category?.Id === 'All' ? undefined : filter.category?.Id,\r\n industry: filter.industry?.Id,\r\n page,\r\n pageSize,\r\n });\r\n };\r\n\r\n const { page, onNextPage, resetPage } = useNewsAndStoriesPagination();\r\n\r\n const { filter, resetCount, isFilterDirty, selectorTitles, onResetFilter, setFilterValue } =\r\n useNewsAndStoriesFilter(defaultFilter.current);\r\n\r\n useEffect(() => {\r\n // restricting fetch requests if pageSize is not loadded yet\r\n if (!pageData) return;\r\n fetchFilteredNews(filter, pageData.PageSize, 1);\r\n }, [filter, pageData]);\r\n\r\n useUpdateEffect(() => {\r\n setURLfromFilters(filter);\r\n }, [filter]);\r\n\r\n useEffect(() => {\r\n if (!pageData) return;\r\n setIsLoadingNewPage(true);\r\n\r\n fetchFilteredNews(filter, pageData.PageSize, page)\r\n .unwrap()\r\n .then(() => {\r\n setIsLoadingNewPage(false);\r\n });\r\n }, [page]);\r\n\r\n const isInitialLoading = isLoadingPage;\r\n\r\n return (\r\n <>\r\n <div className='l-section l-section-100 news-and-stories-page-wrapper'>\r\n <div className='l-content is-bound'>\r\n {isInitialLoading && <LoadingSpinner />}\r\n {pageData && !isInitialLoading && (\r\n <>\r\n <Heading headline={pageData.Title} intro={pageData.Description} />\r\n <NewsAndStoriesFilter\r\n i18n={pageData.I18n}\r\n categories={pageData.CategoryList}\r\n countries={newsAndStories?.Countries}\r\n industries={newsAndStories?.Industries}\r\n years={newsAndStories?.Year || pageData.YearsList}\r\n selectorTitles={selectorTitles}\r\n filter={filter}\r\n resetCount={resetCount}\r\n isDefaultOpen={shouldDefaultOpenFilter(defaultFilter.current)}\r\n onChange={setFilterValue}\r\n />\r\n {newsAndStories && (\r\n <>\r\n <NewsAndStoriesToolbar\r\n itemsCount={newsAndStories.TotalResults}\r\n itemsText={pageData.I18n.Results}\r\n >\r\n {isFilterDirty && (\r\n <Tag\r\n variant='primary'\r\n label={pageData.I18n.ResetFilters}\r\n onCloseClick={() => {\r\n resetPage();\r\n onResetFilter();\r\n }}\r\n />\r\n )}\r\n </NewsAndStoriesToolbar>\r\n {isLoadingNewsAndStories && !isLoadingNewPage ? (\r\n <LoadingSpinner />\r\n ) : (\r\n <>\r\n {newsAndStories.Items.length === 0 ? (\r\n <div className='news-and-stories-not-found'>\r\n <p className='font-light-md-lh-150'>{pageData.I18n.NoResultFound}</p>\r\n </div>\r\n ) : (\r\n <>\r\n <NewsAndStoriesList\r\n items={newsAndStories.Items}\r\n topics={{\r\n position: pageData.PositionofTopics,\r\n title: pageData.I18n.TitleofTopics,\r\n items: newsAndStories.Topics,\r\n }}\r\n />\r\n <ShowMoreBtn\r\n text={pageData.I18n.ShowMore}\r\n onClick={onNextPage}\r\n showBtn={!isLoadingNewsAndStories && newsAndStories.HasNextPage}\r\n showingCountText={\r\n !isLoadingNewPage && !isLoadingNewsAndStories\r\n ? interpolateString(\r\n pageData.I18n.NewsListPageShowMore,\r\n newsAndStories.ItemsCount.toString(),\r\n newsAndStories.TotalResults.toString()\r\n )\r\n : ''\r\n }\r\n />\r\n </>\r\n )}\r\n </>\r\n )}\r\n\r\n {isLoadingNewPage && <LoadingSpinner />}\r\n </>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default NewsAndStoriesPage;\r\n","import NewsRoom from './NewsAndStories';\r\nexport default NewsRoom;\r\n","export const Breadcrumb = {\r\n fetchBreadcrumb: '/webapi/Breadcrumb/Get',\r\n};\r\n\r\nexport const Footer = {\r\n fetchFooter: '/api/footer',\r\n};\r\n\r\nexport const CountrySelector = {\r\n fetchCountrySelectList: '/webapi/CountrySelector/Get',\r\n};\r\n\r\nexport const RelatedTabs = {\r\n fetchRelatedTabs: '/webapi/RelatedTabs/Get',\r\n relatedTabs: '/webapi/RelatedTabs/GetTabs', // NOT IN USE\r\n};\r\n\r\nexport const Search = {\r\n doSearch: '/webapi/SearchApi/SearchFor',\r\n doSearchAutocomplete: '/webapi/SearchApi/GetAutocomplete',\r\n};\r\n\r\nexport const NewsAndStories = {\r\n fetchNewsAndStoriesData: '/webapi/NewsListingApi/GetNewsListItems',\r\n fetchNews: '/webapi/NewsListingApi/GetNewsList',\r\n fetchStories: '/webapi/StoriesList/Get',\r\n};\r\n\r\nexport const Webinars = {\r\n fetchWebinarBanner: '/webapi/WebinarLandingPage/Get',\r\n fetchWebinarList: '/webapi/WebinarPage/Get',\r\n};\r\n\r\nexport const Header = {\r\n fetchHeader: '/webapi/Header/Get', //NOT IN USE\r\n fetchSubNavigation: '/webapi/SubNavigation/Get',\r\n fetchMegaMenuNavigation: '/api/mainmenu',\r\n fetchGeolocation: '/api/Geolocation',\r\n fetchTopMenu: '/api/TopNavigation/',\r\n fetchMegaMenuColumn: '/webapi/menuitems/columns',\r\n};\r\n\r\nexport const Stories = {\r\n fetchStories: '/webapi/StoriesList/Get',\r\n};\r\n\r\nexport const News = {\r\n fetchNews: '/webapi/NewsListPage/Get',\r\n};\r\n\r\nexport const Vacancies = {\r\n fetchVacancies: '/webapi/Vacancy/Get', // NOT IN USE\r\n};\r\n\r\nexport const Webshop = {\r\n fetchWebshop: '/webapi/WebShop/Get', // NOT IN USE\r\n};\r\n\r\nexport const ContactUs = {\r\n fetchContactUsForm: '/webapi/ContactUsForm/GetForm',\r\n fetchFindOfficeData: '/webapi/CountriesCategories/Get',\r\n fetchEnquiryForm: '/webapi/contactus/getenquiryform',\r\n fetchEnquirySerialLinkData: '/webapi/contactus/GetModalPopUp',\r\n submitEnquiryForm: '/Quote/ProcessForm',\r\n fetchEnquiryApplicationList: '/webapi/contactus/GetIndustryApplication',\r\n};\r\n\r\nexport const InvestorRelations = {\r\n fetchPressReleaseFilterData: '/api/v1/ir/pressrelease',\r\n fetchInvestorRelationsNews: '/api/v1/ir/news',\r\n fetchInvestorRelationsPage: '/api/v1/ir/page2',\r\n fetchInvestorRelationsMenu: '/api/v1/ir/menu2',\r\n makeSubscription: '//publish.ne.cision.com/Subscription/SubscribeWithCaptcha',\r\n};\r\n\r\nexport const CoolCalc = {\r\n getCoolCalc: '/webapi/CoolCalc/Get', // NOT IN USE\r\n shareCoolCalc: '/webapi/CoolCalc/Save',\r\n};\r\n\r\nexport const Hexpert = {\r\n fetchHexpertPage: '/api/v1/hex/page',\r\n getAntiForgeryToken: '/api/v1/hex/GetAntiForgery',\r\n submitHexpertForm: '/EPiServer.Forms/DataSubmit/Submit',\r\n createHexpertPdf: '/api/v1/hex/CreatePdf',\r\n getIsMatchingProducts: '/api/v1/hex/IsMatchingProduct',\r\n getHexpertResult: '/api/v1/hex/GetResult',\r\n mailResult: '/api/v1/hex/SendMail',\r\n};\r\n\r\nexport const SafetyDatasheet = {\r\n fetchSafetyDatasheet: '/webapi/SafetyDataSheet/GetSafetyDataSheetResult',\r\n};\r\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","includes","key","call","join","module","exports","default","define","window","Profile","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","r","d","IconContainer","icon","className","Facebook","Twitter","x","y","ExternalLink","id","Arrow","rotate","style","transformBox","transformOrigin","transform","Cross","Delete","EmailSvg","PhoneSvg","fillRule","clipRule","Button","text","onClick","href","size","disabled","color","border","children","type","props","tag","createElement","target","Input","forwardRef","label","name","placeholder","required","defaultValue","value","ref","LoadingSpinner","src","alt","CategoryList","sub","selectableTitle","onClickSelectableTitle","onSelect","defaultTitle","list","map","item","index","SubCategoriesList","backLabel","onClickBack","Select","resetTime","selectFunction","title","isShowing","setIsShowing","useState","selectedCategory","setSelectedCategory","selectedCategoryItem","setSelectedCategoryItem","doReset","reset","setReset","useEffect","useReset","selectRef","useRef","useOutsideClick","htmlFor","category","SimpleSelect","listItems","useMemo","getComputerName","str","replace","toLowerCase","truncateString","limit","truncated","substring","interpolateString","args","interpolatedString","forEach","handler","handleClick","e","current","contains","document","addEventListener","removeEventListener","Heading","state","headline","intro","showButton","buttonLabel","buttonLink","getItemFromList","subListItem","Id","getItemFromSubList","subListName","filter","at","shouldDefaultOpenFilter","searchString","advancedFilters","values","some","Boolean","useUpdateEffect","effect","deps","isFirstMount","NewsAndStoriesFilter","i18n","resetCount","categories","countries","years","industries","onChange","isDefaultOpen","selectorTitles","setSearchString","isAdvancedFilterOpen","setIsAdvancedFilterOpen","isKeywordsDirty","setIsKeywordsDirty","yearsListFormatted","Name","AllYears","year","categoriesTitle","industriesTitle","industry","countriesTitle","country","yearsTitle","I","Keywords","onKeyDown","HideAdvancedFilters","AdvancedFilters","Type","undefined","AllIndustries","Industry","Back","AllCountries","Location","Year","newsApi","apiSlice","addTagTypes","injectEndpoints","endpoints","build","fetchNewsAndStoriesPageData","query","url","params","lang","pageId","transformResponse","response","Description","Decsription","I18n","entries","All","AllType","TypeList","YearsList","YearList","fetchNewsAndStories","pageSize","page","Topics","HasNextPage","NewsListingItems","TotalResults","Items","ItemsCount","Industries","Countries","serializeQueryArgs","endpointName","merge","incoming","meta","incomingItems","isTopics","isNewsAndStoriesTopicsBlock","itemsCount","overrideExisting","useFetchNewsAndStoriesPageDataQuery","useLazyFetchNewsAndStoriesQuery","NewsBlock","Key","Image","ImageUrl","Topic","TopicUrl","Title","PublishDate","imagePosition","loading","Date","toLocaleDateString","month","day","data","noBackground","Url","NewsAndStoriesList","items","topics","moreItemsThanTopicPosition","position","ContentLink","TopicName","Introduction","DEFAULT_FILTER","ShowMoreBtn","showBtn","showingCountText","NewsAndStoriesToolbar","itemsText","Tag","onCloseClick","variant","defaultFilter","URL","location","searchParams","get","getFiltersFromURL","pageData","isLoading","isLoadingPage","isLoadingNewPage","setIsLoadingNewPage","doFetchNewsAndStories","newsAndStories","isFetching","isLoadingNewsAndStories","fetchFilteredNews","keyword","onNextPage","resetPage","setPage","prev","useNewsAndStoriesPagination","isFilterDirty","onResetFilter","setFilterValue","setFilter","setResetCount","JSON","stringify","useNewsAndStoriesFilter","PageSize","f","history","pushState","setURLfromFilters","unwrap","then","isInitialLoading","Results","ResetFilters","NoResultFound","PositionofTopics","TitleofTopics","ShowMore","NewsListPageShowMore","Breadcrumb","fetchBreadcrumb","Footer","fetchFooter","CountrySelector","fetchCountrySelectList","RelatedTabs","fetchRelatedTabs","relatedTabs","Search","doSearch","doSearchAutocomplete","NewsAndStories","fetchNewsAndStoriesData","fetchNews","fetchStories","Webinars","fetchWebinarBanner","fetchWebinarList","Header","fetchHeader","fetchSubNavigation","fetchMegaMenuNavigation","fetchGeolocation","fetchTopMenu","fetchMegaMenuColumn","Stories","News","ContactUs","fetchContactUsForm","fetchFindOfficeData","fetchEnquiryForm","fetchEnquirySerialLinkData","submitEnquiryForm","fetchEnquiryApplicationList","InvestorRelations","fetchPressReleaseFilterData","fetchInvestorRelationsNews","fetchInvestorRelationsPage","fetchInvestorRelationsMenu","makeSubscription","CoolCalc","getCoolCalc","shareCoolCalc","Hexpert","fetchHexpertPage","getAntiForgeryToken","submitHexpertForm","createHexpertPdf","getIsMatchingProducts","getHexpertResult","mailResult","SafetyDatasheet","fetchSafetyDatasheet"],"sourceRoot":""}