{"version":3,"file":"contactUs.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,iHCGD,MCRawB,EAAY,CAACC,QDgCV,EACdC,SACAC,QACAC,UACAC,yBAAyB,eACzBC,WACAC,MACAC,YACAC,MACAC,UACAC,UACAC,cAEA,MAAMC,EAAU,yBACVC,EAAU,yBACVC,EAAsB,4BAErBC,EAAUC,IAAe,IAAAC,YAAoBhB,IAC9C,UAAEiB,IAAc,UAChBC,GAAYD,GAElB,IAAAE,YAAU,KAGR,GAFAC,IAEIH,EAEF,OADApB,OAAOwB,iBAAiB,SAAUD,GAC3B,KACLvB,OAAOyB,oBAAoB,SAAUF,EAAmB,IAG3D,IAEH,MAiBMA,EAAqB,KACzB,MAAMG,EAAgBC,SAASC,cAAc,GAAGtB,KAA0BQ,KACpEe,EAAgBF,SAASC,cAAc,GAAGtB,KAA0BS,KACtEf,OAAO8B,WAAa,KAAOJ,GAAiBG,IAC9CH,EAAcK,UAAUC,IAAIhB,GAC5Ba,EAAcE,UAAUC,IAAIhB,KAK1BiB,EAAsB,KAC1B,MAAMP,EAAgBC,SAASC,cAAc,GAAGtB,KAA0BQ,KACpEe,EAAgBF,SAASC,cAAc,GAAGtB,KAA0BS,KACtEf,OAAO8B,WAAa,KAAOJ,GAAiBG,IAC9CH,EAAcK,UAAUG,OAAOlB,GAC/Ba,EAAcE,UAAUG,OAAOlB,GAC/BE,GAAY,KAIViB,EAAgB1B,GAAaY,EAAyC,GAA7B,2BAE/C,OACE,uBAAKZ,UAAU,4BACb,uBACEJ,QAAS,IA1CK,CAACG,IAER,GAATJ,GACAuB,SACGC,cAAc,GAAGtB,KAA0BQ,KAC3CiB,UAAUK,SAASpB,GAGtBiB,IAEAf,GAAaD,GAGXZ,GAASA,EAAQG,EAAI,EA6BN6B,CAAY7B,GAC3BC,UAAW,IACT,yBAAyBA,IACzB,UAAUD,EAAI8B,KACdH,GAAe,GACflB,EAAW,2BAA6B,GACxCL,EAAU,8BAAgC,KAG5C,uBAAKH,UAAU,4CACZI,GACC,uBACEJ,UAAU,mCACV8B,MAAO,CAAEC,WAAY,OAAO7B,kBAGhC,sBAAIF,UAAU,+BACH,OAARC,EACC,qBAAG+B,KAAM/B,GACP,wBAAML,QAAUqC,GAAUA,EAAMC,mBAAoBnC,EAAIoC,OAG1DpC,EAAQ,SAGRC,GAAaY,IACf,qBAAGZ,UAAU,+DAInB,uBACEA,UAAW,yBAAyB0B,KAClClB,EAAW,2BAA6B,MAGzCV,GAGN,EChJgCsC,UDQjB,EAAGpC,YAAWF,cACvB,uBAAKE,UAAW,oBAAoBA,KAAcF,wGEKpD,MAAMuC,EAAS,EACpBC,OACAtC,YAAY,GACZJ,UAAU,SACVoC,OACAO,OAAO,SACPC,YAAW,EACXC,QAAQ,UACRC,UAAS,EACT5C,WACA6C,UACGC,MAEH,MAAMC,EAAMb,EAAO,IAAM,SAEzB,OAAO,IAAAc,eACLD,EACA,CACEjD,UACAI,UACE,IAAW,WAAY,CACrB,QAAkB,OAATuC,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,IACA1C,EACFgC,UACY,MAARa,GAAe,CAAEE,OAAQ,UAC7BJ,UACGC,GAEL,CAACN,EAAMxC,GACR,mFC3CI,MAAMkD,GAAQ,IAAAC,aACnB,EAEIN,OAAO,OACPO,QACAf,OACAgB,cACAC,WACApD,YAAY,GACZqD,eAAe,GACfC,WACGV,GAELW,IAGE,yBAAOvD,UAAW,WAAaA,GAC5BkD,GAAS,wBAAMlD,UAAU,iBAAiB,GAAGkD,KAASE,EAAW,IAAM,MACxE,yBACEG,IAAKA,EACLZ,KAAMA,EACNR,KAAMA,EACNN,GAAIM,EACJgB,YAAaA,EACbnD,UAAU,gBACVqD,aAAcA,EACdC,MAAOA,KACHV,kGC3BP,MAAMY,EAAe,EAC1BrB,OACAsB,MACAC,kBACAC,yBACAC,WACAC,eACAC,UAGE,2BACE,sBAAI9E,KAAM,EAAGY,QAAS+D,EAAwB3D,UAAW0D,EAAkB,GAAK,YAC7EG,MAECC,EAAKC,KAAI,CAACC,EAAMrE,IAClB,sBAAIX,IAAKW,EAAOC,QAAS,IAAMgE,EAASI,EAAKP,KAC3C,4BAAOO,EAAK7B,IACZ,qBAAGnC,UAAU,yBCnBViE,EAAoB,EAC/B9B,OACA+B,YACAC,cACAL,OACAF,cAGE,2BACE,sBAAIhE,QAASuE,EAAanF,KAAM,GAC9B,4BACE,qBAAGgB,UAAU,oBACZkE,GAAa,YAGdJ,EAAKC,KAAI,CAACC,EAAMrE,IAClB,sBAAIX,IAAKW,EAAOC,QAAS,IAAMgE,EAASI,IACrCA,EAAK7B,qBCCT,MAAMiC,EAAS,EACpBjC,OACAsB,MACAY,YACAC,iBACAT,eACAH,kBACAN,YAAW,EACXmB,QACAT,OACAZ,QAAQ,GACRgB,gBAEA,MAAOM,EAAWC,IAAgB,IAAA/D,WAAkB,IAC7CgE,EAAkBC,IAAuB,IAAAjE,UAAuB,OAChEkE,EAAsBC,IAA2B,IAAAnE,UAAqB,MAEvEoE,EAAU,KACdL,GAAa,GACbE,EAAoB,MACpBE,EAAwB,KAAK,EC/CT,EAACR,EAA0BS,KACjD,MAAOC,EAAOC,IAAY,IAAAtE,UAAiB2D,IAE3C,IAAAxD,YAAU,KACJwD,GAAaA,IAAcU,IAC7BD,IACAE,EAASX,MAEV,CAACA,GAAW,ED0CfY,CAASZ,EAAWS,IAEpB,IAAAjE,YAAU,KACRiE,GAAS,GACR,CAAChB,IAEJ,MAAMoB,GAAY,IAAAC,QAAuB,OAIzC,EAAAC,EAAA,GAAgBF,GAHW,KACzBT,GAAa,EAAM,IA8BrB,OACE,uBAAKlB,IAAK2B,EAAWlF,UAAU,YAC5BkD,GACC,yBAAOmC,SAAS,QAAgBnC,IAC7BA,EACAE,GAAY,MAIjB,uBAAKpD,UAAU,YACb,uBAAKA,UAAU,mBAAkB,aAAY,QAAgBkD,GAAQtD,QApCvD,KAClB6E,GAAcD,EAAU,GAoClB,4BAAOI,EAAuBA,EAAqBzC,GAAQoC,GAC3D,qBAAGvE,UAAU,qBAEdwE,GACC,uBAAKxE,UAAU,iBACb,0BACI0E,EAWA,gBAACT,EAAiB,CAChB9B,KAAMA,EACN2B,KAAMY,EACNR,UAAWA,EACXC,YApCH,KACXQ,EAAoB,KAAK,EAoCXf,SAnDYI,IAC1BM,EAAeN,GACfa,EAAwBb,GACxBS,GAAa,GACbE,EAAoB,KAAK,IAgCb,gBAACnB,EAAY,CACXrB,KAAMA,EACNsB,IAAKA,EACLK,KAAMA,EACNF,SA5CQ0B,IACtBX,EAAoBW,EAAS,EA4Cf5B,gBAAiBA,EACjBC,uBAnCe,KACzBD,IACFY,EAAe,MACfQ,MAiCYjB,aAAcA,OAgB7B,uGEpHI,MAAM0B,EAAe,EAC1B/C,YAAW,EACX8B,iBACAR,OACA3B,OACAe,QACAE,YAAW,EACXmB,YAEA,MAAOC,EAAWC,IAAgB,IAAA/D,WAAS,GAErCwE,GAAY,IAAAC,QAAO,OAIzB,EAAAC,EAAA,GAAgBF,GAHW,KACzBT,GAAa,EAAM,IAIrB,MAWMe,GAAY,IAAAC,UAAQ,IACjB3B,EACHA,EAAKC,KAAI,CAACC,EAAMhF,IACd,sBAAIA,IAAKA,EAAKY,QAAS,IARd,CAACoE,IAChBM,EAAeN,GACfS,GAAa,EAAM,EAMgBb,CAASI,IACnC7B,EAAO6B,EAAK7B,GAAQ6B,KAGzB,IACH,CAACF,EAAM3B,IAEV,OACE,uBAAKoB,IAAK2B,EAAWlF,UAAWwC,EAAW,2BAA6B,mBACrEU,GACC,yBAAOmC,SAAS,QAAgBnC,IAC7BA,EACAE,GAAY,MAGjB,uBAAKpD,UAAU,WAAU,aAAY,QAAgBkD,IACnD,uBAAKlD,UAAU,0BAA0BJ,QA9B3B,KACb4C,GACHiC,GAAcD,KA6BV,4BAAOD,GACP,qBAAGvE,UAAU,qBAEdwE,GACC,uBAAKxE,UAAU,wBACb,0BAAKwF,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,EAAKsB,KACjByG,EAAqBA,EAAmBR,QAAQ,IAAIjG,KAAUtB,EAAI,IAE7D+H,CAAkB,mFCrBpB,MAAMhB,EAAkB,CAC7B7B,EACA+C,KAEO,IAAAzF,YAAU,KACf,MAAMe,EAAe2E,IACfhD,EAAIiD,UAAYjD,EAAIiD,QAAQ7E,SAAS4E,EAAExD,SACzCuD,EAAQC,IAOZ,OAHArF,SAASH,iBAAiB,YAAaa,GACvCV,SAASH,iBAAiB,aAAca,GAEjC,KACLV,SAASF,oBAAoB,YAAaY,GAC1CV,SAASF,oBAAoB,aAAcY,EAAY,CACxD,GACA,CAAC2B,EAAK+C,sHCNX,MAAMG,EAAe,oBAAyB,CAC5CC,UAAYC,IAAU,CACpBC,oBAAqBD,EAAME,MAA8C,CACvEA,MAAO,EAAGC,YAAWC,mBAAmB,CACtC9G,IAAK,yBACL+G,OAAQ,CACNC,KAAM1H,OAAO0H,KACbH,UAAWA,GAAa,IACxBC,aAAcA,GAAgB,OAIpCG,mBAAoBP,EAAME,MAAsD,CAC9EA,MAAQG,IAAW,CACjB/G,IAAK,wBACL+G,OAAQ,CACNC,KAAM1H,OAAO0H,KACbE,OAAQ5H,OAAO4H,OACfxE,KAAMqE,EAASA,EAAOrE,KAAO,gBAC7BmE,UAAWE,GAAUA,EAAOF,UAAYE,EAAOF,UAAY,SAKnEM,kBAAkB,KAGP,2BAAEC,EAA0B,gCAAEC,GAAoCb,sIC5BxE,MAAMc,EAAc,EACzBhD,QACAiD,UACAC,cACAC,aACAC,eAEA,MAAMC,EAAW,KACfC,EAAA,OAAe,iBAAkB,CAC/BC,aAAcN,IAGhB,MACMO,EADM,IAAIC,IAAIzI,OAAO0I,SAASrJ,YACjBsJ,OAASP,EAE5BQ,aAAaC,QAAQ,oBAAqB7I,OAAO4H,QACjDgB,aAAaC,QAAQ,qBAAsB7I,OAAO0I,SAASjG,MAC3DmG,aAAaC,QAAQ,gBAAiB7I,OAAO0I,SAASjG,MACtDzC,OAAO8I,QAAQC,UAAU,CAAC,EAAG,KAAMP,GACnCxI,OAAO8I,QAAQE,IAAI,EAErB,OACE,uBAAKvI,UAAU,qDACb,uBAAKA,UAAU,gCACb,0BACE,wBAAMA,UAAU,yBACd,qBAAGA,UAAU,mBAAmBJ,QAASgI,KAE1CrD,GAEH,yBAAIkD,IAEN,uBAAKzH,UAAU,oCACb,gBAACqC,EAAA,EAAM,CAACI,MAAM,UAAU7C,QAASgI,EAAUtF,KAAMoF,EAAYnF,KAAK,WAGvE,ECtCUiG,EAAkB,EAC7BC,gBACAC,aACAC,6BACAC,iBAGE,uBAAK5I,UAAU,iBACZ4I,GAAe/J,OAAOgK,QAAQJ,GAAe1E,KAAI,EAAE/E,EAAKsE,MACvD,MAAMwF,EAAa9J,EAAMA,EAAI+J,MAAM,KAAO,GAC1C,GAAqB,eAAjBD,EAAW,IAAuBxF,GAAS9E,MAAMC,QAAQ6E,GAC3D,OACE,uBAAKtE,IAAKA,EAAKgB,UAAU,iCACvB,uBAAKA,UAAU,0BACb,yBAAI8I,EAAaA,EAAW,GAAK,IAChCxF,EAAMlF,QAAU,GAAK,yBAAIkF,EAAM,GAAG0F,aAEpC1F,EAAMlF,OAAS,GACd,uBAAK4B,UAAU,yBACZsD,EAAMS,KAAI,CAACwC,EAAG5G,IACT4G,EAEA,uBAAKvG,UAAU,6BAA6BhB,IAAKW,GAC9C2D,EAAMlF,OAAS,GACd,gCACE,yBAAImI,EAAEyC,aAGV,uBAAKhJ,UAAU,cAAchB,IAAKW,EAAMf,YACtC,yBAAI2H,EAAE0C,UACN,yBAAI1C,EAAE2C,UACN,yBAAI3C,EAAE4C,UACL5C,EAAE6C,QAAU,yBAAI7C,EAAE6C,QAClB7C,EAAE8C,MAAQ,yBAAI9C,EAAE8C,MAChB9C,EAAE+C,OAAS,yBAAI/C,EAAE+C,OACjB/C,EAAEgD,aAAwC,KAAzBhD,EAAEgD,YAAYC,QAC9B,yBACGjD,EAAEkD,YAAc,4BAAOlD,EAAEkD,iBAC1B,qBAAGzH,KAAM,OAASuE,EAAEgD,aAAchD,EAAEgD,cAGvChD,EAAEmD,KAAgB,IAATnD,EAAEmD,KACV,yBACGnD,EAAEoD,cAAYpD,EAAEmD,KAGpBnD,EAAEqD,cAA0C,KAA1BrD,EAAEqD,aAAaJ,QAChC,yBACGjD,EAAEsD,YAAc,4BAAOtD,EAAEsD,iBAC1B,qBAAG7H,KAAM,UAAYuE,EAAEqD,cAAerD,EAAEqD,gBAI9C,4BAIC,YAQrB,qBAAG5J,UAAU,yBAAyBJ,QAAS+I,GAC5CD,EAAWoB,0BAEd,2BACA,sBAAI9J,UAAU,iBAAiB0I,EAAWqB,eAC1C,qBAAG/J,UAAU,uBAAuB0I,EAAWsB,oBAC/C,2BACA,qBAAGhI,KAAM0G,EAAWuB,YAAalH,OAAO,SAASmH,IAAI,cACnD,wBAAMlK,UAAU,0BAA0B0I,EAAWyB,2BC1EhDC,EAAoB,EAC/B3B,gBACAC,aACAC,gCAGE,gCACG9J,OAAOgK,QAAQJ,IAAgB1E,KAAI,EAAE/E,EAAKsE,MACzC,MAAMwF,EAAa9J,EAAMA,EAAI+J,MAAM,KAAO,GAC1C,GAA6B,eAAzBD,EAAW,IAAIU,QAA2BlG,GAAS9E,MAAMC,QAAQ6E,GACnE,OACE,uBAAKtE,IAAKA,EAAKgB,UAAU,iCACvB,qBAAGA,UAAU,uCAAuC8I,EAAaA,EAAW,GAAK,IAChFxF,EAAMlF,OAAS,GACd,uBAAK4B,UAAU,yBACZsD,EAAMS,KAAI,CAACwC,EAAG5G,IACT4G,EAEA,uBAAKvG,UAAU,6BAA6BhB,IAAKW,GAC/C,uBAAKK,UAAU,0BACb,yBAAIuG,EAAEyC,aAER,uBAAKhJ,UAAU,cAAchB,IAAKW,EAAMf,YACtC,yBAAI2H,EAAE0C,UACN,yBAAI1C,EAAE2C,UACN,yBAAI3C,EAAE4C,UACL5C,EAAE6C,QAAU,yBAAI7C,EAAE6C,QAClB7C,EAAE8C,MAAQ,yBAAI9C,EAAE8C,MAChB9C,EAAE+C,OAAS,yBAAI/C,EAAE+C,OACjB/C,EAAEgD,aAAwC,KAAzBhD,EAAEgD,YAAYC,QAC9B,yBACGjD,EAAEkD,YAAc,4BAAOlD,EAAEkD,iBAC1B,qBAAGzH,KAAM,OAASuE,EAAEgD,aAAchD,EAAEgD,cAGvChD,EAAEmD,KAAgB,IAATnD,EAAEmD,KACV,yBACGnD,EAAEoD,cAAYpD,EAAEmD,KAGpBnD,EAAEqD,cAA0C,KAA1BrD,EAAEqD,aAAaJ,QAChC,yBACGjD,EAAEsD,YAAc,4BAAOtD,EAAEsD,iBAC1B,qBAAG7H,KAAM,UAAYuE,EAAEqD,cAAerD,EAAEqD,iBAO7C,YAQrB,uBAAK5J,UAAU,0BACb,qBAAGA,UAAU,yBAAyBJ,QAAS+I,GAC5CD,EAAWoB,0BAEd,2BACA,sBAAI9J,UAAU,iBAAiB0I,EAAWqB,eAC1C,qBAAG/J,UAAU,uBAAuB0I,EAAWsB,oBAC/C,2BACA,qBAAGhI,KAAM0G,EAAWuB,YAAalH,OAAO,SAASmH,IAAI,cACnD,wBAAMlK,UAAU,0BAA0B0I,EAAWyB,4BCpElDE,EAAsB,CAACvD,EAAmBwD,EAAmBjH,KACxE,IAAIkH,EAAc,GASlB,OARAD,GAASjE,SAASmE,IAChBA,EAAOC,WAAWpE,SAASqE,IACrBA,GAASC,IAAM7D,IACjByD,EAAcG,EAAQE,QAExB,IAGkB,IAAfL,EAAoBA,EAAclH,CAAY,0BChBhD,MAyDDwH,EAAuB5K,IAC3B,MAAM6G,EAAY7G,EAAI6K,aAAaC,IAAI,aACvC,OAAOjE,GAA0B,IAAbA,EACH,QAAbA,EACE,OACAA,EACFvH,OAAOuH,SAAS,EAGhBkE,EAAsB/K,GACLA,EAAI6K,aAAaC,IAAI,iBACnB,IAGZE,EAAqB,CAChClE,EACAmE,EAAU,GACV7H,EACA8H,KAEA,IAAIC,EAAa,GAMjB,OALAF,EAAQ7E,SAASgF,IACXA,EAAOV,IAAM5D,IACfqE,EAAaC,EAAOT,SAGH,IAAdQ,EAAmBA,EAA6B,MAAhBrE,EAAuBoE,EAAS9H,CAAY,0BCkFrF,MApJwB,KACtB,MAAMiI,EDMyB,MAC/B,MAAMrL,EAAM,IAAI+H,IAAIzI,OAAO0I,SAASrJ,YACpC,IAAI2M,EAAUtL,EAAI6K,aAAaC,IAAI,WAEnC,OADe,MAAXQ,GAA8B,QAAXA,IAAmBA,EAAU,IAC7C,CACLzE,UAAW+D,EAAoB5K,GAC/B8G,aAAciE,EAAmB/K,GACjCsL,UACAC,SAAUvL,EAAI6K,aAAaC,IAAI,YAChC,ECfsBU,IAChBC,EAASC,IAAc,IAAAjL,UAAS,CACrCoG,UAAWwE,EAAexE,WAAavH,OAAOuH,UAC9CC,aAAcuE,EAAevE,cAAgB,IAC7CwE,QAASD,EAAeC,SAAW,GACnCC,UAAU,KAGJI,KAAMC,IAAkB,UACzBjF,GAAuBgF,KAAME,KAAoB,UACjDC,EAAgBC,IAAqB,IAAAtL,UAAsB,OAC3DuL,EAAiBC,IAAsB,IAAAxL,UAAsB,MAE9DyL,EAAON,GAAeO,KAE5B,IAAAvL,YAAU,KACR+F,EAAoB,CAClBE,WAAY4E,EAAQ5E,UACpBC,cAAe2E,EAAQ3E,eACtBsF,MAAK,EAAGT,KAAME,MACfI,EDF4B,EAACrK,EAAYiC,EAAqBwI,KAClE,IAAIC,EAAa,KAQjB,OANAzI,GAAMuC,SAASrC,IACbA,EAAKsI,IAAcjG,SAASmG,IACtBC,SAASD,GAAa7B,MAAQ8B,SAAS5K,KAAK0K,EAAaC,EAAW,GACxE,IAGGD,CAAU,ECNXG,CAAmBhB,EAAQ5E,UAAWgF,EAAea,QAAS,cAEhEX,EDOyB,EAACnK,EAAYiC,KAC1C,IAAIyI,EAAa,KAKjB,OAHAzI,EAAKuC,SAASrC,IACRyI,SAASzI,EAAK2G,MAAQ8B,SAAS5K,KAAK0K,EAAavI,EAAI,IAEpDuI,CAAU,ECZXK,CAAgBlB,EAAQ3E,aAAanI,WAAYkN,EAAee,YACjE,GACD,GACD,IAuDH,OAAOV,GAAQL,EACb,uBAAK9L,UAAU,mBACb,gBAACoE,EAAA,EAAM,CACLlB,MAAOiJ,EAAKW,cACZvI,MAAO8F,EAAoBqB,EAAQ5E,UAAWgF,EAAea,QAASR,EAAKY,eAC3ElJ,aAAcsI,EAAKY,cACnBrJ,iBAAiB,EACjBI,KAAMgI,EAAea,QACrBxK,KAAK,OACLsB,IAAI,YACJa,eA7CiBoG,IACrB,MAAM5D,EAAY4D,EAAUA,EAAQC,GAAKpL,OAAOuH,UAChDoF,EAAmBxB,GACnBiB,EAAW,IAAKD,EAAS5E,YAAWyE,QAAS,KAE7C3E,EAAoB,CAClBE,WAAYA,EACZC,cAAe2E,EAAQ3E,cACvB,EAsCE7C,UAAWiI,EAAKa,OAGlB,gBAACzH,EAAA,EAAY,CACXrC,MAAOiJ,EAAKc,cACZ1I,MAAO0G,EACLS,EAAQ3E,aACR+E,EAAee,WACfV,EAAKe,IACL,UAEFpJ,KAAM,CACJ,CACE6G,GAAI,IACJC,KAAMuB,EAAKe,QAEVpB,EAAee,YAEpB1K,KAAK,OACLmC,eAnFgBwE,IACpB,MAAMqE,EAAgBrE,GAAY6B,IAAM,EACxCqB,EAAkBlD,GAClB6C,EAAW,IACND,EACH3E,aAAcoG,EAAcvO,aAG9BgI,EAAoB,CAClBE,WAAY4E,EAAQ5E,UACpBC,cAAeoG,GACf,IA6ECrB,EAAesB,UAAYtB,EAAesB,SAAShP,OAAS,EAC3D,gBAACmH,EAAA,EAAY,CACXrC,MAAOiJ,EAAKkB,QACZ9I,MAAOmH,EAAQH,QACfzH,KAAMgI,EAAesB,SACrBjL,KAAK,OACLmC,eAhFegJ,IACrB3B,EAAW,IAAKD,EAASH,QAAS+B,EAAK1C,MAAO,IAkF1C,gBAAC5H,EAAAuK,EAAK,CACJrK,MAAOiJ,EAAKkB,QACZ1K,KAAK,OACLR,KAAK,UACLkB,aAAcqI,EAAQH,QACtBiC,SAAWjH,GACToF,EAAW,IAAKD,EAASH,QAAShF,EAAExD,OAAOO,UAKjD,gBAACjB,EAAA,EAAM,CACLzC,QAhFuB2G,IAC3BA,EAAEkH,iBAEF,MAAMC,EACJzB,GAAiBrB,MAA+B,MAAtBc,EAAQ5E,WAAqBqF,EAAKY,eAAkB,GAC1EY,EACJ5B,GAAgBnB,MAAkC,MAAzBc,EAAQ3E,cAAwBoF,EAAKe,KAAQ,GAElEU,EAAiB,IAClBlC,EACHF,UAAU,EACVD,QAA6B,KAApBG,EAAQH,QAAiB,KAAOG,EAAQH,SAGnDI,EAAWiC,GD1FkB,CAACC,IAUhC,MAAM5N,EAAW,IAAI+H,IAAIzI,OAAO0I,SAASrJ,YACzCqB,EAAI6K,aAAagD,IAAI,YAAaD,EAAEnD,SAAWmD,EAAE/G,WACjD7G,EAAI6K,aAAagD,IAAI,eAAgBD,EAAE/E,YAAc+E,EAAE9G,cACvD9G,EAAI6K,aAAagD,IAAI,UAAWD,EAAEtC,SAClCtL,EAAI6K,aAAagD,IAAI,WAAYD,EAAErC,UAEnC3D,EAAA,OAAe,sBAAuB,CACpCkG,qBAAsBF,EAAEtD,YACxByD,kBAAmBH,EAAEzC,aAGvB7L,OAAO0I,SAAWhI,CAAG,ECsEnBgO,CAAkB,IACbL,EACHrD,YAAamD,EACbtC,WAAYuC,IAEdxF,aAAaC,QAAQ,gBAAiB,OAAO,EA6DzC3F,MAAM,UACNF,KAAK,QACLD,KAAM6J,EAAK+B,mBAGb,IAAI,sBCnKV,MAAMC,EAAoB,EAAG5J,QAAOjB,WAC7BA,GAA0B,KAAjBA,EAAMkG,OAKlB,qBAAGxJ,UAAU,yBACX,wBAAMA,UAAU,YACbuE,OAASjB,IANP,KAYE,EAAc,EAAG+H,YAC5B,uBAAKrL,UAAU,4BACb,qBAAGA,UAAU,uBAAuBqL,EAAOrC,YAC3C,gBAACmF,EAAiB,CAAC5J,MAAM,WAAWjB,MAAO+H,EAAOpC,WAClD,gBAACkF,EAAiB,CAAC5J,MAAM,WAAWjB,MAAO+H,EAAOnC,WAClD,gBAACiF,EAAiB,CAAC5J,MAAM,WAAWjB,MAAO+H,EAAOlC,WAClD,wBAAMnJ,UAAU,YACbqL,EAAOjC,WAASiC,EAAOhC,MAEzBgC,EAAO9B,aAA6C,KAA9B8B,EAAO9B,YAAYC,QAC1C,qBAAGxJ,UAAU,iCACX,wBAAMA,UAAU,YAAU,WAC1B,wBAAMA,UAAU,qBACbqL,EAAO9B,YAAYR,MAAM,KAAKhF,KAAI,CAACqK,EAAalQ,IAChC,KAAfkQ,EAAI5E,OACF,gBAAC,WAAc,CAACxK,IAAK,SAASd,KAC5B,qBAAG8D,KAAe,OAAGoM,KAAQA,GAC7B,4BAEA,SAKV,gBAACD,EAAiB,CAAC5J,MAAM,MAAMjB,MAAO+H,EAAO3B,MAC5C2B,EAAOzB,cAA+C,KAA/ByB,EAAOzB,aAAaJ,QAC1C,wBAAMxJ,UAAU,qBACP,IACP,qBAAGA,UAAU,aAAagC,KAAM,UAAYqJ,EAAOzB,cAChDyB,EAAOzB,gBClCLyE,EAAgB,EAAGzC,WAC9B,IAAKA,IAASA,EAAK0C,WAAY,OAAO,KAEtC,MAAM,SAAE1N,IAAa,UAErB,OACE,2BAASZ,UAAU,qBAChBnB,OAAOgK,QAAQ+C,EAAK0C,YAAYvK,KAAI,EAAE/E,EAAKsE,EAAQ,IAAK3D,KAEvD,IAAM2D,IAAS9E,MAAMC,QAAQ6E,GAAS,OAAO,KAC7C,MACMiB,EADavF,EAAI+J,MAAM,KACJ,GAEzB,OAAKnI,EAkBH,gBAACpB,EAAA,YAAmB,CAACR,IAAKA,EAAKgB,UAAU,cACvC,gBAACR,EAAA,UAAiB,CAChBG,OAAQX,EACRe,IAAK,CAAE8B,GAAI,EAAGM,KAAMoC,GACpBtE,IAAK,KACLE,SAAO,EACPN,uBAAuB,qBAEvBH,OAAkB,IAAVC,GAEP2D,EAAMS,KAAI,CAACsH,EAAQ1L,IAClB,uBAAKX,IAAKW,EAAOK,UAAU,0BACzB,gBAAC,EAAW,CAACqL,OAAQA,SA5B3B,uBAAKrM,IAAKA,EAAKgB,UAAU,2BACvB,uBAAKA,UAAU,2BACb,uBAAKA,UAAU,uBACb,sBAAIA,UAAU,yBAAyBuE,KAG1CjB,EAAMS,KAAI,CAACsH,EAAQ1L,IAClB,uBAAKX,IAAKW,EAAOK,UAAU,0BACzB,gBAAC,EAAW,CAACqL,OAAQA,OAyB9B,IAGN,EClDUkD,EAAa,EAAG3C,OAAM4C,kBACjC,MAAMC,EAAetG,aAAauG,QAAQ,kBAE1C,IAAA7N,YAAU,KACR,MAAM8N,EAAqBzN,SAAS0N,uBAAuB,gBACvDD,EAAmBvQ,QACrBuQ,EAAmB,GAAGE,eAAe,CAAEC,SAAU,SAAUC,MAAO,UAAW,GAC9E,IAcH,OACE,uBAAK/O,UAAU,8CACb,uBAAKA,UAAU,6CACb,qBAAGA,UAAU,wBAAwBJ,QAf5B,KACb,MACMoP,EADMzP,OAAO0I,SAASjG,KACT+G,MAAM,KACrBiG,GAA0B,QAAhBP,GACZtG,aAAa8G,WAAW,iBACxB1P,OAAO8I,QAAQC,UAAU,CAAC,EAAG,KAAM0G,EAAO,IAC1CzP,OAAO8I,QAAQE,MAEfiG,MAQI,qBAAGxO,UAAU,qBAEf,sBAAIA,UAAU,gBAAgB4L,GAAQA,EAAKsD,MAAQtD,EAAKsD,KAAKpF,0BAC7D,uBAAK9J,UAAU,oBACb,gBAAC,EAAe,OAElB,gBAACqO,EAAa,CAACzC,KAAMA,KAG1B,ECmEH,IChHA,EDSkB,KAChB,MAAMuD,GAAe,IAAAhK,QAAO,OACrByG,EAAMwD,IAAW,IAAA1O,aACjB2O,EAAgBC,IAAqB,IAAA5O,WAAS,IAC9C6O,EAAWC,IAAgB,IAAA9O,UAAS,OACpC+O,EAAoBC,IAAyB,IAAAhP,UAAS,GAgC7D,OA9BA,IAAAG,YAAU,KACR,MAAMZ,EAAM,IAAI+H,IAAIzI,OAAO0I,SAASrJ,aAChCqB,EAAI6K,aAAaC,IAAI,cAAgB9K,EAAI6K,aAAaC,IAAI,cAC5DuE,GAAkB,GAEPK,WACX,IACE,MAAMC,EAAUT,EAAa3I,SAASqJ,eAAeD,QAC/ChE,EAAOkE,KAAKC,MAAMH,EAAQhE,MAC1B2D,EAAY3D,GAAMoE,aAAepE,GAAM0C,YAAc,CAAC,EACtD2B,EAAmBpR,OAAOgK,QAAQ+C,GAAMoE,aAAepE,GAAM0C,YAAc,CAAC,GAAG4B,QACnF,CAACC,GAAQnR,EAAKsE,KAEe,gBADRtE,EAAI+J,MAAM,KAAK,IAClBS,QAA4BhL,MAAMC,QAAQ6E,GACjD6M,EAAQ7M,EAAMlF,OAEhB+R,GAET,GAEFT,EAAsBO,GACtBT,EAAaD,GACbH,EAAQxD,GACR,MAAOrF,GACP6J,QAAQC,IAAI9J,KAGhB+J,EAAM,GACL,IAGD,uBAAKtQ,UAAU,+BAA+BuD,IAAK4L,GACjD,uBAAKnP,UAAU,2BACb,uBAAKA,UAAU,2BACXqP,EAiDA,gBAACd,EAAU,CACTC,YAAa,KACXc,GAAkB,EAAM,EAE1B1D,KAAMA,IApDR,uBAAK5L,UAAU,qBACb,sBAAIA,UAAU,wBAAwB4L,GAAMsD,MAAMqB,OAClD,uBAAKvQ,UAAU,iDACb,uBAAKA,UAAU,kBACZ4L,GACCA,EAAK4E,iBAAiBzM,KAAI,CAAC0M,EAAO9Q,KAE7B8Q,EAAMC,aACL,gBAACnJ,EAAW,CACVvI,IAAKW,EACL4E,MAAOkM,EAAME,aACblJ,YAAagJ,EAAMG,mBACnBlJ,WAAY+I,EAAMI,kBAClBlJ,SAAU8I,EAAMK,gBAChBtJ,QAASiJ,EAAMM,qBAM3B,uBAAK/Q,UAAW,IAAW,cAAe,CACxC,aAAcyP,EAAqB,KAElC7D,GAAQA,EAAKsD,MACZ,gBAAC1G,EAAe,CACdC,cAAe8G,EACf3G,YAAa6G,EAAqB,EAClC9G,2BAA4B,KAC1B2G,GAAkB,EAAK,EAEzB5G,WAAYkD,EAAKsD,SAOxBtD,GAAQ6D,EAAqB,GAAK,uBAAKzP,UAAU,kCAChD,gBAACoK,EAAiB,CAChB3B,cAAe8G,EACf5G,2BAA4B,KAC1B2G,GAAkB,EAAK,EAEzB5G,WAAYkD,EAAKsD,WAehC,sZE9GI,MAAM8B,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,CACvB1L,mBAAoB,gCACpBN,oBAAqB,kCACrBiM,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/./components/Accordion/Accordion.tsx","webpack://AlfaLaval/./components/Accordion/index.ts","webpack://AlfaLaval/./components/Button/Button.tsx","webpack://AlfaLaval/./components/Input/Input.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/./pages/ContactUs/ContactUs.service.ts","webpack://AlfaLaval/./pages/ContactUs/components/ContactCard/ContactCard.tsx","webpack://AlfaLaval/./pages/ContactUs/components/ContactUsSideView/ContactUsSideView.tsx","webpack://AlfaLaval/./pages/ContactUs/components/ContactUsOfficeView/ContactUsOfficeView.tsx","webpack://AlfaLaval/./helpers/countries.ts","webpack://AlfaLaval/./pages/ContactUs/components/ContactUsFilter/ContactUsFilter.helpers.ts","webpack://AlfaLaval/./pages/ContactUs/components/ContactUsFilter/ContactUsFilter.tsx","webpack://AlfaLaval/./pages/ContactUs/components/FindOffice/components/ContactCard.tsx","webpack://AlfaLaval/./pages/ContactUs/components/FindOffice/components/SubOfficeList.tsx","webpack://AlfaLaval/./pages/ContactUs/components/FindOffice/FindOffice.tsx","webpack://AlfaLaval/./pages/ContactUs/ContactUs.tsx","webpack://AlfaLaval/./pages/ContactUs/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 { useWinSize } from '@contexts/WinSizeContext';\r\nimport classNames from 'classnames';\r\nimport React, { useState, useEffect } from 'react';\r\nimport './Accordion.scss';\r\n\r\ninterface ContainerProps {\r\n className?: string;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst Container = ({ className, children }: ContainerProps) => {\r\n return <div className={`c-accordion-tabs ${className}`}>{children}</div>;\r\n};\r\n\r\ninterface Tab {\r\n id: string | number;\r\n name: string | React.ReactNode;\r\n}\r\n\r\ninterface SectionProps {\r\n isOpen?: boolean;\r\n index?: number;\r\n // used to open first accordion of a specific block on mobile\r\n accordionBlockSelector?: string;\r\n onClick?: (tab: Tab) => void;\r\n children: React.ReactNode;\r\n tab: Tab;\r\n className?: string;\r\n url?: string | null;\r\n iconUrl?: string;\r\n hasIcon?: boolean;\r\n isLight?: boolean;\r\n}\r\n\r\nconst Section = ({\r\n isOpen,\r\n index,\r\n onClick,\r\n accordionBlockSelector = '#RelatedTabs',\r\n children,\r\n tab,\r\n className,\r\n url,\r\n iconUrl,\r\n isLight,\r\n hasIcon,\r\n}: SectionProps) => {\r\n const tabHead = '.c-accordion-tabs-head';\r\n const tabBody = '.c-accordion-tabs-body';\r\n const firstAccordionStyle = 'c-accordion-tabs-is-open';\r\n\r\n const [isOpened, setIsOpened] = useState<boolean>(!!isOpen);\r\n const { isDesktop } = useWinSize();\r\n const isMobile = !isDesktop;\r\n\r\n useEffect(() => {\r\n openFirstAccordion();\r\n\r\n if (isDesktop) {\r\n window.addEventListener('resize', openFirstAccordion);\r\n return () => {\r\n window.removeEventListener('resize', openFirstAccordion);\r\n };\r\n }\r\n }, []);\r\n\r\n const handleClick = (tab: Tab) => {\r\n const firstAccordionIsOpen =\r\n index == 0 &&\r\n document\r\n .querySelector(`${accordionBlockSelector} ${tabHead}`)\r\n .classList.contains(firstAccordionStyle);\r\n\r\n if (firstAccordionIsOpen) {\r\n closeFirstAccordion();\r\n } else {\r\n setIsOpened(!isOpened);\r\n }\r\n\r\n if (onClick) onClick(tab);\r\n };\r\n\r\n // To open 1st accordion(related tabs) by default for screens < 800 px\r\n const openFirstAccordion = () => {\r\n const accordionHead = document.querySelector(`${accordionBlockSelector} ${tabHead}`);\r\n const accordionBody = document.querySelector(`${accordionBlockSelector} ${tabBody}`);\r\n if (window.innerWidth < 800 && accordionHead && accordionBody) {\r\n accordionHead.classList.add(firstAccordionStyle);\r\n accordionBody.classList.add(firstAccordionStyle);\r\n }\r\n };\r\n\r\n // To close 1st accordion(related tabs) conditionally for screens < 800 px as state is common for all accordions\r\n const closeFirstAccordion = () => {\r\n const accordionHead = document.querySelector(`${accordionBlockSelector} ${tabHead}`);\r\n const accordionBody = document.querySelector(`${accordionBlockSelector} ${tabBody}`);\r\n if (window.innerWidth < 800 && accordionHead && accordionBody) {\r\n accordionHead.classList.remove(firstAccordionStyle);\r\n accordionBody.classList.remove(firstAccordionStyle);\r\n setIsOpened(false);\r\n }\r\n };\r\n\r\n const itemheading = !(className || isMobile) ? 'c-accordion-tabs-is-open' : '';\r\n\r\n return (\r\n <div className='c-accordion-tabs-wrapper'>\r\n <div\r\n onClick={() => handleClick(tab)}\r\n className={classNames(\r\n `c-accordion-tabs-head ${className}`,\r\n `c-tabs-${tab.id}`,\r\n itemheading || '',\r\n isOpened ? 'c-accordion-tabs-is-open' : '',\r\n isLight ? 'c-accordion-tabs-head-light' : ''\r\n )}\r\n >\r\n <div className='c-accordion-tabs-head-container is-bound'>\r\n {hasIcon && (\r\n <div\r\n className='c-accordion-tabs-head-title-icon'\r\n style={{ background: `url(${iconUrl}) no-repeat` }}\r\n />\r\n )}\r\n <h4 className='c-accordion-tabs-head-title'>\r\n {url !== null ? (\r\n <a href={url}>\r\n <span onClick={(event) => event.stopPropagation()}>{tab.name}</span>\r\n </a>\r\n ) : (\r\n tab.name\r\n )}\r\n </h4>\r\n {(!!className || isMobile) && (\r\n <i className='c-accordion-tabs-chevron-down c-accordion-tabs-head-icon' />\r\n )}\r\n </div>\r\n </div>\r\n <div\r\n className={`c-accordion-tabs-body ${itemheading} ${\r\n isOpened ? 'c-accordion-tabs-is-open' : ''\r\n }`}\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport { Container, Section };\r\n","import {Section, Container} from \"./Accordion\";\r\n\r\nexport const Accordion = {Section, Container};\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 { 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 { apiSlice } from '@services/apiSlice';\r\nimport { ContactUs as endpoints } from '@services/endpoints';\r\nimport { FindContactData, ContactUsForm } from './ContactUs.types';\r\n\r\ninterface FindOfficeQueryParams {\r\n countryId?: number;\r\n officeTypeId?: number;\r\n}\r\n\r\ninterface ContactUsFormQueryParams {\r\n countryId?: number;\r\n type?: string;\r\n}\r\n\r\nconst contactUsApi = apiSlice.injectEndpoints({\r\n endpoints: (build) => ({\r\n fetchFindOfficeData: build.query<FindContactData, FindOfficeQueryParams>({\r\n query: ({ countryId, officeTypeId }) => ({\r\n url: endpoints.fetchFindOfficeData,\r\n params: {\r\n lang: window.lang,\r\n countryId: countryId || 2000,\r\n officeTypeId: officeTypeId || 0,\r\n },\r\n }),\r\n }),\r\n fetchContactUsForm: build.query<ContactUsForm, ContactUsFormQueryParams | void>({\r\n query: (params) => ({\r\n url: endpoints.fetchContactUsForm,\r\n params: {\r\n lang: window.lang,\r\n pageId: window.pageId,\r\n type: params ? params.type : 'RequestAQuote',\r\n countryId: params && params.countryId ? params.countryId : 0,\r\n },\r\n }),\r\n }),\r\n }),\r\n overrideExisting: false,\r\n});\r\n\r\nexport const { useFetchContactUsFormQuery, useLazyFetchFindOfficeDataQuery } = contactUsApi;\r\n","import React from 'react';\r\nimport { Button } from '@components/Button';\r\nimport dataLayer from '@helpers/dataLayer';\r\nimport './ContactCard.scss';\r\n\r\nexport interface ContactCardProps {\r\n title: string;\r\n description: string;\r\n buttonText: string;\r\n typeLink: string;\r\n enqType: string;\r\n}\r\n\r\nexport const ContactCard = ({\r\n title,\r\n enqType,\r\n description,\r\n buttonText,\r\n typeLink,\r\n}: ContactCardProps) => {\r\n const loadForm = () => {\r\n dataLayer.push('contact_button', {\r\n contact_type: enqType,\r\n });\r\n\r\n const url = new URL(window.location.toString());\r\n const newUrl = url.origin + typeLink;\r\n // quoteOriginPageID is used as parent page id in contact-us/enquiry type form\r\n localStorage.setItem('quoteOriginPageID', window.pageId);\r\n localStorage.setItem('quoteOriginPageUrl', window.location.href);\r\n localStorage.setItem('backButtonUrl', window.location.href);\r\n window.history.pushState({}, null, newUrl);\r\n window.history.go();\r\n };\r\n return (\r\n <div className='c-contact-type-card-container c-contact-type-card'>\r\n <div className='c-contact-type-card-alignmnt'>\r\n <h3>\r\n <span className='c-contact-right-arrow'>\r\n <i className='icon-arrow-right' onClick={loadForm}></i>\r\n </span>\r\n {title}\r\n </h3>\r\n <p>{description}</p>\r\n </div>\r\n <div className='c-contact-type-card-more-btn-new'>\r\n <Button color='primary' onClick={loadForm} text={buttonText} size='small' />\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { ContactUsPage, SubOffices } from '@pages/ContactUs/ContactUs.types';\r\nimport React from 'react';\r\nimport './ContactUsSideView.scss';\r\n\r\ninterface ContactUsSideViewProps {\r\n subOfficeList: SubOffices;\r\n pageLabels: ContactUsPage;\r\n onShowFindContactsBtnClick: () => void;\r\n showOffices: boolean;\r\n}\r\n\r\nexport const ContactSideView = ({\r\n subOfficeList,\r\n pageLabels,\r\n onShowFindContactsBtnClick,\r\n showOffices,\r\n}: ContactUsSideViewProps) => {\r\n return (\r\n <div className='c-card-margin'>\r\n {showOffices && Object.entries(subOfficeList).map(([key, value]) => {\r\n const officeType = key ? key.split('|') : '';\r\n if (officeType[1] == 'Main office' && value && Array.isArray(value)) {\r\n return (\r\n <div key={key} className='c-contact-main-office-section'>\r\n <div className='c-contact-heading-font'>\r\n <p>{officeType ? officeType[0] : ''}</p>\r\n {value.length <= 1 && <p>{value[0].OfficeName}</p>}\r\n </div>\r\n {value.length > 0 && (\r\n <div className='c-contact-main-office'>\r\n {value.map((e, index) => {\r\n if (e) {\r\n return (\r\n <div className='c-contact-main-office-list' key={index}>\r\n {value.length > 1 && (\r\n <>\r\n <p>{e.OfficeName}</p>\r\n </>\r\n )}\r\n <div className='labels-font' key={index.toString()}>\r\n <p>{e.Address1}</p>\r\n <p>{e.Address2}</p>\r\n <p>{e.Address3}</p>\r\n {e.Postal && <p>{e.Postal}</p>}\r\n {e.City && <p>{e.City}</p>}\r\n {e.State && <p>{e.State}</p>}\r\n {e.PhoneNumber && e.PhoneNumber.trim() !== '' && (\r\n <p>\r\n {e.PhoneLabel && <span>{e.PhoneLabel}: </span>}\r\n <a href={'tel:' + e.PhoneNumber}>{e.PhoneNumber}</a>\r\n </p>\r\n )}\r\n {e.Fax && e.Fax != '' && (\r\n <p>\r\n {e.FaxLabel}: {e.Fax}\r\n </p>\r\n )}\r\n {e.EmailAddress && e.EmailAddress.trim() !== '' && (\r\n <p>\r\n {e.EmailLabel && <span>{e.EmailLabel}: </span>}\r\n <a href={'mailto:' + e.EmailAddress}>{e.EmailAddress}</a>\r\n </p>\r\n )}\r\n </div>\r\n <br />\r\n </div>\r\n );\r\n }\r\n return null;\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n })}\r\n <a className='c-contact-color-labels' onClick={onShowFindContactsBtnClick}>\r\n {pageLabels.FindYourContactsLinkText}\r\n </a>\r\n <br />\r\n <h4 className='partner-label'>{pageLabels.PartnersLabel}</h4>\r\n <p className='partner-description'>{pageLabels.PartnerDescription}</p>\r\n <br />\r\n <a href={pageLabels.PartnerLink} target='_blank' rel='noreferrer'>\r\n <span className='c-contact-color-labels'>{pageLabels.FindYourPartnerLinkText}</span>\r\n </a>\r\n </div>\r\n );\r\n};\r\n","import { ContactUsPage, SubOffices } from '@pages/ContactUs/ContactUs.types';\r\nimport React from 'react';\r\nimport '../ContactUsSideView/ContactUsSideView.scss';\r\n\r\ninterface ContactOfficeViewProps {\r\n subOfficeList: SubOffices;\r\n pageLabels: ContactUsPage;\r\n onShowFindContactsBtnClick: () => void;\r\n}\r\n\r\nexport const ContactOfficeView = ({\r\n subOfficeList,\r\n pageLabels,\r\n onShowFindContactsBtnClick,\r\n}: ContactOfficeViewProps) => {\r\n return (\r\n <>\r\n {Object.entries(subOfficeList)?.map(([key, value]) => {\r\n const officeType = key ? key.split('|') : '';\r\n if (officeType[1]?.trim() == 'Main office' && value && Array.isArray(value)) {\r\n return (\r\n <div key={key} className='c-contact-main-office-section'>\r\n <p className='c-contact-main-office-section-title'>{officeType ? officeType[0] : ''}</p>\r\n {value.length > 0 && (\r\n <div className='c-contact-main-office'>\r\n {value.map((e, index) => {\r\n if (e) {\r\n return (\r\n <div className='c-contact-main-office-list' key={index}>\r\n <div className='c-contact-heading-font'>\r\n <p>{e.OfficeName}</p>\r\n </div>\r\n <div className='labels-font' key={index.toString()}>\r\n <p>{e.Address1}</p>\r\n <p>{e.Address2}</p>\r\n <p>{e.Address3}</p>\r\n {e.Postal && <p>{e.Postal}</p>}\r\n {e.City && <p>{e.City}</p>}\r\n {e.State && <p>{e.State}</p>}\r\n {e.PhoneNumber && e.PhoneNumber.trim() !== '' && (\r\n <p>\r\n {e.PhoneLabel && <span>{e.PhoneLabel}: </span>}\r\n <a href={'tel:' + e.PhoneNumber}>{e.PhoneNumber}</a>\r\n </p>\r\n )}\r\n {e.Fax && e.Fax != '' && (\r\n <p>\r\n {e.FaxLabel}: {e.Fax}\r\n </p>\r\n )}\r\n {e.EmailAddress && e.EmailAddress.trim() !== '' && (\r\n <p>\r\n {e.EmailLabel && <span>{e.EmailLabel}: </span>}\r\n <a href={'mailto:' + e.EmailAddress}>{e.EmailAddress}</a>\r\n </p>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n return null;\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n })}\r\n <div className=\"c-contact-info-wrapper\">\r\n <a className='c-contact-color-labels' onClick={onShowFindContactsBtnClick}>\r\n {pageLabels.FindYourContactsLinkText}\r\n </a>\r\n <br />\r\n <h4 className='partner-label'>{pageLabels.PartnersLabel}</h4>\r\n <p className='partner-description'>{pageLabels.PartnerDescription}</p>\r\n <br />\r\n <a href={pageLabels.PartnerLink} target='_blank' rel='noreferrer'>\r\n <span className='c-contact-color-labels'>{pageLabels.FindYourPartnerLinkText}</span>\r\n </a>\r\n </div>\r\n </>\r\n );\r\n};\r\n","interface CountryObj {\r\n Id: string;\r\n Name: string;\r\n}\r\n\r\ninterface Region extends CountryObj {\r\n Countries: CountryObj[];\r\n}\r\n\r\nexport const findCountryNameById = (countryId: string, regions: Region[], defaultValue: string) => {\r\n let countryName = \"\";\r\n regions?.forEach((region: Region) => {\r\n region.Countries?.forEach((country: CountryObj) => {\r\n if (country?.Id == countryId) {\r\n countryName = country.Name;\r\n }\r\n });\r\n });\r\n\r\n return countryName != \"\" ? countryName : defaultValue;\r\n};\r\n","import dataLayer from '@helpers/dataLayer';\r\nimport { CountryItem, SublistItem } from '@type/common';\r\n\r\nexport const setURLfromFilters = (f: {\r\n country?: string;\r\n countryId: string;\r\n officeType?: string;\r\n officeTypeId: string;\r\n zipcode: string;\r\n isFilter: boolean;\r\n countryName: string;\r\n officeName: string;\r\n}) => {\r\n const url: any = new URL(window.location.toString());\r\n url.searchParams.set('countryId', f.country || f.countryId);\r\n url.searchParams.set('officeTypeId', f.officeType || f.officeTypeId);\r\n url.searchParams.set('zipcode', f.zipcode);\r\n url.searchParams.set('isFilter', f.isFilter);\r\n\r\n dataLayer.push('find_contact_search', {\r\n find_contact_country: f.countryName,\r\n find_contact_type: f.officeName,\r\n });\r\n\r\n window.location = url;\r\n};\r\n\r\nexport const getFiltersFromURL = () => {\r\n const url = new URL(window.location.toString());\r\n let zipcode = url.searchParams.get('zipcode');\r\n if (zipcode == null || zipcode == 'null') zipcode = '';\r\n return {\r\n countryId: getCountryIdFromUrl(url),\r\n officeTypeId: getOfficeIdFromUrl(url),\r\n zipcode,\r\n isFilter: url.searchParams.get('isFilter'),\r\n };\r\n};\r\n\r\nexport const getItemFromSubList = (id: string, list: CountryItem[], subListName: string) => {\r\n let returnItem = null;\r\n\r\n list?.forEach((item) => {\r\n item[subListName]?.forEach((subListItem) => {\r\n if (parseInt(subListItem?.Id) === parseInt(id)) returnItem = subListItem;\r\n });\r\n });\r\n\r\n return returnItem;\r\n};\r\n\r\nexport const getItemFromList = (id: string, list: SublistItem[]) => {\r\n let returnItem = null;\r\n\r\n list.forEach((item) => {\r\n if (parseInt(item.Id) === parseInt(id)) returnItem = item;\r\n });\r\n return returnItem;\r\n};\r\n\r\nconst getCountryIdFromUrl = (url: URL) => {\r\n const countryId = url.searchParams.get('countryId');\r\n return countryId && countryId != ''\r\n ? countryId == '2000'\r\n ? '2000'\r\n : countryId\r\n : window.countryId;\r\n};\r\n\r\nconst getOfficeIdFromUrl = (url: URL) => {\r\n const officeTypeId = url.searchParams.get('officeTypeId');\r\n return officeTypeId || '0';\r\n};\r\n\r\nexport const findOfficeNameById = (\r\n officeTypeId: string,\r\n offices = [] as { Id: string; Name: string }[],\r\n defaultValue: string,\r\n select: string\r\n): string => {\r\n let officeName = '';\r\n offices.forEach((office) => {\r\n if (office.Id == officeTypeId) {\r\n officeName = office.Name;\r\n }\r\n });\r\n return officeName != '' ? officeName : officeTypeId == '-1' ? select : defaultValue;\r\n};\r\n","import React, { useState, useEffect, MouseEvent, ChangeEvent } from 'react';\r\nimport { findCountryNameById } from '@helpers/countries';\r\nimport { Select } from '@components/Select';\r\nimport { SimpleSelect } from '@components/SimpleSelect';\r\nimport {\r\n getItemFromList,\r\n getFiltersFromURL,\r\n getItemFromSubList,\r\n setURLfromFilters,\r\n findOfficeNameById,\r\n} from './ContactUsFilter.helpers';\r\nimport './ContactUsFilter.scss';\r\nimport { Button } from '@components/Button';\r\nimport {\r\n useFetchContactUsFormQuery,\r\n useLazyFetchFindOfficeDataQuery,\r\n} from '@pages/ContactUs/ContactUs.service';\r\nimport { CountryItem, SublistItem } from '@type/common';\r\nimport { Input } from '@components/Input';\r\n\r\nconst ContactUsFilter = () => {\r\n const initialFilters = getFiltersFromURL();\r\n const [filters, setFilters] = useState({\r\n countryId: initialFilters.countryId || window.countryId,\r\n officeTypeId: initialFilters.officeTypeId || '0',\r\n zipcode: initialFilters.zipcode || '',\r\n isFilter: false,\r\n });\r\n\r\n const { data: contactUsForm } = useFetchContactUsFormQuery();\r\n const [fetchFindOfficeData, { data: findOfficeData }] = useLazyFetchFindOfficeDataQuery();\r\n const [selectedOffice, setSelectedOffice] = useState<SublistItem>(null);\r\n const [selectedCountry, setSelectedCountry] = useState<CountryItem>(null);\r\n\r\n const i18n = contactUsForm?.I18;\r\n\r\n useEffect(() => {\r\n fetchFindOfficeData({\r\n countryId: +filters.countryId,\r\n officeTypeId: +filters.officeTypeId,\r\n }).then(({ data: findOfficeData }) => {\r\n setSelectedCountry(\r\n getItemFromSubList(filters.countryId, findOfficeData.Regions, 'Countries')\r\n );\r\n setSelectedOffice(\r\n getItemFromList(filters.officeTypeId.toString(), findOfficeData.Officetype)\r\n );\r\n });\r\n }, []);\r\n\r\n const selectOffice = (officeType: SublistItem) => {\r\n const selectedOffId = officeType?.Id ?? 0;\r\n setSelectedOffice(officeType);\r\n setFilters({\r\n ...filters,\r\n officeTypeId: selectedOffId.toString(),\r\n });\r\n\r\n fetchFindOfficeData({\r\n countryId: +filters.countryId,\r\n officeTypeId: +selectedOffId,\r\n });\r\n };\r\n\r\n const selectZipcode = (code: { Name: string }) => {\r\n setFilters({ ...filters, zipcode: code.Name });\r\n };\r\n\r\n const selectCountry = (country) => {\r\n const countryId = country ? country.Id : window.countryId;\r\n setSelectedCountry(country);\r\n setFilters({ ...filters, countryId, zipcode: '' });\r\n\r\n fetchFindOfficeData({\r\n countryId: +countryId,\r\n officeTypeId: +filters.officeTypeId,\r\n });\r\n };\r\n\r\n const doSetUrlFromFilters = (e: MouseEvent<HTMLButtonElement>) => {\r\n e.preventDefault();\r\n\r\n const selectedCountryName =\r\n selectedCountry?.Name || (filters.countryId === '0' && i18n.International) || '';\r\n const selectedOfficeName =\r\n selectedOffice?.Name || (filters.officeTypeId === '0' && i18n.All) || '';\r\n\r\n const updatedFilters = {\r\n ...filters,\r\n isFilter: true,\r\n zipcode: filters.zipcode === '' ? null : filters.zipcode,\r\n };\r\n\r\n setFilters(updatedFilters);\r\n setURLfromFilters({\r\n ...updatedFilters,\r\n countryName: selectedCountryName,\r\n officeName: selectedOfficeName,\r\n });\r\n localStorage.setItem('OffBtnClicked', 'true');\r\n };\r\n\r\n // TODO: make select as lang specific\r\n return i18n && findOfficeData ? (\r\n <div className='c-contact-block'>\r\n <Select\r\n label={i18n.ChooseCountry}\r\n title={findCountryNameById(filters.countryId, findOfficeData.Regions, i18n.International)}\r\n defaultTitle={i18n.International}\r\n selectableTitle={true}\r\n list={findOfficeData.Regions}\r\n name='Name'\r\n sub='Countries'\r\n selectFunction={selectCountry}\r\n backLabel={i18n.Back}\r\n />\r\n\r\n <SimpleSelect\r\n label={i18n.TypeOfContact}\r\n title={findOfficeNameById(\r\n filters.officeTypeId,\r\n findOfficeData.Officetype,\r\n i18n.All,\r\n 'Select'\r\n )}\r\n list={[\r\n {\r\n Id: '0',\r\n Name: i18n.All,\r\n },\r\n ...findOfficeData.Officetype,\r\n ]}\r\n name='Name'\r\n selectFunction={selectOffice}\r\n />\r\n\r\n {/* select zip code from pre-defined values if there are such values\r\n type manually if there are no such values */}\r\n {findOfficeData.ZipCodes && findOfficeData.ZipCodes.length > 0 ? (\r\n <SimpleSelect\r\n label={i18n.Zipcode}\r\n title={filters.zipcode}\r\n list={findOfficeData.ZipCodes}\r\n name='Name'\r\n selectFunction={selectZipcode}\r\n />\r\n ) : (\r\n <Input\r\n label={i18n.Zipcode}\r\n type='text'\r\n name='zipcode'\r\n defaultValue={filters.zipcode}\r\n onChange={(e: ChangeEvent<HTMLInputElement>) =>\r\n setFilters({ ...filters, zipcode: e.target.value })\r\n }\r\n />\r\n )}\r\n\r\n <Button\r\n onClick={doSetUrlFromFilters}\r\n color='primary'\r\n size='small'\r\n text={i18n.FindYourContact}\r\n />\r\n </div>\r\n ) : null;\r\n};\r\n\r\nexport default ContactUsFilter;\r\n","import React from 'react';\r\n\r\nconst ContactCardRecord = ({ title, value }: { title: string; value: string }) => {\r\n if (!value || value.trim() === '') {\r\n return null;\r\n }\r\n\r\n return (\r\n <p className='c-contact-card-record'>\r\n <span className='is-block'>\r\n {title}: {value}\r\n </span>\r\n </p>\r\n );\r\n};\r\n\r\nexport const ContactCard = ({ office }) => (\r\n <div className='c-contact-card is-office'>\r\n <p className='c-contact-card-name'>{office.OfficeName}</p>\r\n <ContactCardRecord title='Address1' value={office.Address1} />\r\n <ContactCardRecord title='Address2' value={office.Address2} />\r\n <ContactCardRecord title='Address3' value={office.Address3} />\r\n <span className='is-block'>\r\n {office.Postal} {office.City}\r\n </span>\r\n {office.PhoneNumber && office.PhoneNumber.trim() !== '' && (\r\n <p className='c-contact-card-record phone-p'> \r\n <span className='is-block'>Phone: </span>\r\n <span className='phone-number-span'>\r\n {office.PhoneNumber.split(',').map((num: string, i: number) =>\r\n num.trim() !== '' ? (\r\n <React.Fragment key={`phone-${i}`}>\r\n <a href={'tel:' + `${num}`}>{num}</a>\r\n <br />\r\n </React.Fragment>\r\n ) : null\r\n )}\r\n </span>\r\n </p>\r\n )}\r\n <ContactCardRecord title='Fax' value={office.Fax} />\r\n {office.EmailAddress && office.EmailAddress.trim() !== '' && (\r\n <span className='is-block'>\r\n Email:{' '}\r\n <a className='word-break' href={'mailto:' + office.EmailAddress}>\r\n {office.EmailAddress}\r\n </a>\r\n </span>\r\n )}\r\n </div>\r\n);\r\n","import React from 'react';\r\nimport './SubOfficeList.scss';\r\nimport { ContactUsData } from '../../../ContactUs.types';\r\nimport { useWinSize } from '@contexts/WinSizeContext';\r\nimport { Accordion } from '@components/Accordion';\r\nimport { ContactCard } from './ContactCard';\r\n\r\nexport interface SubOfficeListProps {\r\n data: ContactUsData;\r\n}\r\n\r\nexport const SubOfficeList = ({ data }: SubOfficeListProps) => {\r\n if (!data || !data.SubOffices) return null;\r\n\r\n const { isMobile } = useWinSize();\r\n\r\n return (\r\n <section className='c-sub-office-list'>\r\n {Object.entries(data.SubOffices).map(([key, value = []], index) => {\r\n // array-like values are the ones with offices\r\n if (!(value && Array.isArray(value))) return null;\r\n const officeType = key.split('|');\r\n const title = officeType[0];\r\n\r\n if (!isMobile) {\r\n return (\r\n <div key={key} className='l-content l-page-center'>\r\n <div className='l-section l-section-100'>\r\n <div className='c-l-contact-section'>\r\n <h3 className='c-contact-group-title'>{title}</h3>\r\n </div>\r\n </div>\r\n {value.map((office, index) => (\r\n <div key={index} className='l-section l-section-25'>\r\n <ContactCard office={office} />\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <Accordion.Container key={key} className='is-related'>\r\n <Accordion.Section\r\n index={+key}\r\n tab={{ id: 1, name: title }}\r\n url={null}\r\n isLight\r\n accordionBlockSelector='.c-sub-office-list'\r\n // 0 index is $id\r\n isOpen={index === 1}\r\n >\r\n {value.map((office, index) => (\r\n <div key={index} className='l-section l-section-25'>\r\n <ContactCard office={office} />\r\n </div>\r\n ))}\r\n </Accordion.Section>\r\n </Accordion.Container>\r\n );\r\n })}\r\n </section>\r\n );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { ContactUsFilter } from '../ContactUsFilter';\r\nimport { SubOfficeList } from './components';\r\nimport './FindOffice.scss';\r\n\r\nimport { ContactUsData } from '../../ContactUs.types';\r\n\r\ninterface FindOfficeProps {\r\n data: ContactUsData;\r\n onBackClick: () => void;\r\n}\r\n\r\nexport const FindOffice = ({ data, onBackClick }: FindOfficeProps) => {\r\n const isBtnClicked = localStorage.getItem('OffBtnClicked');\r\n\r\n useEffect(() => {\r\n const allMatchedElements = document.getElementsByClassName('contact-font');\r\n if (allMatchedElements.length)\r\n allMatchedElements[0].scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }, []);\r\n\r\n const goBack = () => {\r\n const url = window.location.href;\r\n const newURL = url.split('?');\r\n if (newURL && isBtnClicked == 'true') {\r\n localStorage.removeItem('OffBtnClicked');\r\n window.history.pushState({}, null, newURL[0]);\r\n window.history.go();\r\n } else {\r\n onBackClick();\r\n }\r\n };\r\n\r\n return (\r\n <div className='c-contact-find-off l-content l-page-center'>\r\n <div className='l-section l-section-100 c-contact-findoff'>\r\n <p className='c-contact-find-update' onClick={goBack}>\r\n <i className='icon-arrow-left'></i>\r\n </p>\r\n <h1 className='contact-font'>{data && data.Page && data.Page.FindYourContactsLinkText}</h1>\r\n <div className='c-contact-filter'>\r\n <ContactUsFilter />\r\n </div>\r\n <SubOfficeList data={data} />\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport classNames from 'classnames';\r\nimport { ContactCard } from './components/ContactCard/ContactCard';\r\nimport { ContactSideView } from './components/ContactUsSideView/ContactUsSideView';\r\nimport { ContactOfficeView } from './components/ContactUsOfficeView/ContactUsOfficeView';\r\nimport { FindOffice } from './components/FindOffice';\r\nimport './ContactUs.scss';\r\n\r\nimport { ContactUsData } from './ContactUs.types';\r\n\r\nconst ContactUs = () => {\r\n const contactusRef = useRef(null);\r\n const [data, setData] = useState<ContactUsData>();\r\n const [showFindOffice, setShowFindOffice] = useState(false);\r\n const [addresses, setAddresses] = useState(null);\r\n const [subOfficeListCount, setSubOfficeListCount] = useState(0);\r\n\r\n useEffect(() => {\r\n const url = new URL(window.location.toString());\r\n if (url.searchParams.get('countryId') || url.searchParams.get('isFilter'))\r\n setShowFindOffice(true);\r\n // get data from backend\r\n const init = async () => {\r\n try {\r\n const dataset = contactusRef.current?.parentElement?.dataset;\r\n const data = JSON.parse(dataset.data);\r\n const addresses = data?.MainOffices ?? data?.SubOffices ?? {};\r\n const countMainOffices = Object.entries(data?.MainOffices ?? data?.SubOffices ?? {}).reduce(\r\n (count, [key, value]) => {\r\n const officeType = key.split('|')[1];\r\n if (officeType?.trim() === 'Main office' && Array.isArray(value)) {\r\n return count + value.length;\r\n }\r\n return count;\r\n },\r\n 0\r\n );\r\n setSubOfficeListCount(countMainOffices);\r\n setAddresses(addresses);\r\n setData(data);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n };\r\n init();\r\n }, []);\r\n\r\n return (\r\n <div className='contactus c-contact-main-top' ref={contactusRef}>\r\n <div className='l-section l-section-100'>\r\n <div className='l-content l-page-center'>\r\n {!showFindOffice ? (\r\n <div className='c_contact_us_body'>\r\n <h1 className='c_contact_us_heading'>{data?.Page?.Title}</h1>\r\n <div className='c_cards_sideview_section c-cards-sideview-top'>\r\n <div className='c_cards_layout'>\r\n {data &&\r\n data.EnquiryTypeLinks.map((eType, index) => {\r\n return (\r\n !eType.HideEnquiry && (\r\n <ContactCard\r\n key={index}\r\n title={eType.EnquiryTitle}\r\n description={eType.EnquiryDescription}\r\n buttonText={eType.EnquiryButtonText}\r\n typeLink={eType.EnquiryTypeLink}\r\n enqType={eType.EnquiryTypeName}\r\n />\r\n )\r\n );\r\n })}\r\n </div>\r\n <div className={classNames('c_side_view', {\r\n 'no-padding': subOfficeListCount > 2,\r\n })}>\r\n {data && data.Page && (\r\n <ContactSideView\r\n subOfficeList={addresses}\r\n showOffices={subOfficeListCount < 3}\r\n onShowFindContactsBtnClick={() => {\r\n setShowFindOffice(true);\r\n }}\r\n pageLabels={data.Page}\r\n />\r\n )}\r\n </div>\r\n\r\n </div>\r\n\r\n {data && subOfficeListCount > 2 && <div className=\"c_contact_us_offices-view-body\">\r\n <ContactOfficeView\r\n subOfficeList={addresses}\r\n onShowFindContactsBtnClick={() => {\r\n setShowFindOffice(true);\r\n }}\r\n pageLabels={data.Page}\r\n />\r\n </div>}\r\n </div>\r\n ) : (\r\n <FindOffice\r\n onBackClick={() => {\r\n setShowFindOffice(false);\r\n }}\r\n data={data}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ContactUs;\r\n","import ContactUs from './ContactUs';\r\nexport default ContactUs;\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","Accordion","Section","isOpen","index","onClick","accordionBlockSelector","children","tab","className","url","iconUrl","isLight","hasIcon","tabHead","tabBody","firstAccordionStyle","isOpened","setIsOpened","useState","isDesktop","isMobile","useEffect","openFirstAccordion","addEventListener","removeEventListener","accordionHead","document","querySelector","accordionBody","innerWidth","classList","add","closeFirstAccordion","remove","itemheading","contains","handleClick","id","style","background","href","event","stopPropagation","name","Container","Button","text","size","disabled","color","border","type","props","tag","createElement","target","Input","forwardRef","label","placeholder","required","defaultValue","value","ref","CategoryList","sub","selectableTitle","onClickSelectableTitle","onSelect","defaultTitle","list","map","item","SubCategoriesList","backLabel","onClickBack","Select","resetTime","selectFunction","title","isShowing","setIsShowing","selectedCategory","setSelectedCategory","selectedCategoryItem","setSelectedCategoryItem","doReset","reset","setReset","useReset","selectRef","useRef","useOutsideClick","htmlFor","category","SimpleSelect","listItems","useMemo","getComputerName","str","replace","toLowerCase","truncateString","limit","truncated","substring","interpolateString","args","interpolatedString","forEach","handler","e","current","contactUsApi","endpoints","build","fetchFindOfficeData","query","countryId","officeTypeId","params","lang","fetchContactUsForm","pageId","overrideExisting","useFetchContactUsFormQuery","useLazyFetchFindOfficeDataQuery","ContactCard","enqType","description","buttonText","typeLink","loadForm","dataLayer","contact_type","newUrl","URL","location","origin","localStorage","setItem","history","pushState","go","ContactSideView","subOfficeList","pageLabels","onShowFindContactsBtnClick","showOffices","entries","officeType","split","OfficeName","Address1","Address2","Address3","Postal","City","State","PhoneNumber","trim","PhoneLabel","Fax","FaxLabel","EmailAddress","EmailLabel","FindYourContactsLinkText","PartnersLabel","PartnerDescription","PartnerLink","rel","FindYourPartnerLinkText","ContactOfficeView","findCountryNameById","regions","countryName","region","Countries","country","Id","Name","getCountryIdFromUrl","searchParams","get","getOfficeIdFromUrl","findOfficeNameById","offices","select","officeName","office","initialFilters","zipcode","isFilter","getFiltersFromURL","filters","setFilters","data","contactUsForm","findOfficeData","selectedOffice","setSelectedOffice","selectedCountry","setSelectedCountry","i18n","I18","then","subListName","returnItem","subListItem","parseInt","getItemFromSubList","Regions","getItemFromList","Officetype","ChooseCountry","International","Back","TypeOfContact","All","selectedOffId","ZipCodes","Zipcode","code","I","onChange","preventDefault","selectedCountryName","selectedOfficeName","updatedFilters","f","set","find_contact_country","find_contact_type","setURLfromFilters","FindYourContact","ContactCardRecord","num","SubOfficeList","SubOffices","FindOffice","onBackClick","isBtnClicked","getItem","allMatchedElements","getElementsByClassName","scrollIntoView","behavior","block","newURL","removeItem","Page","contactusRef","setData","showFindOffice","setShowFindOffice","addresses","setAddresses","subOfficeListCount","setSubOfficeListCount","async","dataset","parentElement","JSON","parse","MainOffices","countMainOffices","reduce","count","console","log","init","Title","EnquiryTypeLinks","eType","HideEnquiry","EnquiryTitle","EnquiryDescription","EnquiryButtonText","EnquiryTypeLink","EnquiryTypeName","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","fetchEnquiryForm","fetchEnquirySerialLinkData","submitEnquiryForm","fetchEnquiryApplicationList","InvestorRelations","fetchPressReleaseFilterData","fetchInvestorRelationsNews","fetchInvestorRelationsPage","fetchInvestorRelationsMenu","makeSubscription","CoolCalc","getCoolCalc","shareCoolCalc","Hexpert","fetchHexpertPage","getAntiForgeryToken","submitHexpertForm","createHexpertPdf","getIsMatchingProducts","getHexpertResult","mailResult","SafetyDatasheet","fetchSafetyDatasheet"],"sourceRoot":""}