{"version":3,"file":"component---src-templates-product-page-js-8ccf97c62e989d2375b1.js","mappings":"4QAuJA,IArIkCA,IAA0C,IAAzC,OAAEC,EAAM,WAAEC,EAAU,YAAEC,GAAaH,EACpE,MAAMI,EAAY,8BACZC,GAAUC,EAAAA,EAAAA,MACVC,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,GACpBC,GAAYC,EAAAA,EAAAA,QAAO,MACnBC,GAAsBC,EAAAA,EAAAA,GAA+BN,GAErDO,IADYC,EAAAA,EAAAA,IAAaR,IACbS,EAAAA,EAAAA,GAAoBT,KAChC,QAAEU,IAAYT,EAAAA,EAAAA,YAAWU,EAAAA,IACzB,EAACC,EAAgB,EAACC,IAAsBC,EAAAA,EAAAA,aACxC,EAACC,EAAgB,EAACC,IAAsBF,EAAAA,EAAAA,WAAS,IACjD,EAACG,EAAkB,EAACC,IAAwBJ,EAAAA,EAAAA,WAAS,IACrD,EAACK,EAAiB,EAACC,IAAuBN,EAAAA,EAAAA,WAAS,GACnDO,GAAgBC,EAAAA,EAAAA,GAAYtB,GA6BlC,OA3BAuB,EAAAA,EAAAA,YAAU,KAENV,EADEH,EAC6B,OAAZA,EAAmB,KAAOA,EAE1BL,EAAoB,GAAGmB,IAC5C,GACC,CAACd,IAsBFe,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAKC,UAAU,gCACbD,EAAAA,cAAA,OAAKC,UAAU,0BACZT,GAAqBE,EACpBM,EAAAA,cAAAA,EAAAA,SAAA,KACGR,EACCQ,EAAAA,cAAAA,EAAAA,SAAA,MAAGE,EAAAA,EAAAA,IAAYpB,EAAW,wCAE1BkB,EAAAA,cAAAA,EAAAA,SAAA,MAAGE,EAAAA,EAAAA,IAAYpB,EAAW,yCAI9BkB,EAAAA,cAACG,EAAAA,GAAiB9B,EAChB2B,EAAAA,cAAA,QAAMI,SAAU/B,EAAQgC,cAjCpC,SAAkBC,GAChBf,GAAmB,GACnBe,EAAKC,cAAcC,KAAOrC,EAE1B,IAAIsC,EAAOC,KAAKC,UAAUL,EAAoB,eAC1CM,GAAYC,EAAAA,EAAAA,MAEhBC,EAAAA,EAAAA,IAAuBL,EAAMrC,EAAWwC,GACrCG,MAAMT,IACLb,GAAqB,GACrBE,GAAoB,GACpBtB,EAAQ2C,OAAO,IAEhBC,OAAOX,IACNb,GAAqB,GACrBE,GAAoB,EAAK,GAE/B,IAgB4DM,UAAU,MAAMiB,YAAU,GACxElB,EAAAA,cAACmB,EAAAA,EAAa,CACZC,SAAS,uBACTC,OAAQjD,EACRM,UAAWA,IAEbsB,EAAAA,cAAA,OAAKC,UAAU,oBACbD,EAAAA,cAAA,OAAKC,UAAU,qDACbD,EAAAA,cAAA,OAAKC,UAAU,QACbD,EAAAA,cAAA,OAAKC,UAAU,yDACbD,EAAAA,cAACsB,EAAAA,EAAS,CACRC,UAAU,2BACVC,cAAe,0BACf1C,UAAWA,EACX2C,UAAU,IAEZzB,EAAAA,cAACsB,EAAAA,EAAS,CACRC,UAAU,0BACVC,cAAe,yBACf1C,UAAWA,EACX2C,UAAU,IAEZzB,EAAAA,cAACsB,EAAAA,EAAS,CACRC,UAAU,6BACVC,cAAe,wBACf1C,UAAWA,EACX2C,UAAU,IAEZzB,EAAAA,cAAC0B,EAAAA,EAAW,CACVH,UAAU,wBACVE,UAAU,EACVD,cAAe,wBACf1C,UAAWA,EACX6C,QAAS/C,EACTgD,kBAAmBzC,IAErBa,EAAAA,cAACsB,EAAAA,EAAS,CACRC,UAAU,sBACVC,cAAe,sBACf1C,UAAWA,EACX2C,UAAU,IAEZzB,EAAAA,cAACsB,EAAAA,EAAS,CACRC,UAAU,sBACVE,UAAU,EACVD,cAAe,0BACf1C,UAAWA,EACX+C,QAAS,YACTC,qBAAqB5B,EAAAA,EAAAA,IACnBN,EACA,mCAGJI,EAAAA,cAACsB,EAAAA,EAAS,CACRC,UAAU,yBACVE,UAAU,EACVD,cAAe,yBACf1C,UAAWA,IAEbkB,EAAAA,cAAC+B,EAAAA,EAAoB,CACnBC,OAAO9B,EAAAA,EAAAA,IAAYpB,EAAW,6BAC9BmD,OAAO,MACPC,YAAaxD,YAWhC,C,qCCzIP,IAR2BV,IAA0B,IAAzB,gBAAEmE,GAAiBnE,EAC7C,OAAImE,UAAiF,IAApBA,EACxDnC,EAAAA,cAAA,QAAMoC,KAAK,SAASC,QAAQ,YAG9B,IAAI,C,6QC6Cb,MAhDyBrE,IAAsC,IAArC,UAAEc,EAAS,iBAAEwD,GAAkBtE,EACvD,MAAM,EAACuE,EAAqB,EAACC,IAA2BnD,EAAAA,EAAAA,WAAS,GAEjE,OACEW,EAAAA,cAAA,OAAKC,UAAU,sCAAsCwC,GAAG,QACtDzC,EAAAA,cAAA,KAAGC,UAAU,oDAAoDwC,GAAG,eAClEzC,EAAAA,cAAA,UACEC,UAAW,0CACTsC,EAAuB,GAAK,aAE9BG,KAAK,SACL,gBAAeH,EACfI,QAASA,IAAMH,GAAyBD,GACxC,gBAAc,cAEbrC,EAAAA,EAAAA,IAAYpB,EAAW,8BAG5BkB,EAAAA,cAAC4C,EAAAA,EAAQ,CAACC,GAAIN,GACZvC,EAAAA,cAAA,OACEyC,GAAG,YACHxC,UAAU,0CACV,kBAAgB,eAEhBD,EAAAA,cAAA,OAAKC,UAAU,uCACbD,EAAAA,cAAA,OAAKC,UAAU,+CACbD,EAAAA,cAAA,aACEA,EAAAA,cAAA,aACGsC,SAECQ,OAAOC,KAAKT,GAAkBU,KAAKjD,GAE/BC,EAAAA,cAAA,MAAID,IAAKA,GACPC,EAAAA,cAAA,UAAKD,GACLC,EAAAA,cAAA,UAAKsC,EAAiBvC,aAUtC,ECGV,MA/CmB/B,IAAqC,IAApC,gBAAEiF,EAAe,UAAEnE,GAAWd,EAChD,MAAM,EAACkF,EAAe,EAACC,IAAqB9D,EAAAA,EAAAA,WAAS,GACrD,IAAI+D,EAASH,EAAgBI,MAAM,KACnC,OACErD,EAAAA,cAAA,OAAKC,UAAU,sCAAsCwC,GAAG,cACtDzC,EAAAA,cAAA,KAAGC,UAAU,oDAAoDwC,GAAG,oBAClEzC,EAAAA,cAAA,UACEC,UAAW,0CAAyCiD,EAAiB,GAAK,aAC1ER,KAAK,SACL,gBAAeQ,EACfP,QAASA,IAAMQ,GAAmBD,GAClC,gBAAc,mBAEbhD,EAAAA,EAAAA,IAAYpB,EAAW,oCAG5BkB,EAAAA,cAAC4C,EAAAA,EAAQ,CAACC,GAAIK,GACZlD,EAAAA,cAAA,OACEyC,GAAG,iBACHxC,UAAU,2CACV,kBAAgB,oBAEhBD,EAAAA,cAAA,OAAKC,UAAU,uCACbD,EAAAA,cAAA,OAAKC,UAAU,6BACbD,EAAAA,cAAA,WACEA,EAAAA,cAAA,UAAIE,EAAAA,EAAAA,IAAYpB,EAAW,uBAC3BkB,EAAAA,cAAA,UAAIE,EAAAA,EAAAA,IAAYpB,EAAW,yBAG9BmE,QACGG,EAAOJ,KAAKM,GAERtD,EAAAA,cAAA,OACEuD,IAAK,kCAAoCD,EACzCE,KAAKtD,EAAAA,EAAAA,IAAYpB,EAAW,kCAC5BmB,UAAU,6CAIhB,QAIN,E,uCCqPV,MApRkBjC,IAA0B,IAAzB,UAAEc,EAAS,KAAEwB,GAAMtC,EACpC,MAAM,SAAEyF,IAAajF,EAAAA,EAAAA,YAAWkF,EAAAA,IAC1B,EAACC,EAAoB,EAACC,IAA0BvE,EAAAA,EAAAA,aAChD,EAACwE,EAAO,EAACC,IAAazE,EAAAA,EAAAA,aACtB,EAAC0E,EAAe,EAACC,IAAqB3E,EAAAA,EAAAA,aACtC,EAAC4E,EAAY,EAACC,IAAkB7E,EAAAA,EAAAA,aAChC,EAAC8E,EAAkB,EAACC,IAAwB/E,EAAAA,EAAAA,aAC5C,EAACgF,EAAY,EAACC,IAAkBjF,EAAAA,EAAAA,aAChC,EACJkF,EAA8C,EAC9CC,IACEnF,EAAAA,EAAAA,aAEJS,EAAAA,EAAAA,YAAU,KACJ2D,GAAYE,IACsB,aAAhCA,EAAoBc,SACtBC,EAAAA,EAAAA,IAAsCjB,EAAUE,EAAoBgB,YAC3B,QAAhChB,EAAoBc,SAC7BG,EAAAA,EAAAA,IAAiCnB,EAAUE,EAAoBgB,YACtB,cAAhChB,EAAoBc,SAC7BI,EAAAA,EAAAA,IAAuCpB,EAAUE,EAAoBgB,YAC5B,sBAAhChB,EAAoBc,UAC7BK,EAAAA,EAAAA,IAA+CrB,EAAUE,EAAoBgB,YAEjF,GACC,CAAClB,EAAUE,KAEd7D,EAAAA,EAAAA,YAAU,KACR,GACEQ,EAAKyE,UACJzE,EAAKyE,QAAQC,wBACZ1E,EAAKyE,QAAQE,UACb3E,EAAKyE,QAAQG,gBACb5E,EAAKyE,QAAQI,UACb7E,EAAKyE,QAAQK,2CACb9E,EAAKyE,QAAQM,aACf,CACA,IAAIC,EAAQ,KACRhF,EAAKyE,QAAQC,yBACfM,EAAQ,gEAAgEhF,EAAKyE,QAAQC,iCACjF1E,EAAKyE,QAAQQ,SACfD,GAAgB,GAAGhF,EAAKyE,QAAQQ,UAElCD,GAAgB,oBAElBxB,EAAUwB,GAEVA,EAAQ,KACJhF,EAAKyE,QAAQM,cACfC,EAAQ,oCAAsChF,EAAKyE,QAAQM,aAE7DrB,EAAkBsB,GAElBA,EAAQ,KACJhF,EAAKyE,QAAQE,WACfK,EAAQ,+BAAiChF,EAAKyE,QAAQE,UAExDf,EAAeoB,GAEfA,EAAQ,KACJhF,EAAKyE,QAAQG,iBACfI,EAAQ,+BAAiChF,EAAKyE,QAAQG,gBAExDd,EAAqBkB,GAErBA,EAAQ,KACJhF,EAAKyE,QAAQI,WACfG,EAAQ,oCAAsChF,EAAKyE,QAAQI,UAE7Db,EAAegB,GAEfA,EAAQ,KACJhF,EAAKyE,QAAQK,4CACfE,EACE,+BAAiChF,EAAKyE,QAAQK,2CAElDZ,EAAiDc,EACnD,IACC,CAAChF,EAAKyE,UAET,MAAMS,EAAeC,IACnB,IAAIC,EAAcD,EAAEE,OAAO1F,UACvB2F,EAAa,KACbC,EAASJ,EAAEE,OAAOlD,GAClBqD,EAAU,KACVC,EAAWN,EAAEE,OAAOK,YAExB,IAAIC,GAAcC,EAAAA,EAAAA,GAAmBT,EAAEE,OAAQ,EAAG,GASlD,OAPoB,OAAhBM,IACFH,EAAUG,EAAYE,KACtBP,GAAaQ,EAAAA,EAAAA,IAAcN,GAC3BD,EAASI,EAAYxD,GACrBiD,EAAcO,EAAYhG,WAGpB4F,GACN,IAAK,eAYL,IAAK,mBACHjC,EAAuB,CACrBa,QAAS,MACTE,YAAY0B,EAAAA,EAAAA,GACVX,EACAE,EACAC,EACAC,EACAC,KAGJ,MACF,IAAK,oBACHnC,EAAuB,CACrBa,QAAS,WACTE,YAAY2B,EAAAA,EAAAA,IACVZ,EACAE,EACAC,EACAC,EACAC,KAGJ,MACF,IAAK,qBACHnC,EAAuB,CACrBa,QAAS,YACTE,YAAY4B,EAAAA,EAAAA,IACVb,EACAE,EACAC,EACAC,EACAC,KAGJ,MACF,IAAK,6BACHnC,EAAuB,CACrBa,QAAS,oBACTE,YAAY6B,EAAAA,EAAAA,IACVd,EACAE,EACAC,EACAC,EACAC,KAMR,EAGF,OACE/F,EAAAA,cAAA,SAAOC,UAAU,oCACfD,EAAAA,cAAA,aACEA,EAAAA,cAAA,UACEA,EAAAA,cAAA,UACEA,EAAAA,cAAA,MAAIC,UAAU,+BACX4D,EACC7D,EAAAA,cAAA,UACEA,EAAAA,cAAA,KACEyC,GAAG,eACH0D,KAAMtC,EACN8B,OAAO,SACPc,IAAI,aACJxG,UAAU,8BACV0C,QAAS6C,GAETxF,EAAAA,cAAA,KAAGC,UAAU,aACbD,EAAAA,cAAA,UAAIE,EAAAA,EAAAA,IAAYpB,EAAW,kBAG7B,KACHiF,EACC/D,EAAAA,cAAA,UACEA,EAAAA,cAAA,KACEyC,GAAG,mBACH0D,KAAMpC,EACN4B,OAAO,SACPc,IAAI,aACJxG,UAAU,8BACV0C,QAAS6C,GAETxF,EAAAA,cAAA,KAAGC,UAAU,aACbD,EAAAA,cAAA,UACGE,EAAAA,EAAAA,IAAYpB,EAAW,eAAe,KACtCoB,EAAAA,EAAAA,IAAYpB,EAAW,gBAAgB,OAI5C,KACHmF,EACCjE,EAAAA,cAAA,UACEA,EAAAA,cAAA,KACEyC,GAAG,oBACH0D,KAAMlC,EACN0B,OAAO,SACPc,IAAI,aACJxG,UAAU,8BACV0C,QAAS6C,GAETxF,EAAAA,cAAA,KAAGC,UAAU,kBACbD,EAAAA,cAAA,UACGE,EAAAA,EAAAA,IAAYpB,EAAW,oBAAoB,MAC3CoB,EAAAA,EAAAA,IAAYpB,EAAW,eAAe,OAI3C,KACHqF,EACCnE,EAAAA,cAAA,UACEA,EAAAA,cAAA,KACEyC,GAAG,qBACH0D,KAAMhC,EACNwB,OAAO,SACPc,IAAI,aACJxG,UAAU,8BACV0C,QAAS6C,GAETxF,EAAAA,cAAA,KAAGC,UAAU,kBACbD,EAAAA,cAAA,UACGE,EAAAA,EAAAA,IAAYpB,EAAW,qBAAqB,MAC5CoB,EAAAA,EAAAA,IAAYpB,EAAW,eAAe,OAI3C,KACHuF,EACCrE,EAAAA,cAAA,UACEA,EAAAA,cAAA,KACEmG,KAAM9B,EACNsB,OAAO,SACPc,IAAI,aACJxG,UAAU,+BAEVD,EAAAA,cAAA,KAAGC,UAAU,kBACbD,EAAAA,cAAA,UAAIE,EAAAA,EAAAA,IAAYpB,EAAW,uBAG7B,KACHyF,EACCvE,EAAAA,cAAA,UACEA,EAAAA,cAAA,KACEyC,GAAG,6BACH0D,KAAM5B,EACNoB,OAAO,SACPc,IAAI,aACJxG,UAAU,8BACV0C,QAAS6C,GAETxF,EAAAA,cAAA,KAAGC,UAAU,kBACbD,EAAAA,cAAA,UACGE,EAAAA,EAAAA,IAAYpB,EAAW,6BAA6B,MACpDoB,EAAAA,EAAAA,IAAYpB,EAAW,eAAe,OAI3C,SAKN,ECzPZ,MApCmBd,IAA0B,IAAzB,UAAEc,EAAS,KAAEwB,GAAMtC,EACrC,OACEgC,EAAAA,cAAA,MAAIC,UAAU,8EACZD,EAAAA,cAAA,UACEA,EAAAA,cAAA,KAAGmG,KAAK,aACNnG,EAAAA,cAAA,aAAOE,EAAAA,EAAAA,IAAYpB,EAAW,uBAGjCwB,IAASA,EAAKoG,gBAAkBpG,EAAKqG,yBACpC3G,EAAAA,cAAA,UACEA,EAAAA,cAAA,KAAGmG,KAAK,QACNnG,EAAAA,cAAA,aAAOE,EAAAA,EAAAA,IAAYpB,EAAW,kBAGhC,KACJkB,EAAAA,cAAA,UACEA,EAAAA,cAAA,KAAGmG,KAAK,SACNnG,EAAAA,cAAA,aAAOE,EAAAA,EAAAA,IAAYpB,EAAW,+BAGjCwB,GAAQA,EAAKyE,SAAWzE,EAAKyE,QAAQ6B,gBACpC5G,EAAAA,cAAA,UACEA,EAAAA,cAAA,KAAGmG,KAAK,eACNnG,EAAAA,cAAA,aAAOE,EAAAA,EAAAA,IAAYpB,EAAW,qCAGhC,KAMD,EC6FT,MApHYd,IAQL,IARM,UACXc,EAAS,YACT+H,EAAW,qBACXC,EAAoB,OACpBvI,EAAM,oBACNwI,EAAmB,iBACnBC,EAAgB,WAChBC,GACDjJ,EACC,MAAM,SAAEyF,IAAajF,EAAAA,EAAAA,YAAWkF,EAAAA,IAC1B,EAACwD,EAAQ,EAACC,IAAc9H,EAAAA,EAAAA,WAAS,IACjC,EAACsE,EAAoB,EAACC,IAA0BvE,EAAAA,EAAAA,aAChD,EAACwE,EAAO,EAACC,IAAazE,EAAAA,EAAAA,YAC5B,IAAI+H,ECQ0CC,EAAC9I,EAAQ+I,KACvD,MAAM,gBAAEC,IAAoBC,EAAAA,EAAAA,IAhCV,aAkClB,GACO,qBADCF,EACN,CACE,IAAIG,EAMJ,OALAF,EAAgBG,MAAMC,SAASrE,IACzBA,EAAQsE,cAAgBrJ,IAC1BkJ,EAAoBnE,EACtB,IAEKmE,CAAiB,CAExB,OAAO,IACX,EDtBsBJ,CACpB9I,EACwB,SAAxBwI,GAAkCC,EAAmBA,EAAmB,OAG1ElH,EAAAA,EAAAA,YAAU,KACR,IAAI+H,EAAW,KACXf,IACFe,EAAW,gEAAgEf,YACvEG,IACFY,GAAsB,GAAGZ,KAE3BY,GAAsB,oBAExB/D,EAAU+D,EAAS,GAClB,CAACf,EAAsBG,KAE1BnH,EAAAA,EAAAA,YAAU,KACJ2D,GAAYE,IACdiB,EAAAA,EAAAA,IAAiCnB,EAAUE,EAC7C,GACC,CAACF,EAAUE,IAcd,OACE3D,EAAAA,cAAA,OAAKC,UAAU,sCAAsCwC,GAAG,OACtDzC,EAAAA,cAAA,KAAGC,UAAU,oDAAoDwC,GAAG,cAClEzC,EAAAA,cAAA,UACEC,UAAW,0CAAyCiH,EAAU,GAAK,aACnExE,KAAK,SACL,gBAAewE,EACfvE,QAASA,IAAMwE,GAAYD,GAC3B,gBAAc,aAEbhH,EAAAA,EAAAA,IAAYpB,EAAW,iBAG5BkB,EAAAA,cAAC4C,EAAAA,EAAQ,CAACC,GAAIqE,GACZlH,EAAAA,cAAA,OACEyC,GAAG,WACHxC,UAAU,0CACV,kBAAgB,cAEhBD,EAAAA,cAAA,OAAKC,UAAU,uCACbD,EAAAA,cAAA,SAAG,KAAEE,EAAAA,EAAAA,IAAYpB,EAAW,uBAC5BkB,EAAAA,cAAA,OAAKC,UAAU,8DACZ4D,EACC7D,EAAAA,cAAA,KACEmG,KAAMtC,EACN8B,OAAO,SACPc,IAAI,aACJxG,UAAU,iCACV0C,QAxCK8C,IACnB,IAAIC,EAAcD,EAAEE,OAAO1F,UACvB2F,GAAaQ,EAAAA,EAAAA,IAAcX,EAAEE,OAAOQ,MACpCN,EAASJ,EAAEE,OAAOlD,GAClBqD,EAAUL,EAAEE,OAAOQ,KACnBJ,EAAWN,EAAEE,OAAOK,YAExBpC,GACEyC,EAAAA,EAAAA,GAA+BX,EAAaE,EAAYC,EAAQC,EAASC,GAC1E,GAiCa/F,EAAAA,cAAA,OAAKC,UAAU,oDACbD,EAAAA,cAAA,KAAGC,UAAU,mBACbD,EAAAA,cAAA,aAAOE,EAAAA,EAAAA,IAAYpB,EAAW,uBAGhC,KACH+H,EACC7G,EAAAA,cAAA,KACEmG,KAAM,oCAAsCU,EAC5ClB,OAAO,SACPc,IAAI,aACJxG,UAAU,kCAEVD,EAAAA,cAAA,OAAKC,UAAU,oDACbD,EAAAA,cAAA,KAAGC,UAAU,mBACbD,EAAAA,cAAA,aACGE,EAAAA,EAAAA,IAAYpB,EAAW,eAAe,MACtCoB,EAAAA,EAAAA,IAAYpB,EAAW,gBAAgB,OAI5C,KACHsI,EACCpH,EAAAA,cAAC8H,EAAAA,GAAI,CAACC,IAAIC,EAAAA,EAAAA,IAASZ,EAAiB,IAAKnH,UAAU,kCACjDD,EAAAA,cAAA,OAAKC,UAAU,oDACbD,EAAAA,cAAA,KAAGC,UAAU,mBACbD,EAAAA,cAAA,aAAOE,EAAAA,EAAAA,IAAYpB,EAAW,2BAGhC,SAKR,E,kCEzDV,MAtD2Bd,IAAiB,IAAhB,OAAEoF,GAAQpF,EACpC,MAAM,EAACiK,EAAa,EAACC,IAAmB7I,EAAAA,EAAAA,UAAS,MAC3C8I,GAAUxJ,EAAAA,EAAAA,QAAO,MACjByJ,GAAUzJ,EAAAA,EAAAA,QAAO,MAEvB,OACEqB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACqI,EAAAA,GAAM,CACLC,OAASC,IACPA,EAAOC,OAAOC,WAAWC,OAASP,EAAQQ,QAC1CJ,EAAOC,OAAOC,WAAWG,OAASR,EAAQO,QAC1CJ,EAAOE,WAAWI,OAClBN,EAAOE,WAAWK,QAAQ,EAE5BC,aAAc,GACdN,WAAY,CACVG,OAAQ,kBACRF,OAAQ,mBAEVM,OAAQ,CAAET,OAAQN,GAClBgB,QAAS,CAACC,EAAAA,GAAUC,EAAAA,GAAYC,EAAAA,IAChCnJ,UAAU,mDAETmD,EAAOJ,KAAKM,GAETtD,EAAAA,cAACqJ,EAAAA,GAAW,CAACpJ,UAAU,gCACrBD,EAAAA,cAACsJ,EAAAA,EAAW,CAACC,MAAOjG,EAASkG,aAAa,kBAIhDxJ,EAAAA,cAAA,OAAKyJ,IAAKrB,EAASnI,UAAU,uDAC7BD,EAAAA,cAAA,OAAKyJ,IAAKtB,EAASlI,UAAU,wDAE/BD,EAAAA,cAACqI,EAAAA,GAAM,CACLqB,SAAUxB,EACVa,aAAc,GACdY,cAAe,EACfC,UAAU,EACVC,qBAAqB,EACrBZ,QAAS,CAACC,EAAAA,GAAUC,EAAAA,GAAYC,EAAAA,IAChCnJ,UAAU,yDAETmD,EAAOJ,KAAKM,GAETtD,EAAAA,cAACqJ,EAAAA,GAAW,CAACpJ,UAAU,gCACrBD,EAAAA,cAACsJ,EAAAA,EAAW,CAACC,MAAOjG,IAAY,QAKvC,ECgzCP,SAASwG,EAAwBxH,EAAkBvC,EAAKiC,GACtD,QAA8B+H,IAA1BzH,EAAiBvC,GAAoB,CACvC,IAAIiK,EAAgB1H,EAAiBvC,GACrCuC,EAAiBvC,GAAO,GAAGiK,MAAkBhI,GAC/C,MACEM,EAAiBvC,GAAOiC,CAE5B,C,8IClzCO,MAwVMiI,EAAeC,IAAqE,IAApE,MAAEC,EAAK,SAAEC,EAAQ,cAAEC,EAAa,OAAE9L,EAAM,QAAE+L,EAAO,UAAEC,GAAWL,EACzF,MAAM,YAAEM,IAAgBhM,EAAAA,EAAAA,YAAWiM,EAAAA,GAC7B3L,GAAY4L,EAAAA,EAAAA,GAAoBnM,IAChC,EAACoM,EAAa,EAACC,IAAmBvL,EAAAA,EAAAA,YAuBxC,OArBAS,EAAAA,EAAAA,YAAU,KACR,MAAM+K,EAAeV,EAAQW,WAAWX,GAAOY,QAAQ,GAAK,GACxDP,IAAgBQ,EAAAA,GACG,KAAjBH,IAA+C,IAAxBI,MAAMJ,GAC/BD,GAAgBM,EAAAA,EAAAA,IAAqB,CAAEd,SAAUA,EAAUe,OAAQN,KAGjED,EADEL,GACcrK,EAAAA,EAAAA,IAAYpB,EAAW,8BAEvBoB,EAAAA,EAAAA,IAAYpB,EAAW,6BAKzC8L,EADEL,GACcrK,EAAAA,EAAAA,IAAYpB,EAAW,6BAEvB,GAEpB,GACC,CAACqL,EAAOC,EAAUC,EAAeG,EAAaD,IAG/CvK,EAAAA,cAAAA,EAAAA,SAAA,KACGqK,UAA2E,IAAlBA,EACxDC,GAAWE,IAAgBQ,EAAAA,GACzBhL,EAAAA,cAAA,OAAKC,UAAU,0CACbD,EAAAA,cAACoL,EAAAA,EAAO,CAACnL,UAAU,0BAA0BoL,UAAU,YAEvDV,EACF3K,EAAAA,cAAA,OAAKC,UAAU,0CACbD,EAAAA,cAAA,MAAIC,UAAU,wBAAwB0K,IAEtC,KACF,KACH,EAmFMW,EAA0BC,IAOhC,IAPiC,OACtChN,EAAM,SACNiN,EAAQ,SACRC,EAAQ,YACRC,EAAW,QACXpB,EAAO,oBACPqB,GACDJ,EACC,MAAMzM,GAAY4L,EAAAA,EAAAA,GAAoBnM,IAChC,EAACqN,EAAsB,EAACC,IAA4BxM,EAAAA,EAAAA,aACpD,QAAEJ,IAAYT,EAAAA,EAAAA,YAAWU,EAAAA,GAM/B,OAJAY,EAAAA,EAAAA,YAAU,KACR+L,GAAyBC,EAAAA,EAAAA,GAAwBN,EAAUE,EAAaD,EAAUxM,GAAS,GAC1F,CAACuM,EAAUC,EAAUC,IAGtB1L,EAAAA,cAAA,OAAKC,UAAU,uCACbD,EAAAA,cAAAA,EAAAA,SAAA,KACGsK,EACCtK,EAAAA,cAACoL,EAAAA,EAAO,CAACnL,UAAU,0BAA0BoL,UAAU,WAEvDrL,EAAAA,cAAA,SACEA,EAAAA,cAAC+L,EAAY,CACXJ,oBAAqBA,EACrBpN,OAAQA,EACR+L,QAASA,IAEVsB,QACC5L,EAAAA,cAAA,aACGE,EAAAA,EAAAA,IAAYpB,EAAW,sCAAsC,IAC7D8M,GAED,OAIN,EAIGG,EAAeC,IAA+C,IAA9C,oBAAEL,EAAmB,OAAEpN,EAAM,QAAE+L,GAAS0B,EACnE,MAAMlN,GAAY4L,EAAAA,EAAAA,GAAoBnM,GAChC0N,GAAiBC,EAAAA,EAAAA,GAAoB3N,IACrC,EAAC4N,EAAM,EAACC,IAAY/M,EAAAA,EAAAA,YAuB1B,OArBAS,EAAAA,EAAAA,YAAU,KACR,MAAMuM,GAAiBC,EAAAA,EAAAA,IAAoBX,EAAqBM,GAChEG,EACEC,IAAkCnM,EAAAA,EAAAA,IAAYpB,EAAW,iCAC1D,GACA,CAAC6M,IAiBF3L,EAAAA,cAAAA,EAAAA,SAAA,KACGsK,EACCtK,EAAAA,cAACoL,EAAAA,EAAO,CAACnL,UAAU,0BAA0BoL,UAAU,WAjB7D,SAAwBc,EAAOR,GAC7B,IAAItJ,GAAUkK,EAAAA,EAAAA,IAAW,CAAEC,KAAML,EAAOR,oBAAqBA,IAIrD,IAADc,EAMP,OAPEpK,EAD0B,IAAxBsJ,EACQ3L,EAAAA,cAAA,aAEqE,QAAxEyM,GAAGF,EAAAA,EAAAA,IAAW,CAAEC,KAAML,EAAOR,oBAAqBA,WAAsB,IAAAc,EAAAA,EAC7EzM,EAAAA,cAAA,aAIGqC,CACT,CAOMqK,CAAeP,EAAOR,GAEvB,EC/bP,MAAMgB,EAAmBC,IAAuB,IAAtB,MAAEC,EAAK,MAAEC,GAAOF,EACxC,OACE5M,EAAAA,cAAAA,EAAAA,SAAA,KACG6M,EACC7M,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,KAAGC,UAAU,cAAc6M,GAC3B9M,EAAAA,cAAA,OAAKC,UAAU,wCACZ4M,EAAM7J,KAAKM,IACV,IAAIyJ,EAAUzJ,EAAQD,MAAM,KAC5B,OACErD,EAAAA,cAACgN,EAAe,CACdjN,IAAKgN,EAAQ,GACbE,WAAYF,EAAQ,GACpBxD,MAAOwD,EAAQ,GACfG,YAAaH,EAAQ,IACrB,MAKR,KACH,EAIDC,EAAkB9C,IAAyC,IAAxC,WAAE+C,EAAU,YAAEC,EAAW,MAAE3D,GAAOW,EACzD,MAAM3L,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,IACpB,MAAE0O,EAAK,aAAEC,IAAiB5O,EAAAA,EAAAA,YAAWiM,EAAAA,IACrC,QAAExL,IAAYT,EAAAA,EAAAA,YAAWU,EAAAA,IACzB,SAAEmO,IAAa7O,EAAAA,EAAAA,YAAW8O,EAAAA,GAC1BC,GAAYxO,EAAAA,EAAAA,IAAaR,IACzB,EAAC6L,EAAS,EAACoD,IAAenO,EAAAA,EAAAA,aAC1B,EAAC8K,EAAM,EAACsD,IAAYpO,EAAAA,EAAAA,aACpB,EAACgL,EAAc,EAACqD,IAAoBrO,EAAAA,EAAAA,aACpC,EAACiL,EAAQ,EAACqD,IAActO,EAAAA,EAAAA,WAAS,IACjC,EAACmM,EAAS,EAACoC,IAAevO,EAAAA,EAAAA,aAC1B,EAACoM,IAAYpM,EAAAA,EAAAA,UAAS,IACtB,EAACqM,EAAY,EAACmC,IAAkBxO,EAAAA,EAAAA,aAChC,EAACkL,EAAU,EAACuD,IAAgBzO,EAAAA,EAAAA,aAC5B,EAAC0O,EAAqB,EAACC,IAA2B3O,EAAAA,EAAAA,UAAS6N,GAC3De,GAAmBC,EAAAA,EAAAA,GAAe3P,GAClC4P,EAAW,kCAAkC5E,IAC7C6E,EACJ,KACAC,EAAAA,EAAAA,GAAkB9P,GAAQ+P,KAC1B,KACAC,EAAAA,EAAAA,GAAehQ,GACf,KACAiQ,EAAAA,EAAAA,IAAsBvB,GAkDxB,OAhDAnN,EAAAA,EAAAA,YAAU,KACR,SAAS2O,EAAcxB,EAAY7C,GACjC,IAAIxJ,GAAYC,EAAAA,EAAAA,KAChB8M,GAAW,IACXe,EAAAA,EAAAA,IAA2BzB,EAAYhO,EAASmL,EAAUiD,EAAUzM,GACjEG,MAAMT,IACDA,GAAQA,EAAKyM,SACfa,EAAYtN,EAAKyM,QAAQvB,UACzBqC,EAAevN,EAAKyM,QAAQ4B,aAC5BjB,EAAiBpN,EAAKsO,wBACtBd,EAAaxN,EAAKyM,QAAQxC,WACtBjK,EAAKyM,QAAQ5C,QACfsD,EAASnN,EAAKyM,QAAQ5C,MAAMgB,QAC5BqC,EAAYlN,EAAKyM,QAAQ5C,MAAMC,YAGjC0D,GAAa,GAEfH,GAAW,EAAM,IAElB1M,OAAO4N,KACNC,EAAAA,EAAAA,IAAa,sBAAuBD,GACpCf,GAAa,GACbH,GAAW,EAAM,GAEvB,CAEA,oCAAa5M,MAAMgO,IACb7B,GACFc,EAAwBe,EAAGC,OAAO9B,GACpC,KAGmB,IAAjBE,GAC6B,KAA3B6B,EAAAA,EAAAA,IAAgB9B,IAAmBlO,EACjCmL,QACFoD,GAAY0B,EAAAA,EAAAA,IAAsBjQ,EAASsO,IAE3CkB,EAAcxB,EAAY7C,IAEQ,KAA3B6E,EAAAA,EAAAA,IAAgB9B,IACzBsB,EAAcxB,EAAY,MAG5BU,GAAW,EACb,GACC,CAACV,EAAYG,EAAcD,EAAOlO,EAASmL,IAG5CpK,EAAAA,cAAA,OAAKC,UAAU,gCACbD,EAAAA,cAAA,OAAKC,UAAU,6DACbD,EAAAA,cAAA,OAAKC,UAAU,qCACbD,EAAAA,cAAA,OAAKC,UAAU,+BAA+BsD,IAAK4K,EAAU3K,IAAKyJ,KAEpEjN,EAAAA,cAAA,OAAKC,UAAU,yDACbD,EAAAA,cAAA,OAAKC,UAAU,qCACbD,EAAAA,cAAA,MAAIC,UAAU,QACZD,EAAAA,cAAC8H,EAAAA,GAAI,CAACC,GAAIqG,EAAa3H,IAAI,gBACxBsH,QACGA,EACA,QAIV/N,EAAAA,cAAA,OAAKC,UAAU,wFACbD,EAAAA,cAAA,UACGE,EAAAA,EAAAA,IAAY+N,EAAkB,uBAAuB,KAAGhB,IAG7DjN,EAAAA,cAAA,OAAKC,UAAU,iCACbD,EAAAA,cAAA,OAAKC,UAAU,sBACbD,EAAAA,cAAA,OAAKuD,IAAK4K,EAAU3K,IAAKyJ,EAAYhN,UAAU,mCAGnDD,EAAAA,cAAA,OAAKC,UAAU,uDACbD,EAAAA,cAACiK,EAAY,CACXE,MAAOA,EACPC,SAAUA,EACVC,cAAeA,EACf9L,OAAQA,EACR+L,QAASA,EACTC,UAAWA,IAGbvK,EAAAA,cAAA,OAAKC,UAAU,qEAUbD,EAAAA,cAAC8H,EAAAA,GAAI,CACHC,GAAIqG,EACJ3H,IAAI,eACJxG,UAAU,4CAEVD,EAAAA,cAAA,OAAKC,UAAU,oDACbD,EAAAA,cAAA,YAAM,KAAEE,EAAAA,EAAAA,IAAY+N,EAAkB,yBAK9CjO,EAAAA,cAACsL,EAAuB,CACtBE,SAAUA,EACVjN,OAAQA,EACRmN,YAAaA,EACbD,SAAUA,EACVnB,QAASA,MAIX,EAIV,MAnToBtM,IAA0B,IAAzB,UAAEc,EAAS,KAAEwB,GAAMtC,EACtC,MAAM,EAACmR,EAAgB,EAACC,IAAsB/P,EAAAA,EAAAA,WAAS,GAEvD,OA4GF,SAA+BiB,GAC7B,SACEA,EAAKyE,WACJzE,EAAKyE,QAAQsK,sBACZ/O,EAAKyE,QAAQuK,yBACbhP,EAAKyE,QAAQwK,wBACbjP,EAAKyE,QAAQyK,oBACblP,EAAKyE,QAAQ0K,8BACbnP,EAAKyE,QAAQ2K,uBACbpP,EAAKyE,QAAQ4K,uBACbrP,EAAKyE,QAAQ6K,2BACbtP,EAAKyE,QAAQ8K,oBACbvP,EAAKyE,QAAQ+K,0BACbxP,EAAKyE,QAAQgL,uBACbzP,EAAKyE,QAAQiL,qBACb1P,EAAKyE,QAAQkL,4BACb3P,EAAKyE,QAAQmL,uBACb5P,EAAKyE,QAAQoL,sBACb7P,EAAKyE,QAAQqL,oBACb9P,EAAKyE,QAAQsL,oBACb/P,EAAKyE,QAAQuL,oBAMnB,CAtIMC,CAAsBjQ,GAEtBN,EAAAA,cAAA,OAAKC,UAAU,OACbD,EAAAA,cAAA,OAAKC,UAAU,sBACbD,EAAAA,cAAA,OAAKC,UAAU,sCAAsCwC,GAAG,eACtDzC,EAAAA,cAAA,KACEC,UAAU,oDACVwC,GAAG,sBAEHzC,EAAAA,cAAA,UACEC,UAAW,0CACTkP,EAAkB,GAAK,aAEzBzM,KAAK,SACL,gBAAeyM,EACfxM,QAASA,IAAMyM,GAAoBD,GACnC,gBAAc,gBAEbjP,EAAAA,EAAAA,IAAYpB,EAAW,yBAG5BkB,EAAAA,cAAC4C,EAAAA,EAAQ,CAACC,GAAIsM,GACZnP,EAAAA,cAAA,OAAKC,UAAU,2CACbD,EAAAA,cAAA,OAAKC,UAAU,iDACbD,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQsK,qBACpBvC,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,iCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQuK,wBACpBxC,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,oCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQwK,uBACpBzC,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,mCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQyK,mBACpB1C,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,+BAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQ0K,6BACpB3C,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,wCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQ2K,sBACpB5C,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,kCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQ4K,sBACpB7C,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,kCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQ6K,0BACpB9C,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,qCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQ8K,mBACpB/C,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,+BAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQ+K,yBACpBhD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,oCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQgL,sBACpBjD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,kCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQiL,oBACpBlD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,gCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQkL,2BACpBnD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,sCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQmL,sBACpBpD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,iCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQoL,qBACpBrD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,iCAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQqL,mBACpBtD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,+BAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQsL,mBACpBvD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,+BAEhCkB,EAAAA,cAAC2M,EAAgB,CACfE,MAAOvM,EAAKyE,QAAQuL,mBACpBxD,OAAO5M,EAAAA,EAAAA,IAAYpB,EAAW,qCAUvC,IACT,E,WCtEF,OAxDYd,IAAoB,IAAnB,UAAEc,GAAWd,EACxB,MAAM,EAACC,EAAO,EAACuS,IAAanR,EAAAA,EAAAA,WAAS,GAErC,OACEW,EAAAA,cAAA,OAAKC,UAAU,OACbD,EAAAA,cAAA,OAAKC,UAAU,sBACbD,EAAAA,cAAA,OAAKC,UAAU,sCAAsCwC,GAAG,4BACtDzC,EAAAA,cAAA,KACEC,UAAU,oDACVwC,GAAG,mCAEHzC,EAAAA,cAAA,UACEC,UAAW,0CAAyChC,EAAS,GAAK,aAClEyE,KAAK,SACL,gBAAezE,EACf0E,QAASA,IAAM6N,GAAWvS,GAC1B,gBAAc,6BAEbiC,EAAAA,EAAAA,IAAYpB,EAAW,sCAG5BkB,EAAAA,cAAC4C,EAAAA,EAAQ,CAACC,GAAI5E,GACZ+B,EAAAA,cAAA,OACEyC,GAAG,mBACHxC,UAAU,0CACV,kBAAgB,sBAEhBD,EAAAA,cAAA,OAAKC,UAAU,uCACbD,EAAAA,cAAA,UAAIE,EAAAA,EAAAA,IAAYpB,EAAW,qBAC3BkB,EAAAA,cAAA,KAAGC,UAAU,yCACXD,EAAAA,cAAA,OACEuD,IAAI,qCACJC,IAAI,GACJvD,UAAU,qCAEZD,EAAAA,cAAA,YACEA,EAAAA,cAAA,QAAMC,UAAU,eAAcC,EAAAA,EAAAA,IAAYpB,EAAW,mBAAmB,KAAS,KAChFoB,EAAAA,EAAAA,IAAYpB,EAAW,qCAAqC,MAC7DkB,EAAAA,cAAA,KACE2F,OAAO,SACPc,IAAI,aACJN,MAAMjG,EAAAA,EAAAA,IAAYpB,EAAW,oBAE5BoB,EAAAA,EAAAA,IAAYpB,EAAW,0BASpC,E,2CC6UV,OApVqB2R,IACnB,MAAM,SAAEhN,IAAajF,EAAAA,EAAAA,YAAWkF,EAAAA,IAC1B,MAAEyJ,EAAK,aAAEC,EAAY,cAAEsD,EAAa,cAAEC,EAAa,QAAE1R,IAAYT,EAAAA,EAAAA,YAAWiM,EAAAA,IAC1ExL,QAAS2R,IAAuBpS,EAAAA,EAAAA,YAAWU,EAAAA,IAC7C,SAAEmO,IAAa7O,EAAAA,EAAAA,YAAW8O,EAAAA,IAC1B,eAAEuD,IAAmBrS,EAAAA,EAAAA,YAAWsS,EAAAA,GAChCvD,GAAYxO,EAAAA,EAAAA,IAAa0R,EAAMM,YAAYxS,SAC3C,EAAC+B,IAAQjB,EAAAA,EAAAA,UAAS2R,GAAQP,EAAMnQ,KAAK2Q,qBAAsBR,EAAMM,YAAYxS,UAC7E,EAAC2S,EAAQ,EAACC,IAAc9R,EAAAA,EAAAA,WAAS,GACjCP,GAAYoP,EAAAA,EAAAA,GAAeuC,EAAMM,YAAYxS,QAC7C6S,GAAyBpS,EAAAA,GAAAA,GAAoByR,EAAMM,YAAYxS,QAC/D8S,GCkBgC9S,EDlBoBkS,EAAMM,YAAYxS,QCmBrE+S,EAAAA,EAAAA,KAAkD9J,EAAAA,EAAAA,IA5EvC,aA4EuEjJ,IADnDA,MDjBtC,MAAMgT,EEiBwChT,KACvC+S,EAAAA,EAAAA,KAAkD9J,EAAAA,EAAAA,IA5EvC,cA4EuEjJ,GFlB/CiT,CACxCf,EAAMM,YAAYxS,SAEd,EAACkN,EAAS,EAACgG,IAAepS,EAAAA,EAAAA,UAAS,IACnC,EAACiL,EAAQ,EAACqD,IAActO,EAAAA,EAAAA,WAAS,IACjC,EAACqS,EAAoB,EAACC,IAA0BtS,EAAAA,EAAAA,WAAS,IACzD,EAACuS,GAAe,EAACC,KAAqBxS,EAAAA,EAAAA,UAASyS,EAAAA,KAC/C,EAAC/E,GAAQ,EAACgF,KAAc1S,EAAAA,EAAAA,aACxB,EAAC2S,GAAmB,EAACC,KAAyB5S,EAAAA,EAAAA,UAAS,OACvD,EAAC6S,GAAgB,EAACC,KAAsB9S,EAAAA,EAAAA,UAAS,OACjD,EAACiD,GAAiB,EAAC8P,KAAuB/S,EAAAA,EAAAA,UAAS,OACnD,EAACgT,GAAyB,EAACC,KAA+BjT,EAAAA,EAAAA,UAAS,OACnE,EAACkT,GAAa,EAACC,KAAmBnT,EAAAA,EAAAA,UAAS,OAC3C,EAACoT,GAAc,EAACC,KAAoBrT,EAAAA,EAAAA,UAAS,KAC7C,EAACsT,GAAe,EAACC,KAAqBvT,EAAAA,EAAAA,WAAS,IAC/C,EAACsE,GAAoB,EAACC,KAA0BvE,EAAAA,EAAAA,YAEhDwT,IAA4BlU,EAAAA,EAAAA,QAAO,MAwKzC,SAASmU,KACPnB,GAAuB,EACzB,CAMA,SAASoB,GAA2BC,GAClC,SAAIA,GAAmD,OAAjCA,EAAeC,cAIvC,CAEA,SAASC,GAAqBF,GAC5B,SAAIA,GAAmD,OAAjCA,EAAeC,cAIvC,CAEA,OA5LAnT,EAAAA,EAAAA,YAAU,KACR,IAAIqT,GAAwB,EAE5B,SAAS1E,EAAcxB,EAAYmG,GACjCzF,GAAW,GACXkF,GAA0BlK,SAAU9H,EAAAA,EAAAA,KACpC,IACIwS,EADAC,EAAmB,GAGP,IAAZpC,GACFqC,EAAAA,EAAAA,IACEtG,EACA2D,EACAwC,EACA/F,EACAwF,GAA0BlK,SAEzB5H,MAAMyS,IACDA,SAAAA,EAAczG,SAChB8E,GAAkB,IACb2B,EAAazG,QAAQ0G,oBACxBC,oBAAqBP,IAEvBpB,GAAWyB,EAAazG,SAEpByG,EAAazG,QAAQ4G,cACvBlC,EAAY+B,EAAazG,QAAQ6G,WAAWD,aAC5CL,EAAmBE,EAAazG,QAAQ4G,eAG1ClC,EAAY,GACZI,GAAkB,IACbC,EAAAA,GACH4B,oBAAqBP,KAGzBxF,GAAW,GACXkF,GAA0BlK,QAAU,KAEpC,IACE,MAAMkL,EACJvT,EAAKyE,SAAWzE,EAAKyE,QAAQmI,aACzB4G,EAAAA,GAAAA,IAA+BxT,EAAKyE,QAAQmI,kBAC5CnD,EACNnG,IACEmQ,EAAAA,EAAAA,IACElD,EACAwC,OACAtJ,EACAzJ,EAAK2M,WACL4G,EACAP,EACAhT,EAAKyE,SAAWzE,EAAKyE,QAAQiP,MAAQ1T,EAAKyE,QAAQiP,MAAM,QAAKjK,EAC7D0G,EAAMM,YAAYxS,OAClBmS,EACAC,GAGN,CAAE,MAAO9B,IACPC,EAAAA,EAAAA,IAAa,kCAAmCD,EAClD,KAED5N,OAAO4N,KACNC,EAAAA,EAAAA,IAAa,qBAAsBD,GACnC4C,EAAY,GACZI,GAAkB,IACbC,EAAAA,GACH4B,oBAAqBP,IAEvBxF,GAAW,GACXkF,GAA0BlK,QAAU,IAAI,KAG5CgF,GAAW,GACXkE,GAAkB,IACbC,EAAAA,GACH4B,oBAAqBP,IAEvBN,GAA0BlK,QAAU,KAExC,EAEqB,IAAjByE,KAC6B,KAA3B6B,EAAAA,EAAAA,IAAgB9B,IAAmByD,IACrB,IAAZM,IACFiC,EAAwBJ,GAA2BnC,IAErDgC,GAAkBM,GAAqBtC,IAEG,OAAtCiC,GAA0BlK,SAC5B8F,EAAcnO,EAAK2M,YAAYiC,EAAAA,EAAAA,IAAsB0B,EAAoBrD,MAEvC,KAA3B0B,EAAAA,EAAAA,IAAgB9B,MACT,IAAZ+D,IACFiC,EAAwBJ,GAA2B9T,IAErD2T,GAAkBM,GAAqBjU,IAEG,OAAtC4T,GAA0BlK,SAC5B8F,EAAcnO,EAAK2M,WAAY,OAGrC,GACC,CAAC3M,EAAK2M,WAAYG,EAAcD,EAAOyD,EAAoBM,EAAS2B,MAEvE/S,EAAAA,EAAAA,YAAU,KAAO,IAADmU,EACd9C,EAAyC,UAA9B7Q,SAAa,QAAT2T,EAAJ3T,EAAMyE,eAAO,IAAAkP,OAAT,EAAJA,EAAeC,YAAsB,GAC/C,CAAC5T,KAEJR,EAAAA,EAAAA,YAAU,KACJQ,EAAKyE,UACHzE,EAAKyE,QAAQmI,YACf+E,IAAsB6B,EAAAA,GAAAA,IAA+BxT,EAAKyE,QAAQmI,cAElE+E,GAAsB,MAGpB3R,EAAKyE,QAAQoP,WACfhC,GAAmB,kCAAkC7R,EAAKyE,QAAQoP,cAElEhC,GAAmB,MAGjB7R,EAAKyE,SACPqN,GACEgC,GJ3MH,SAA6B9T,EAAM+Q,GACxC,IAAI/O,EAAmB,CAAC,EAwiCxB,OAviCI+O,GACFvO,OAAOC,KAAKsO,GAA2B1J,SAASnH,IAC9C,OAAQA,GACN,IAAK,6BACCF,EAAK+T,WACPvK,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAK+T,WAGT,MACF,IAAK,wCACC/T,EAAKgU,sBACPxK,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,yCACvC/Q,EAAKgU,sBAGT,MACF,IAAK,6BACChU,EAAKiU,WAAajU,EAAKiU,UAAU,IACnCzK,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAKiU,WAGT,MACF,IAAK,yBACCjU,EAAKkU,OACP1K,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,0BACvC/Q,EAAKkU,OAGT,MACF,IAAK,8BACClU,EAAKmU,YACP3K,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,+BACvC/Q,EAAKmU,YAGT,MACF,IAAK,8DACCnU,EAAKoU,4CACP5K,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,+DAEF/Q,EAAKoU,4CAGT,MACF,IAAK,oDACCpU,EAAKqU,0DACP7K,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,qDAEF/Q,EAAKqU,0DAGT,MACF,IAAK,yCACCrU,EAAKsU,uBACP9K,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,0CACvC/Q,EAAKsU,uBAGT,MACF,IAAK,sDACCtU,EAAKuU,wCACP/K,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,uDAEF/Q,EAAKuU,wCAGT,MACF,IAAK,0BACCvU,EAAKwU,QACPhL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAKwU,QAGT,MACF,IAAK,0BACCxU,EAAKyU,QACPjL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAKyU,QAGT,MACF,IAAK,wBACCzU,EAAK0U,MAAQ1U,EAAK0U,KAAK,IACzBlL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,yBACvC/Q,EAAK0U,KAAK,IAGd,MACF,IAAK,6CACC1U,EAAK2U,2BACPnL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8CACvC/Q,EAAK2U,2BAGT,MACF,IAAK,8EACC3U,EAAK4U,4DACPpL,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,+EAEF/Q,EAAK4U,4DAGT,MACF,IAAK,4BACC5U,EAAK6U,UACPrL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6BACvC/Q,EAAK6U,UAGT,MACF,IAAK,0BACC7U,EAAK8U,QACPtL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAK8U,QAGT,MACF,IAAK,6CACC9U,EAAK+U,2BACPvL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8CACvC/Q,EAAK+U,2BAGT,MACF,IAAK,6BACC/U,EAAKgV,WACPxL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAKgV,WAGT,MACF,IAAK,6CACChV,EAAKiV,2BACPzL,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8CACvC/Q,EAAKiV,2BAGT,MACF,IAAK,0BACCjV,EAAK2B,QACP6H,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAK2B,QAGT,MACF,IAAK,yBACC3B,EAAKkV,OACP1L,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,0BACvC/Q,EAAKkV,OAIT,MACF,IAAK,4BACClV,EAAKmV,UACP3L,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6BACvC/Q,EAAKmV,UAGT,MACF,IAAK,8BACCnV,EAAKoV,YACP5L,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,+BACvC/Q,EAAKoV,YAGT,MAEF,IAAK,wBACCpV,EAAKqV,MACP7L,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,yBACvC/Q,EAAKqV,MAGT,MACF,IAAK,kCACCrV,EAAKsV,gBACP9L,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,mCACvC/Q,EAAKsV,gBAGT,MACF,IAAK,4BACCtV,EAAKuV,UACP/L,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6BACvC/Q,EAAKuV,UAGT,MACF,IAAK,0BACCvV,EAAKwV,QACPhM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAKwV,QAGT,MACF,IAAK,0BACCxV,EAAKyV,QACPjM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAKyV,QAGT,MAEF,IAAK,8BACCzV,EAAK0V,YACPlM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,+BACvC/Q,EAAK0V,YAGT,MACF,IAAK,kCACC1V,EAAK2V,gBACPnM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,mCACvC/Q,EAAK2V,gBAGT,MACF,IAAK,mCACC3V,EAAK4V,iBACPpM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,oCACvC/Q,EAAK4V,iBAGT,MACF,IAAK,qCACC5V,EAAK6V,mBACPrM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,sCACvC/Q,EAAK6V,mBAGT,MACF,IAAK,uCACC7V,EAAK8V,qBACPtM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,wCACvC/Q,EAAK8V,qBAGT,MACF,IAAK,0BACC9V,EAAK+V,QACPvM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAK+V,QAGT,MACF,IAAK,yBACC/V,EAAKgW,OACPxM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,0BACvC/Q,EAAKgW,OAGT,MACF,IAAK,6BACChW,EAAKiW,WACPzM,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAKiW,WAGT,MACF,IAAK,yBACCjW,EAAKkW,OACP1M,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,0BACvC/Q,EAAKkW,OAGT,MACF,IAAK,6BACClW,EAAKmW,WACP3M,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAKmW,WAGT,MACF,IAAK,gCACCnW,EAAKoW,cACP5M,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,iCACvC/Q,EAAKoW,cAGT,MACF,IAAK,uCACCpW,EAAKqW,qBACP7M,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,wCACvC/Q,EAAKqW,qBAGT,MACF,IAAK,sCACCrW,EAAKsW,oBACP9M,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,uCACvC/Q,EAAKsW,oBAGT,MACF,IAAK,sCACCtW,EAAKuW,oBACP/M,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,uCACvC/Q,EAAKuW,oBAGT,MACF,IAAK,sCACCvW,EAAKwW,oBACPhN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,uCACvC/Q,EAAKwW,oBAGT,MACF,IAAK,4CACCxW,EAAKyW,0BACPjN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6CACvC/Q,EAAKyW,0BAGT,MACF,IAAK,wCACCzW,EAAK0W,sBACPlN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,yCACvC/Q,EAAK0W,sBAGT,MACF,IAAK,iDACC1W,EAAK2W,+BACPnN,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,kDAEF/Q,EAAK2W,+BAGT,MACF,IAAK,qCACC3W,EAAK4W,mBACPpN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,sCACvC/Q,EAAK4W,mBAGT,MACF,IAAK,uCACC5W,EAAK6W,qBACPrN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,wCACvC/Q,EAAK6W,qBAGT,MACF,IAAK,6BACC7W,EAAK8W,WACPtN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAK8W,WAGT,MACF,IAAK,2BACC9W,EAAK+W,SACPvN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,4BACvC/Q,EAAK+W,SAGT,MACF,IAAK,4BACC/W,EAAKgX,UACPxN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6BACvC/Q,EAAKgX,UAGT,MACF,IAAK,4BACChX,EAAKiX,UACPzN,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6BACvC/Q,EAAKiX,UAGT,MACF,IAAK,+BACCjX,EAAKkX,aACP1N,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,gCACvC/Q,EAAKkX,aAGT,MACF,IAAK,2BACClX,EAAKmX,SACP3N,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,4BACvC/Q,EAAKmX,SAGT,MACF,IAAK,yBACCnX,EAAKoX,OACP5N,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,0BACvC/Q,EAAKoX,OAGT,MACF,IAAK,wDACCpX,EAAKqX,sCACP7N,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,yDAEF/Q,EAAKqX,sCAGT,MACF,IAAK,uDACCrX,EAAKsX,qCACP9N,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,wDAEF/Q,EAAKsX,qCAGT,MACF,IAAK,4EACCtX,EAAKqU,0DACP7K,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,6EAEF/Q,EAAKqU,0DAGT,MACF,IAAK,uEACCrU,EAAKuX,qDACP/N,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,wEAEF/Q,EAAKuX,qDAGT,MACF,IAAK,uEACCvX,EAAKwX,qDACPhO,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,wEAEF/Q,EAAKwX,qDAGT,MACF,IAAK,sEACCxX,EAAKyX,oDACPjO,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,uEAEF/Q,EAAKyX,oDAGT,MACF,IAAK,0DACCzX,EAAK0X,wCACPlO,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,2DAEF/Q,EAAK0X,wCAGT,MACF,IAAK,uCACC1X,EAAK2X,qBACPnO,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,wCACvC/Q,EAAK2X,qBAGT,MACF,IAAK,oEACC3X,EAAK4X,kDACPpO,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,qEAEF/Q,EAAK4X,kDAGT,MACF,IAAK,yEACC5X,EAAK6X,uDACPrO,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,0EAEF/Q,EAAK6X,uDAGT,MACF,IAAK,6BACC7X,EAAK8X,WACPtO,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAK8X,WAGT,MACF,IAAK,8CACC9X,EAAK+X,4BACPvO,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,+CACvC/Q,EAAK+X,4BAGT,MACF,IAAK,iCACC/X,EAAKgY,eACPxO,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,kCACvC/Q,EAAKgY,eAGT,MACF,IAAK,4BACChY,EAAKiY,UACPzO,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6BACvC/Q,EAAKiY,UAGT,MACF,IAAK,6BACCjY,EAAKkY,WACP1O,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8BACvC/Q,EAAKkY,WAGT,MACF,IAAK,4CACClY,EAAKmY,0BACP3O,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6CACvC/Q,EAAKmY,0BAGT,MACF,IAAK,4BACCnY,EAAKoY,UACP5O,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6BACvC/Q,EAAKoY,UAGT,MACF,IAAK,oCACCpY,EAAKqY,kBACP7O,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,qCACvC/Q,EAAKqY,kBAGT,MACF,IAAK,sDACCrY,EAAKsY,oCACP9O,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,uDAEF/Q,EAAKsY,oCAGT,MACF,IAAK,0CACCtY,EAAKuY,wBACP/O,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2CACvC/Q,EAAKuY,wBAGT,MACF,IAAK,oDACCvY,EAAKwY,kCACPhP,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,qDAEF/Q,EAAKwY,kCAGT,MACF,IAAK,yDACCxY,EAAKyY,uCACPjP,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,0DAEF/Q,EAAKyY,uCAGT,MACF,IAAK,qEACCzY,EAAK0Y,mDACPlP,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,sEAEF/Q,EAAK0Y,mDAGT,MACF,IAAK,yBACC1Y,EAAK0T,OACPlK,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,0BACvC/Q,EAAK0T,OAGT,MACF,IAAK,+DACC1T,EAAK2Y,6CACPnP,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,gEAEF/Q,EAAK2Y,6CAGT,MACF,IAAK,+CACC3Y,EAAK4Y,6BACPpP,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,gDAEF/Q,EAAK4Y,6BAGT,MACF,IAAK,kCACC5Y,EAAK6Y,gBACPrP,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,mCACvC/Q,EAAK6Y,gBAGT,MAEF,IAAK,8BACC7Y,EAAK8Y,YACPtP,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,+BACvC/Q,EAAK8Y,YAGT,MACF,IAAK,8CACC9Y,EAAK+Y,4BACPvP,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,+CACvC/Q,EAAK+Y,4BAGT,MACF,IAAK,2CACC/Y,EAAKgZ,yBACPxP,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,4CACvC/Q,EAAKgZ,yBAGT,MACF,IAAK,sFACChZ,EAAKiZ,oEACPzP,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,uFAEF/Q,EAAKiZ,oEAGT,MAEF,IAAK,kCACCjZ,EAAKkZ,gBACP1P,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,mCACvC/Q,EAAKkZ,gBAGT,MACF,IAAK,uCACClZ,EAAKmZ,qBACP3P,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,wCACvC/Q,EAAKmZ,qBAGT,MACF,IAAK,0CACCnZ,EAAKoZ,wBACP5P,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2CACvC/Q,EAAKoZ,wBAGT,MACF,IAAK,4CACCpZ,EAAKqZ,0BACP7P,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6CACvC/Q,EAAKqZ,0BAGT,MACF,IAAK,4CACCrZ,EAAKsZ,0BACP9P,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,6CACvC/Q,EAAKsZ,0BAGT,MACF,IAAK,wEACCtZ,EAAKuZ,sDACP/P,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,yEAEF/Q,EAAKuZ,sDAGT,MACF,IAAK,mFACCvZ,EAAKwZ,iEACPhQ,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,oFAEF/Q,EAAKwZ,iEAGT,MAEF,IAAK,sFACCxZ,EAAKyZ,oEACPjQ,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,uFAEF/Q,EAAKyZ,oEAGT,MACF,IAAK,2DACCzZ,EAAK0Z,yCACPlQ,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,4DAEF/Q,EAAK0Z,yCAGT,MACF,IAAK,2DACC1Z,EAAK2Z,yCACPnQ,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,4DAEF/Q,EAAK2Z,yCAGT,MACF,IAAK,2DACC3Z,EAAK4Z,yCACPpQ,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,4DAEF/Q,EAAK4Z,yCAGT,MACF,IAAK,sCACC5Z,EAAK6Z,oBACPrQ,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,uCACvC/Q,EAAK6Z,oBAGT,MACF,IAAK,kDACC7Z,EAAK8Z,gCACPtQ,EACExH,GACApC,EAAAA,EAAAA,IACEmR,EACA,mDAEF/Q,EAAK8Z,gCAGT,MACF,IAAK,0BACC9Z,EAAK+Z,QACPvQ,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2BACvC/Q,EAAK+Z,QAGT,MACF,IAAK,0CACC/Z,EAAKga,wBACPxQ,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,2CACvC/Q,EAAKga,wBAGT,MACF,IAAK,mCACCha,EAAKia,iBACPzQ,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,oCACvC/Q,EAAKia,iBAGT,MACF,IAAK,8BACCja,EAAKka,YACP1Q,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,+BACvC/Q,EAAKka,YAGT,MACF,IAAK,kCACCla,EAAKma,gBACP3Q,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,mCACvC/Q,EAAKma,gBAGT,MACF,IAAK,oCACCna,EAAKoa,kBACP5Q,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,qCACvC/Q,EAAKoa,kBAGT,MACF,IAAK,6CACCpa,EAAKqa,2BACP7Q,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,8CACvC/Q,EAAKqa,2BAGT,MACF,IAAK,2CACCra,EAAKsa,yBACP9Q,EACExH,GACApC,EAAAA,EAAAA,IAAYmR,EAA2B,4CACvC/Q,EAAKsa,yBAOb,IAIGtY,CACT,CI91BYuY,CAAoBva,EAAKyE,QAASsM,KAItCiB,GAwOR,SAAoCwI,EAAUC,GAC5C,IAAIlO,EAAQuH,GAA8B0G,GAE1C,GAAIjO,EAAO,CACT,IAAImO,EAAiB,CAAC,EACtB,MAAMjY,EAAOD,OAAOC,KAAK8J,GACzB,IAAIoO,EAAQ,EACZ,IAAK,IAAIC,EAAQ,EAAGA,EAAQnY,EAAKoY,QAAUF,EAAQF,EAAcG,IAAS,CACxE,MAAM9Y,EAAOW,EAAKmY,GACZlZ,EAAQ6K,EAAMzK,GACpB4Y,EAAe5Y,GAAQJ,CACzB,CAEA6K,EAAQmO,CACV,CAEA,OAAOnO,CACT,CAxPUuO,CJ21BH,SAAqC9a,EAAMiR,GAChD,IAAIc,EAA2B,CAAC,EA6ThC,OA3TId,GACFzO,OAAOC,KAAKwO,GAAmC5J,SAASnH,IACtD,OAAQA,GACN,IAAK,qCACCF,EAAK+T,WACPvK,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,sCAC/CjR,EAAK+T,WAGT,MACF,IAAK,qCACC/T,EAAKiU,WAAajU,EAAKiU,UAAU,IACnCzK,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,sCAC/CjR,EAAKiU,UAAU,IAGnB,MACF,IAAK,iCACCjU,EAAKkU,OACP1K,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,kCAC/CjR,EAAKkU,OAGT,MACF,IAAK,sCACClU,EAAKmU,YACP3K,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,uCAC/CjR,EAAKmU,YAGT,MACF,IAAK,sEACCnU,EAAKoU,4CACP5K,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,uEAEFjR,EAAKoU,4CAGT,MACF,IAAK,oFACCpU,EAAKqU,0DACP7K,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,qFAEFjR,EAAKqU,0DAGT,MACF,IAAK,iDACCrU,EAAKsU,uBACP9K,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,kDAEFjR,EAAKsU,uBAGT,MACF,IAAK,8DACCtU,EAAKuU,wCACP/K,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,+DAEFjR,EAAKuU,wCAGT,MACF,IAAK,kDACCvU,EAAKga,wBACPxQ,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,mDAEFjR,EAAKga,wBAGT,MACF,IAAK,kCACCha,EAAKwU,QACPhL,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,mCAC/CjR,EAAKwU,QAGT,MACF,IAAK,kCACCxU,EAAKyU,QACPjL,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,mCAC/CjR,EAAKyU,QAGT,MACF,IAAK,gCACCzU,EAAK0U,MACPlL,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,iCAC/CjR,EAAK0U,MAGT,MACF,IAAK,qDACC1U,EAAK2U,2BACPnL,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,sDAEFjR,EAAK2U,2BAGT,MACF,IAAK,sFACC3U,EAAK4U,4DACPpL,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,uFAEFjR,EAAK4U,4DAGT,MACF,IAAK,oCACC5U,EAAK6U,UACPrL,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,qCAC/CjR,EAAK6U,UAGT,MACF,IAAK,kCACC7U,EAAK8U,QACPtL,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,mCAC/CjR,EAAK8U,QAGT,MACF,IAAK,4EACC9U,EAAK4X,kDACPpO,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,6EAEFjR,EAAK4X,kDAGT,MAEF,IAAK,qCACC5X,EAAKgV,WACPxL,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,sCAC/CjR,EAAKgV,WAGT,MACF,IAAK,qDACChV,EAAKiV,2BACPzL,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,sDAEFjR,EAAKiV,2BAGT,MACF,IAAK,kCACCjV,EAAK2B,SACP6H,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,sDAEFjR,EAAKiV,2BAEPlD,GACEnS,EAAAA,EAAAA,IAAYqR,EAAmC,oCAC7CjR,EAAK2B,QAEX,MACF,IAAK,iCACC3B,EAAK+a,WACPvR,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,kCAC/CjR,EAAKkV,OAGT,MACF,IAAK,iDACClV,EAAKgb,uBACPxR,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,kDAEFjR,EAAKgb,uBAGT,MACF,IAAK,gCACChb,EAAKqV,MACP7L,EACEuI,GACAnS,EAAAA,EAAAA,IAAYqR,EAAmC,iCAC/CjR,EAAKqV,MAGT,MACF,IAAK,kEACCrV,EAAK0X,wCACPlO,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,mEAEFjR,EAAK0X,wCAGT,MACF,IAAK,+CACC1X,EAAK2X,qBACPnO,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,gDAEFjR,EAAK2X,qBAGT,MAEF,IAAK,8CACC3X,EAAK6Z,oBACPrQ,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,+CAEFjR,EAAK6Z,oBAGT,MACF,IAAK,wCACC7Z,EAAKib,cACPzR,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,yCAEFjR,EAAKib,cAGT,MACF,IAAK,8FACCjb,EAAKyZ,oEACPjQ,EACEuI,GACAnS,EAAAA,EAAAA,IACEqR,EACA,+FAEFjR,EAAKyZ,oEAOb,IAIG1H,CACT,CIzpCYmJ,CAA4Blb,EAAKyE,QAASwM,GAC1C,IAIAjR,EAAKyE,QAAQ0W,SACfjJ,GAAgBlS,EAAKyE,QAAQ0W,SAASpY,MAAM,MAE5CmP,GAAgB,QAGlBJ,GAAoB,MACpBE,GAA4B,MAC5BE,GAAgB,OAEpB,GACC,CAAClS,EAAKyE,WAETjF,EAAAA,EAAAA,YAAU,KACR,IAAI2S,EAAgB,GAChBnS,EAAKob,YACPpb,EAAKob,WAAW/T,SAASrE,IACvBmP,EAAckJ,MAAKC,EAAAA,EAAAA,GAAStY,EAAQuY,gBAAgBC,iBAAiB,IAGzEpJ,GAAiBD,EAAc,GAC9B,CAACnS,EAAKob,cAET5b,EAAAA,EAAAA,YAAU,KACJ2D,GAAYE,KACdoY,EAAAA,EAAAA,IAA4BtY,EAAUE,GACxC,GACC,CAACF,EAAUE,KAyBZ3D,EAAAA,cAACgc,EAAAA,EAAM,CACLzd,OAAQkS,EAAMM,YAAYxS,OAC1B0d,SAAUxL,EAAMM,YAAYkL,SAC5BC,cAAezL,EAAMM,YAAYmL,cACjCC,WAAW,EACX1Z,GAAIgO,EAAMM,YAAYqL,OAEtBpc,EAAAA,cAAA,WAASC,UAAU,mCACjBD,EAAAA,cAAA,OAAKC,UAAU,aACbD,EAAAA,cAAA,OAAKC,UAAU,OACbD,EAAAA,cAAA,OAAKC,UAAU,iBACbD,EAAAA,cAAA,KAAGC,UAAU,4CAA4CK,EAAK2M,YAC9DjN,EAAAA,cAAA,MAAIC,UAAU,yBAAyB+R,IACvChS,EAAAA,cAACmJ,EAAU,CAACrK,UAAWA,EAAWwB,KAAMA,EAAKyE,UAC7C/E,EAAAA,cAAA,OAAKC,UAAU,qCACbD,EAAAA,cAAA,OAAKC,UAAU,gCACZwS,IAAiBA,GAAc0I,OAAS,EACvCnb,EAAAA,cAACqc,EAAkB,CAACjZ,OAAQqP,KAC1BP,GACFlS,EAAAA,cAAA,OAAKuD,IAAK2O,GAAiB1O,IAAKlD,EAAK2M,aACnC,MAENjN,EAAAA,cAAA,OAAKC,UAAU,4BACbD,EAAAA,cAAA,OAAKC,UAAU,0BACdsS,IAAgBA,GAAa4I,OAAS,EACrCnb,EAAAA,cAAA,MAAIC,UAAU,8CACXsS,GAAavP,KAAI,CAACsZ,EAASpB,IACV,KAAZoB,EACKtc,EAAAA,cAAA,MAAID,IAAKmb,GAAQoB,GAEjB,QAIX,KACJtc,EAAAA,cAAA,aACEA,EAAAA,cAAA,aACGqS,UAECvP,OAAOC,KAAKsP,IAA0BrP,KAAKjD,GAEvCC,EAAAA,cAAA,MAAID,IAAKA,GACPC,EAAAA,cAAA,UAAKD,EAAI,KACTC,EAAAA,cAAA,UAAKqS,GAAyBtS,SAMzCO,EAAKyE,UACLzE,EAAKyE,QAAQM,aACZ/E,EAAKyE,QAAQE,UACb3E,EAAKyE,QAAQG,gBACb5E,EAAKyE,QAAQI,UACb7E,EAAKyE,QAAQK,2CACbpF,EAAAA,cAAA,KAAGC,UAAU,oBAAmBC,EAAAA,EAAAA,IAAYpB,EAAW,sBACrD,KAEHwB,EAAKyE,QAAU/E,EAAAA,cAACuc,EAAS,CAACjc,KAAMA,EAAMxB,UAAWA,IAAgB,OAGtEkB,EAAAA,cAAA,OAAKC,UAAU,OACbD,EAAAA,cAAA,OAAKC,UAAU,yDACZK,EAAKyE,UACLzE,EAAKyE,QAAQM,aAAe/E,EAAKyE,QAAQC,wBACxChF,EAAAA,cAACwc,EAAG,CACF1d,UAAWA,EACX+H,YAAavG,EAAKyE,QAAQ2B,eAC1BI,qBAAsBxG,EAAKyE,QAAQC,uBACnC+B,oBAAqBzG,EAAKyE,QAAQgC,oBAClCC,iBAAkB1G,EAAKyE,QAAQiC,iBAC/BzI,OAAQkS,EAAMM,YAAYxS,OAC1B0I,WAAY3G,EAAKyE,QAAQQ,SAEzB,KACJvF,EAAAA,cAACyc,EAAgB,CAAC3d,UAAWA,EAAWwD,iBAAkBA,KACzDhC,EAAKyE,SAAWzE,EAAKyE,QAAQ2X,aAC5B1c,EAAAA,cAAC2c,EAAU,CAAC1Z,gBAAiB3C,EAAKyE,QAAQ2X,aAAc5d,UAAWA,IACjE,MAENkB,EAAAA,cAAC4c,EAAAA,EAAc,CACbC,UAAU,EACVvS,QAASA,EACTsH,eAAgBA,GAChB7E,QAASA,GACTtB,SAAUA,EACVyB,YAAa8E,GACb8K,oBAAqBrL,EACrBsL,0BAA2BjK,GAC3BkK,sBAAuB1c,MAI7BN,EAAAA,cAAC4c,EAAAA,EAAc,CACbC,UAAU,EACVvS,QAASA,EACTsH,eAAgBA,GAChB7E,QAASA,GACTtB,SAAUA,EACVyB,YAAa8E,GACb8K,oBAAqBrL,EACrBsL,0BAA2BjK,GAC3BkK,sBAAuB1c,KAG1BA,EAAKyE,QAAU/E,EAAAA,cAACid,EAAW,CAACne,UAAWA,EAAWwB,KAAMA,IAAW,KACnEqS,GAAiB3S,EAAAA,cAACkd,GAAG,CAACpe,UAAWA,IAAoB,OAG1DkB,EAAAA,cAACmd,GAAAA,EAAS,CACRlf,OAAQyT,EACRxT,WAlIN,WACEyT,GAAuB,EACzB,EAiIMxT,YAAamC,EAAK2M,WAClBH,OAAO5M,EAAAA,EAAAA,IAAYkR,EAAwB,+BAC3CgM,UAAWC,GAAAA,IAEbrd,EAAAA,cAACsd,EAAAA,EAAU,CAAC7a,GAAIgO,EAAMM,YAAYqL,MAAOmB,WAAYjd,EAAK2M,aACnD,EAKN,SAASuQ,GAAIxf,GAAyB,IAAxB,YAAE+S,EAAW,KAAEzQ,GAAMtC,EACxC,MAAMyf,GAAcC,EAAAA,EAAAA,GAAe,CACjCnf,OAAQwS,EAAYxS,OACpB0d,SAAUlL,EAAYkL,WAElB0B,GAASC,EAAAA,EAAAA,GAAmB7M,IAC5B,EAAC8M,IAAmBxe,EAAAA,EAAAA,UAAS0R,EAAY8M,kBACzC,EAACC,IAAaze,EAAAA,EAAAA,UAEpB,WAAyB,IAAD0e,EACtB,MAAMC,EAAYhN,GAAQ1Q,EAAK2Q,qBAAsBF,EAAYxS,QAC3D0f,GAAqBC,EAAAA,GAAAA,GAAgCF,SAAkB,QAATD,EAATC,EAAWjZ,eAAO,IAAAgZ,OAAT,EAATA,EAAoB7Q,aACzEA,EAAc+Q,EAAqB,MAAMA,IAAuB,GACtE,OAAOD,EAAU/Q,WAAaC,CAChC,CAP6BiR,IAS7B,OACEne,EAAAA,cAAAA,EAAAA,SAAA,KACG2d,EACAF,EACDzd,EAAAA,cAACoe,GAAAA,GAAG,CAACtR,MAAOgR,EAAW5Q,YAAa2Q,EAAiBQ,iBAAiB,IAG5E,CAEA,SAASjK,GAA8B0G,GACrC,IAAIjO,EAAQ,CAAC,EAEb,GAAIiO,EAAU,CACZ,MAAM/X,EAAOD,OAAOC,KAAK+X,GAEzB,IAAK,IAAII,EAAQ,EAAGA,EAAQnY,EAAKoY,OAAQD,IAAS,CAChD,MAAM9Y,EAAOW,EAAKmY,GAClB,IAAIlZ,EAAQ8Y,EAAS1Y,GAEjBJ,IACFA,EAAQsc,MAAMC,QAAQvc,GAASA,EAAMwc,KAAK,MAAQxc,EAClD6K,EAAMzK,GAAQJ,EAElB,CAEkC,IAA9Bc,OAAOC,KAAK8J,GAAOsO,SACrBtO,EAAQ,KAEZ,MACEA,EAAQ,KAGV,OAAOA,CACT,CAqBA,SAASmE,GAAQyN,EAAQlgB,GACvB,IAAK,IAAImgB,EAAI,EAAGA,EAAID,EAAO/W,MAAMyT,OAAQuD,IAAK,CAC5C,IAAIC,EAAOF,EAAO/W,MAAMgX,GACxB,GAAIC,EAAK/W,cAAgBrJ,EACvB,OAAOogB,CAEX,CAGF,C","sources":["webpack://imi-webstore/./src/components/modal/productRequestAQuoteModal.js","webpack://imi-webstore/./src/hooks/useHideFromSpiders.js","webpack://imi-webstore/./src/components/productDetail/technicalDetails.js","webpack://imi-webstore/./src/components/productDetail/schematics.js","webpack://imi-webstore/./src/components/productDetail/downloads.js","webpack://imi-webstore/./src/components/productDetail/navigation.js","webpack://imi-webstore/./src/components/productDetail/cad.js","webpack://imi-webstore/./src/hooks/navigation/useGenericConfiguratorNavigation.js","webpack://imi-webstore/./src/components/productDetail/productImageSwiper.js","webpack://imi-webstore/./src/services/productPageMicrocopyService.js","webpack://imi-webstore/./src/components/widgets/searchResult.js","webpack://imi-webstore/./src/components/productDetail/accessories.js","webpack://imi-webstore/./src/components/productDetail/p65.js","webpack://imi-webstore/./src/templates/productPage.js","webpack://imi-webstore/./src/hooks/i18n/useTechnicalDetailsI18n.js","webpack://imi-webstore/./src/hooks/i18n/usePriorityTechnicalDetailsI18n.js"],"sourcesContent":["import React, { useContext, useRef } from 'react'\r\nimport { FormProvider, useForm } from 'react-hook-form'\r\nimport LocaleContext from '../../contexts/localeContext'\r\nimport { useCountriesForFormsDictionary } from '../../hooks/useCountriesForFormsDictionary'\r\nimport { useCountries } from '../../hooks/useCountries'\r\nimport { useRequestQuoteI18n } from '../../hooks/i18n/useRequestAQuoteI18n'\r\nimport GeolocationContext from '../../contexts/geolocationContext'\r\nimport { useState } from 'react'\r\nimport { useEffect } from 'react'\r\nimport TextInput from '../formInputs/textInput'\r\nimport SelectInput from '../formInputs/selectInput'\r\nimport { getI18nText } from '../../services/i18nService'\r\nimport { submitFormToSalesForce } from '../../services/backendApiService'\r\nimport { useFormI18n } from '../../hooks/i18n/useFormI18n'\r\nimport { ColouredSubmitButton } from '../widgets/standardSubmitButton'\r\nimport { v4 as uuid } from 'uuid'\r\nimport FormDataLayer from '../widgets/formDataLayer'\r\n\r\nconst ProductRequestAQuoteModal = ({ isOpen, closeModal, productCode }) => {\r\n const submitUrl = 'l/1070292/2024-07-24/958vfp'\r\n const methods = useForm()\r\n const locale = useContext(LocaleContext)\r\n const submitRef = useRef(null)\r\n const countriesDictionary = useCountriesForFormsDictionary(locale)\r\n const countries = useCountries(locale)\r\n const microcopy = useRequestQuoteI18n(locale)\r\n const { country } = useContext(GeolocationContext)\r\n const [selectedCountry, setSelectedCountry] = useState()\r\n const [isFormValidated, setIsFormValidated] = useState(false)\r\n const [formSubmitSuccess, setFormSubmitSuccess] = useState(false)\r\n const [formSubmitFailed, setFormSubmitFailed] = useState(false)\r\n const formMicrocopy = useFormI18n(locale)\r\n\r\n useEffect(() => {\r\n if (country) {\r\n setSelectedCountry(country === 'GB' ? 'UK' : country)\r\n } else {\r\n setSelectedCountry(countriesDictionary[0].key)\r\n }\r\n }, [country])\r\n\r\n function onSubmit(data) {\r\n setIsFormValidated(true)\r\n data.requestaquote.item = productCode\r\n\r\n var json = JSON.stringify(data['requestaquote'])\r\n var requestId = uuid()\r\n\r\n submitFormToSalesForce(json, submitUrl, requestId)\r\n .then((data) => {\r\n setFormSubmitSuccess(true)\r\n setFormSubmitFailed(false)\r\n methods.reset()\r\n })\r\n .catch((data) => {\r\n setFormSubmitSuccess(false)\r\n setFormSubmitFailed(true)\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n {formSubmitSuccess || formSubmitFailed ? (\r\n <>\r\n {formSubmitSuccess ? (\r\n <>{getI18nText(microcopy, 'requestaquote.quotesentsuccessfully')}\r\n ) : (\r\n <>{getI18nText(microcopy, 'requestaquote.errorwhensendingquote')}\r\n )}\r\n \r\n ) : (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ProductRequestAQuoteModal\r\n","import React from 'react'\r\n\r\nconst useHideFromSpiders = ({ hideFromSpiders }) => {\r\n if (hideFromSpiders !== null && hideFromSpiders !== undefined && hideFromSpiders === true) {\r\n return \r\n }\r\n\r\n return null\r\n}\r\n\r\nexport default useHideFromSpiders\r\n","import React, { useState } from 'react'\r\nimport { Collapse } from 'react-bootstrap'\r\nimport { getI18nText } from '../../services/i18nService'\r\n\r\nconst TechnicalDetails = ({ microcopy, technicalDetails }) => {\r\n const [technicalDetailsOpen, setTechnicalDetailsOpen] = useState(true)\r\n\r\n return (\r\n
\r\n

\r\n setTechnicalDetailsOpen(!technicalDetailsOpen)}\r\n aria-controls=\"body-tech\"\r\n >\r\n {getI18nText(microcopy, 'product.technicaldetails')}\r\n \r\n

\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {technicalDetails !== null &&\r\n technicalDetails !== undefined &&\r\n Object.keys(technicalDetails).map((key) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n
{key}{technicalDetails[key]}
\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default TechnicalDetails\r\n","import React, { useState } from 'react'\r\nimport { Collapse } from 'react-bootstrap'\r\nimport { getI18nText } from '../../services/i18nService'\r\n\r\nconst Schematics = ({ resSchematicJpg, microcopy }) => {\r\n const [schematicsOpen, setSchematicsOpen] = useState(true)\r\n let images = resSchematicJpg.split('|')\r\n return (\r\n
\r\n

\r\n setSchematicsOpen(!schematicsOpen)}\r\n aria-controls=\"body-schematic\"\r\n >\r\n {getI18nText(microcopy, 'product.schematicanddimensions')}\r\n \r\n

\r\n \r\n \r\n
\r\n
\r\n
\r\n

{getI18nText(microcopy, 'product.dimensions')}

\r\n

{getI18nText(microcopy, 'product.projection')}

\r\n
\r\n
\r\n {resSchematicJpg !== null && resSchematicJpg !== undefined\r\n ? images.map((element) => {\r\n return (\r\n \r\n )\r\n })\r\n : null}\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Schematics\r\n","import React, { useContext, useEffect, useState } from 'react'\r\nimport { getI18nText } from '../../services/i18nService'\r\nimport {\r\n buildBrochureButtonInteractionEvent,\r\n publishBrochureButtonInteractionEvent,\r\n buildCADButtonInteractionEvent,\r\n publishCADButtonInteractionEvent,\r\n buildDatasheetButtonInteractionEvent,\r\n publishDatasheetButtonInteractionEvent,\r\n buildInstallationGuideButtonInteractionEvent,\r\n publishInstallationGuideButtonInteractionEvent,\r\n} from '../../services/dataLayerService'\r\nimport { extractDomain } from '../../services/urlService'\r\nimport { findParentElementA } from '../../services/domService'\r\nimport DataLayerContext from '../../contexts/dataLayerContext'\r\n\r\nconst Downloads = ({ microcopy, data }) => {\r\n const { eventApi } = useContext(DataLayerContext)\r\n const [eventModelToPublish, setEventModelToPublish] = useState()\r\n const [cadUrl, setCadUrl] = useState()\r\n const [cadFileStepUrl, setCadFileStepUrl] = useState()\r\n const [broucherUrl, setBroucherUrl] = useState()\r\n const [technicalSpecsUrl, setTechnicalSpecsUrl] = useState()\r\n const [softwareUrl, setSoftwareUrl] = useState()\r\n const [\r\n installationAndMaintenanceInstructionspPdfUrl,\r\n setInstallationAndMaintenanceInstructionspPdfUrl,\r\n ] = useState()\r\n\r\n useEffect(() => {\r\n if (eventApi && eventModelToPublish) {\r\n if (eventModelToPublish.eventId === 'Brochure') {\r\n publishBrochureButtonInteractionEvent(eventApi, eventModelToPublish.eventModel)\r\n } else if (eventModelToPublish.eventId === 'CAD') {\r\n publishCADButtonInteractionEvent(eventApi, eventModelToPublish.eventModel)\r\n } else if (eventModelToPublish.eventId === 'Datasheet') {\r\n publishDatasheetButtonInteractionEvent(eventApi, eventModelToPublish.eventModel)\r\n } else if (eventModelToPublish.eventId === 'InstallationGuide') {\r\n publishInstallationGuideButtonInteractionEvent(eventApi, eventModelToPublish.eventModel)\r\n }\r\n }\r\n }, [eventApi, eventModelToPublish])\r\n\r\n useEffect(() => {\r\n if (\r\n data.pimData &&\r\n (data.pimData.cadenas_catalogue_path ||\r\n data.pimData.brochure ||\r\n data.pimData.technicalspecs ||\r\n data.pimData.software ||\r\n data.pimData.installationandmaintenanceinstructionspdf ||\r\n data.pimData.cadfilestep)\r\n ) {\r\n let myUrl = null\r\n if (data.pimData.cadenas_catalogue_path) {\r\n myUrl = `https://norgren-embedded.partcommunity.com?info=imi_precision${data.pimData.cadenas_catalogue_path}&varset=`\r\n if (data.pimData.varset) {\r\n myUrl = myUrl + `${data.pimData.varset}`\r\n }\r\n myUrl = myUrl + `&partFixed=false`\r\n }\r\n setCadUrl(myUrl)\r\n\r\n myUrl = null\r\n if (data.pimData.cadfilestep) {\r\n myUrl = 'https://cdn.norgren.com/cad-step/' + data.pimData.cadfilestep\r\n }\r\n setCadFileStepUrl(myUrl)\r\n\r\n myUrl = null\r\n if (data.pimData.brochure) {\r\n myUrl = 'https://cdn.norgren.com/pdf/' + data.pimData.brochure\r\n }\r\n setBroucherUrl(myUrl)\r\n\r\n myUrl = null\r\n if (data.pimData.technicalspecs) {\r\n myUrl = 'https://cdn.norgren.com/pdf/' + data.pimData.technicalspecs\r\n }\r\n setTechnicalSpecsUrl(myUrl)\r\n\r\n myUrl = null\r\n if (data.pimData.software) {\r\n myUrl = 'https://cdn.norgren.com/software/' + data.pimData.software\r\n }\r\n setSoftwareUrl(myUrl)\r\n\r\n myUrl = null\r\n if (data.pimData.installationandmaintenanceinstructionspdf) {\r\n myUrl =\r\n 'https://cdn.norgren.com/pdf/' + data.pimData.installationandmaintenanceinstructionspdf\r\n }\r\n setInstallationAndMaintenanceInstructionspPdfUrl(myUrl)\r\n }\r\n }, [data.pimData])\r\n\r\n const handleClick = (e) => {\r\n let linkClasses = e.target.className\r\n let linkDomain = null\r\n let linkId = e.target.id\r\n let linkUrl = null\r\n let linkText = e.target.textContent\r\n\r\n var linkElement = findParentElementA(e.target, 0, 4)\r\n\r\n if (linkElement !== null) {\r\n linkUrl = linkElement.href\r\n linkDomain = extractDomain(linkUrl)\r\n linkId = linkElement.id\r\n linkClasses = linkElement.className\r\n }\r\n\r\n switch (linkId) {\r\n case 'cad-download':\r\n setEventModelToPublish({\r\n eventId: 'CAD',\r\n eventModel: buildCADButtonInteractionEvent(\r\n linkClasses,\r\n linkDomain,\r\n linkId,\r\n linkUrl,\r\n linkText\r\n ),\r\n })\r\n break\r\n case 'cadfile-download':\r\n setEventModelToPublish({\r\n eventId: 'CAD',\r\n eventModel: buildCADButtonInteractionEvent(\r\n linkClasses,\r\n linkDomain,\r\n linkId,\r\n linkUrl,\r\n linkText\r\n ),\r\n })\r\n break\r\n case 'brochure-download':\r\n setEventModelToPublish({\r\n eventId: 'Brochure',\r\n eventModel: buildBrochureButtonInteractionEvent(\r\n linkClasses,\r\n linkDomain,\r\n linkId,\r\n linkUrl,\r\n linkText\r\n ),\r\n })\r\n break\r\n case 'datasheet-download':\r\n setEventModelToPublish({\r\n eventId: 'Datasheet',\r\n eventModel: buildDatasheetButtonInteractionEvent(\r\n linkClasses,\r\n linkDomain,\r\n linkId,\r\n linkUrl,\r\n linkText\r\n ),\r\n })\r\n break\r\n case 'installationguide-download':\r\n setEventModelToPublish({\r\n eventId: 'InstallationGuide',\r\n eventModel: buildInstallationGuideButtonInteractionEvent(\r\n linkClasses,\r\n linkDomain,\r\n linkId,\r\n linkUrl,\r\n linkText\r\n ),\r\n })\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
    \r\n {cadUrl ? (\r\n
  • \r\n \r\n \r\n

    {getI18nText(microcopy, 'product.cad')}

    \r\n \r\n
  • \r\n ) : null}\r\n {cadFileStepUrl ? (\r\n
  • \r\n \r\n \r\n

    \r\n {getI18nText(microcopy, 'product.cad')}(\r\n {getI18nText(microcopy, 'product.step')})\r\n

    \r\n \r\n
  • \r\n ) : null}\r\n {broucherUrl ? (\r\n
  • \r\n \r\n \r\n

    \r\n {getI18nText(microcopy, 'product.brochure')} (\r\n {getI18nText(microcopy, 'product.pdf')})\r\n

    \r\n \r\n
  • \r\n ) : null}\r\n {technicalSpecsUrl ? (\r\n
  • \r\n \r\n \r\n

    \r\n {getI18nText(microcopy, 'product.datasheet')} (\r\n {getI18nText(microcopy, 'product.pdf')})\r\n

    \r\n \r\n
  • \r\n ) : null}\r\n {softwareUrl ? (\r\n
  • \r\n \r\n \r\n

    {getI18nText(microcopy, 'product.software')}

    \r\n \r\n
  • \r\n ) : null}\r\n {installationAndMaintenanceInstructionspPdfUrl ? (\r\n
  • \r\n \r\n \r\n

    \r\n {getI18nText(microcopy, 'product.installationguide')} (\r\n {getI18nText(microcopy, 'product.pdf')})\r\n

    \r\n \r\n
  • \r\n ) : null}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Downloads\r\n","import React from 'react'\r\nimport { getI18nText } from '../../services/i18nService'\r\n\r\nconst Navigation = ({ microcopy, data }) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Navigation\r\n","import React, { useContext, useEffect, useState } from 'react'\r\nimport { Collapse } from 'react-bootstrap'\r\nimport { useGenericConfiguratorNavigation } from '../../hooks/navigation/useGenericConfiguratorNavigation'\r\nimport { getI18nText } from '../../services/i18nService'\r\nimport { Link } from 'gatsby'\r\nimport { buildUrl, extractDomain } from '../../services/urlService'\r\nimport {\r\n buildCADButtonInteractionEvent,\r\n publishCADButtonInteractionEvent,\r\n} from '../../services/dataLayerService'\r\nimport DataLayerContext from '../../contexts/dataLayerContext'\r\n\r\nconst Cad = ({\r\n microcopy,\r\n cadFileStep,\r\n cadenasCataloguePath,\r\n locale,\r\n tacton_configurable,\r\n tacton_reference,\r\n itemVarSet,\r\n}) => {\r\n const { eventApi } = useContext(DataLayerContext)\r\n const [cadOpen, setCadOpen] = useState(true)\r\n const [eventModelToPublish, setEventModelToPublish] = useState()\r\n const [cadUrl, setCadUrl] = useState()\r\n let configuratorUrl = useGenericConfiguratorNavigation(\r\n locale,\r\n tacton_configurable === 'True' && tacton_reference ? tacton_reference : null\r\n )\r\n\r\n useEffect(() => {\r\n let myCadUrl = null\r\n if (cadenasCataloguePath) {\r\n myCadUrl = `https://norgren-embedded.partcommunity.com?info=imi_precision${cadenasCataloguePath}&varset=`\r\n if (itemVarSet) {\r\n myCadUrl = myCadUrl + `${itemVarSet}`\r\n }\r\n myCadUrl = myCadUrl + '&partFixed=false'\r\n }\r\n setCadUrl(myCadUrl)\r\n }, [cadenasCataloguePath, itemVarSet])\r\n\r\n useEffect(() => {\r\n if (eventApi && eventModelToPublish) {\r\n publishCADButtonInteractionEvent(eventApi, eventModelToPublish)\r\n }\r\n }, [eventApi, eventModelToPublish])\r\n\r\n const handleClick = (e) => {\r\n let linkClasses = e.target.className\r\n let linkDomain = extractDomain(e.target.href)\r\n let linkId = e.target.id\r\n let linkUrl = e.target.href\r\n let linkText = e.target.textContent\r\n\r\n setEventModelToPublish(\r\n buildCADButtonInteractionEvent(linkClasses, linkDomain, linkId, linkUrl, linkText)\r\n )\r\n }\r\n\r\n return (\r\n
\r\n

\r\n setCadOpen(!cadOpen)}\r\n aria-controls=\"body-cad\"\r\n >\r\n {getI18nText(microcopy, 'product.cad')}\r\n \r\n

\r\n \r\n \r\n
\r\n

{getI18nText(microcopy, 'product.weoffercad')}

\r\n
\r\n {cadUrl ? (\r\n \r\n
\r\n \r\n {getI18nText(microcopy, 'product.cadmodel')}\r\n
\r\n \r\n ) : null}\r\n {cadFileStep ? (\r\n \r\n
\r\n \r\n \r\n {getI18nText(microcopy, 'product.cad')} (\r\n {getI18nText(microcopy, 'product.step')})\r\n \r\n
\r\n \r\n ) : null}\r\n {configuratorUrl ? (\r\n \r\n
\r\n \r\n {getI18nText(microcopy, 'product.configurator')}\r\n
\r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Cad\r\n","import { useStaticQuery, graphql } from 'gatsby'\r\n\r\nconst resourcesQuery = graphql`\r\n query {\r\n PRAConfigurator: allContentfulNavigationElement(\r\n filter: { navigation_id: { eq: \"PRA Configurator\" } }\r\n ) {\r\n nodes {\r\n navigation_id\r\n node_locale\r\n slug\r\n navigation_element {\r\n slug\r\n navigation_element {\r\n slug\r\n navigation_element {\r\n slug\r\n navigation_element {\r\n slug\r\n navigation_element {\r\n slug\r\n navigation_element {\r\n slug\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`\r\nexport const useGenericConfiguratorNavigation = (locale, navigationId) => {\r\n const { PRAConfigurator } = useStaticQuery(resourcesQuery)\r\n\r\n switch (navigationId) {\r\n case 'PRA Configurator':\r\n let navigationElement\r\n PRAConfigurator.nodes.forEach((element) => {\r\n if (element.node_locale === locale) {\r\n navigationElement = element\r\n }\r\n })\r\n return navigationElement\r\n default:\r\n return null\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Swiper, SwiperSlide } from 'swiper/react'\r\nimport { Navigation, FreeMode, Thumbs } from 'swiper/modules'\r\nimport 'swiper/css'\r\nimport 'swiper/css/free-mode'\r\nimport 'swiper/css/navigation'\r\nimport 'swiper/css/pagination'\r\nimport 'swiper/css/scrollbar'\r\nimport 'swiper/css/thumbs'\r\nimport { useState } from 'react'\r\nimport { useRef } from 'react'\r\nimport { GatsbyImage } from 'gatsby-plugin-image'\r\n\r\nconst ProductImageSwiper = ({ images }) => {\r\n const [thumbsSwiper, setThumbsSwiper] = useState(null)\r\n const prevRef = useRef(null)\r\n const nextRef = useRef(null)\r\n\r\n return (\r\n <>\r\n {\r\n swiper.params.navigation.prevEl = prevRef.current\r\n swiper.params.navigation.nextEl = nextRef.current\r\n swiper.navigation.init()\r\n swiper.navigation.update()\r\n }}\r\n spaceBetween={10}\r\n navigation={{\r\n nextEl: '.carousel--next',\r\n prevEl: '.carousel--prev',\r\n }}\r\n thumbs={{ swiper: thumbsSwiper }}\r\n modules={[FreeMode, Navigation, Thumbs]}\r\n className=\"swiper carousel product-details__carousel--main\"\r\n >\r\n {images.map((element) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })}\r\n
\r\n
\r\n \r\n \r\n {images.map((element) => {\r\n return (\r\n \r\n {' '}\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProductImageSwiper\r\n","import { getI18nText } from './i18nService'\r\n\r\nexport function getTechnicalDetails(data, technicalDetailsMicrocopy) {\r\n let technicalDetails = {}\r\n if (technicalDetailsMicrocopy) {\r\n Object.keys(technicalDetailsMicrocopy).forEach((item) => {\r\n switch (item) {\r\n case 'technicaldetails.actuation':\r\n if (data.actuation) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.actuation'),\r\n data.actuation\r\n )\r\n }\r\n break\r\n case 'technicaldetails.eu_country_of_origin':\r\n if (data.eu_country_of_origin) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.eu_country_of_origin'),\r\n data.eu_country_of_origin\r\n )\r\n }\r\n break\r\n case 'technicaldetails.port_size':\r\n if (data.port_size && data.port_size[0]) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.port_size'),\r\n data.port_size\r\n )\r\n }\r\n break\r\n case 'technicaldetails.gauge':\r\n if (data.gauge) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.gauge'),\r\n data.gauge\r\n )\r\n }\r\n break\r\n case 'technicaldetails.drain_type':\r\n if (data.drain_type) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.drain_type'),\r\n data.drain_type\r\n )\r\n }\r\n break\r\n case 'technicaldetails.cylinder_diameter_metric_length_millimetre':\r\n if (data.cylinder_diameter_metric_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.cylinder_diameter_metric_length_millimetre'\r\n ),\r\n data.cylinder_diameter_metric_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.outputpressureadjustmentrangebar':\r\n if (data.outlet_pressure_adjustment_pressure_bar_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.outputpressureadjustmentrangebar'\r\n ),\r\n data.outlet_pressure_adjustment_pressure_bar_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.relievingnonrelieving':\r\n if (data.relievingnonrelieving) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.relievingnonrelieving'),\r\n data.relievingnonrelieving\r\n )\r\n }\r\n break\r\n case 'technicaldetails.strokelengthmetriclengthmillimetre':\r\n if (data.ItemStrokeLengthMetricLengthMillimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.strokelengthmetriclengthmillimetre'\r\n ),\r\n data.ItemStrokeLengthMetricLengthMillimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.series':\r\n if (data.series) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.series'),\r\n data.series\r\n )\r\n }\r\n break\r\n case 'technicaldetails.medium':\r\n if (data.medium) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.medium'),\r\n data.medium\r\n )\r\n }\r\n break\r\n case 'technicaldetails.body':\r\n if (data.body && data.body[0]) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.body'),\r\n data.body[0]\r\n )\r\n }\r\n break\r\n case 'technicaldetails.od_tube_length_millimetre':\r\n if (data.od_tube_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.od_tube_length_millimetre'),\r\n data.od_tube_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.operating_temperature_temperature_celsius_min_to_max_range':\r\n if (data.operating_temperature_temperature_celsius_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.operating_temperature_temperature_celsius_min_to_max_range'\r\n ),\r\n data.operating_temperature_temperature_celsius_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.standard':\r\n if (data.standard) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.standard'),\r\n data.standard\r\n )\r\n }\r\n break\r\n case 'technicaldetails.thread':\r\n if (data.thread) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.thread'),\r\n data.thread\r\n )\r\n }\r\n break\r\n case 'technicaldetails.operatingpressurerangebar':\r\n if (data.OperatingPressureRangeBar) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.operatingpressurerangebar'),\r\n data.OperatingPressureRangeBar\r\n )\r\n }\r\n break\r\n case 'technicaldetails.operation':\r\n if (data.operation) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.operation'),\r\n data.operation\r\n )\r\n }\r\n break\r\n case 'technicaldetails.cable_length_length_meter':\r\n if (data.cable_length_length_meter) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.cable_length_length_meter'),\r\n data.cable_length_length_meter\r\n )\r\n }\r\n break\r\n case 'technicaldetails.colour':\r\n if (data.colour) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.colour'),\r\n data.colour\r\n )\r\n }\r\n break\r\n case 'technicaldetails.shape':\r\n if (data.shape) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.shape'),\r\n data.shape\r\n )\r\n }\r\n\r\n break\r\n case 'technicaldetails.fog_type':\r\n if (data.fog_type) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.fog_type'),\r\n data.fog_type\r\n )\r\n }\r\n break\r\n case 'technicaldetails.gauge_port':\r\n if (data.gauge_port) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.gauge_port'),\r\n data.gauge_port\r\n )\r\n }\r\n break\r\n\r\n case 'technicaldetails.bowl':\r\n if (data.bowl) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.bowl'),\r\n data.bowl\r\n )\r\n }\r\n break\r\n case 'technicaldetails.adjusting_knob':\r\n if (data.adjusting_knob) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.adjusting_knob'),\r\n data.adjusting_knob\r\n )\r\n }\r\n break\r\n case 'technicaldetails.bearings':\r\n if (data.bearings) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.bearings'),\r\n data.bearings\r\n )\r\n }\r\n break\r\n case 'technicaldetails.bonnet':\r\n if (data.bonnet) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.bonnet'),\r\n data.bonnet\r\n )\r\n }\r\n break\r\n case 'technicaldetails.buffer':\r\n if (data.buffer) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.buffer'),\r\n data.buffer\r\n )\r\n }\r\n break\r\n\r\n case 'technicaldetails.elastomers':\r\n if (data.elastomers) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.elastomers'),\r\n data.elastomers\r\n )\r\n }\r\n break\r\n case 'technicaldetails.filter_element':\r\n if (data.filter_element) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.filter_element'),\r\n data.filter_element\r\n )\r\n }\r\n break\r\n case 'technicaldetails.nuts_and_screws':\r\n if (data.nuts_and_screws) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.nuts_and_screws'),\r\n data.nuts_and_screws\r\n )\r\n }\r\n break\r\n case 'technicaldetails.piston_head_seals':\r\n if (data.piston_head_seals) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.piston_head_seals'),\r\n data.piston_head_seals\r\n )\r\n }\r\n break\r\n case 'technicaldetails.piston_rod_material':\r\n if (data.piston_rod_material) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.piston_rod_material'),\r\n data.piston_rod_material\r\n )\r\n }\r\n break\r\n case 'technicaldetails.piston':\r\n if (data.piston) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.piston'),\r\n data.piston\r\n )\r\n }\r\n break\r\n case 'technicaldetails.seals':\r\n if (data.seals) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.seals'),\r\n data.seals\r\n )\r\n }\r\n break\r\n case 'technicaldetails.seat_seal':\r\n if (data.seat_seal) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.seat_seal'),\r\n data.seat_seal\r\n )\r\n }\r\n break\r\n case 'technicaldetails.seats':\r\n if (data.seats) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.seats'),\r\n data.seats\r\n )\r\n }\r\n break\r\n case 'technicaldetails.shim_ring':\r\n if (data.shim_ring) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.shim_ring'),\r\n data.shim_ring\r\n )\r\n }\r\n break\r\n case 'technicaldetails.spool_sleeve':\r\n if (data.spool_sleeve) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.spool_sleeve'),\r\n data.spool_sleeve\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__atex':\r\n if (data.certification__atex) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__atex'),\r\n data.certification__atex\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__ccc':\r\n if (data.certification__ccc) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__ccc'),\r\n data.certification__ccc\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__csa':\r\n if (data.certification__csa) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__csa'),\r\n data.certification__csa\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__emc':\r\n if (data.certification__emc) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__emc'),\r\n data.certification__emc\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__ip_rating':\r\n if (data.certification__ip_rating) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__ip_rating'),\r\n data.certification__ip_rating\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__reach':\r\n if (data.certification__reach) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__reach'),\r\n data.certification__reach\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__rohs_compliant':\r\n if (data.certification__rohs_compliant) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.certification__rohs_compliant'\r\n ),\r\n data.certification__rohs_compliant\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__ul':\r\n if (data.certification__ul) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__ul'),\r\n data.certification__ul\r\n )\r\n }\r\n break\r\n case 'technicaldetails.certification__weee':\r\n if (data.certification__weee) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.certification__weee'),\r\n data.certification__weee\r\n )\r\n }\r\n break\r\n case 'technicaldetails.eclass_11':\r\n if (data.eclass_11) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.eclass_11'),\r\n data.eclass_11\r\n )\r\n }\r\n break\r\n case 'technicaldetails.hs_code':\r\n if (data.hs_code) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.hs_code'),\r\n data.hs_code\r\n )\r\n }\r\n break\r\n case 'technicaldetails.hts_code':\r\n if (data.hts_code) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.hts_code'),\r\n data.hts_code\r\n )\r\n }\r\n break\r\n case 'technicaldetails.mil_spec':\r\n if (data.mil_spec) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.mil_spec'),\r\n data.mil_spec\r\n )\r\n }\r\n break\r\n case 'technicaldetails.unspsc_code':\r\n if (data.unspsc_code) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.unspsc_code'),\r\n data.unspsc_code\r\n )\r\n }\r\n break\r\n case 'technicaldetails.us_eccn':\r\n if (data.us_eccn) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.us_eccn'),\r\n data.us_eccn\r\n )\r\n }\r\n break\r\n case 'technicaldetails.range':\r\n if (data.range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.range'),\r\n data.range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.filter_element_m_particlesize_micron':\r\n if (data.filter_element_m_particlesize_micron) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.filter_element_m_particlesize_micron'\r\n ),\r\n data.filter_element_m_particlesize_micron\r\n )\r\n }\r\n break\r\n case 'technicaldetails.maximum_inlet_pressure_pressure_bar':\r\n if (data.maximum_inlet_pressure_pressure_bar) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.maximum_inlet_pressure_pressure_bar'\r\n ),\r\n data.maximum_inlet_pressure_pressure_bar\r\n )\r\n }\r\n break\r\n case 'technicaldetails.outlet_pressure_adjustment_pressure_bar_min_to_max_range':\r\n if (data.outlet_pressure_adjustment_pressure_bar_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.outlet_pressure_adjustment_pressure_bar_min_to_max_range'\r\n ),\r\n data.outlet_pressure_adjustment_pressure_bar_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.packing_and_supply_product_height_length_millimetre':\r\n if (data.packing_and_supply_product_height_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.packing_and_supply_product_height_length_millimetre'\r\n ),\r\n data.packing_and_supply_product_height_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.packing_and_supply_product_length_length_millimetre':\r\n if (data.packing_and_supply_product_length_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.packing_and_supply_product_length_length_millimetre'\r\n ),\r\n data.packing_and_supply_product_length_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.packing_and_supply_product_width_length_millimetre':\r\n if (data.packing_and_supply_product_width_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.packing_and_supply_product_width_length_millimetre'\r\n ),\r\n data.packing_and_supply_product_width_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.stroke_length_metric_length_millimetre':\r\n if (data.stroke_length_metric_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.stroke_length_metric_length_millimetre'\r\n ),\r\n data.stroke_length_metric_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.length_length_meter':\r\n if (data.length_length_meter) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.length_length_meter'),\r\n data.length_length_meter\r\n )\r\n }\r\n break\r\n case 'technicaldetails.operating_pressure_pressure_bar_min_to_max_range':\r\n if (data.operating_pressure_pressure_bar_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.operating_pressure_pressure_bar_min_to_max_range'\r\n ),\r\n data.operating_pressure_pressure_bar_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.effective_weight_range_mass_kilogram_min_to_max_range':\r\n if (data.effective_weight_range_mass_kilogram_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.effective_weight_range_mass_kilogram_min_to_max_range'\r\n ),\r\n data.effective_weight_range_mass_kilogram_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.coil_code':\r\n if (data.coil_code) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.coil_code'),\r\n data.coil_code\r\n )\r\n }\r\n break\r\n case 'technicaldetails.diameter_length_millimetre':\r\n if (data.diameter_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.diameter_length_millimetre'),\r\n data.diameter_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.female_thread':\r\n if (data.female_thread) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.female_thread'),\r\n data.female_thread\r\n )\r\n }\r\n break\r\n case 'technicaldetails.function':\r\n if (data.function) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.function'),\r\n data.function\r\n )\r\n }\r\n break\r\n case 'technicaldetails.hose_bore':\r\n if (data.hose_bore) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.hose_bore'),\r\n data.hose_bore\r\n )\r\n }\r\n break\r\n case 'technicaldetails.induced_air_vacuum_nlmin':\r\n if (data.induced_air_vacuum_nlmin) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.induced_air_vacuum_nlmin'),\r\n data.induced_air_vacuum_nlmin\r\n )\r\n }\r\n break\r\n case 'technicaldetails.iso_size':\r\n if (data.iso_size) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.iso_size'),\r\n data.iso_size\r\n )\r\n }\r\n break\r\n case 'technicaldetails.nominal_diameter':\r\n if (data.nominal_diameter) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.nominal_diameter'),\r\n data.nominal_diameter\r\n )\r\n }\r\n break\r\n case 'technicaldetails.nominal_diameter_length_millimetre':\r\n if (data.nominal_diameter_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.nominal_diameter_length_millimetre'\r\n ),\r\n data.nominal_diameter_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.number_of_convolutions':\r\n if (data.number_of_convolutions) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.number_of_convolutions'),\r\n data.number_of_convolutions\r\n )\r\n }\r\n break\r\n case 'technicaldetails.id_tube_metric_length_millimetre':\r\n if (data.id_tube_metric_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.id_tube_metric_length_millimetre'\r\n ),\r\n data.id_tube_metric_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.minimum_bend_radius_length_millimetre':\r\n if (data.minimum_bend_radius_length_millimetre) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.minimum_bend_radius_length_millimetre'\r\n ),\r\n data.minimum_bend_radius_length_millimetre\r\n )\r\n }\r\n break\r\n case 'technicaldetails.packing_and_supply_product_weight_weight_kilogram':\r\n if (data.packing_and_supply_product_weight_weight_kilogram) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.packing_and_supply_product_weight_weight_kilogram'\r\n ),\r\n data.packing_and_supply_product_weight_weight_kilogram\r\n )\r\n }\r\n break\r\n case 'technicaldetails.brand':\r\n if (data.brand) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.brand'),\r\n data.brand\r\n )\r\n }\r\n break\r\n case 'technicaldetails.data_performance_b10_value_number_of_cycles':\r\n if (data.data_performance_b10_value_number_of_cycles) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.data_performance_b10_value_number_of_cycles'\r\n ),\r\n data.data_performance_b10_value_number_of_cycles\r\n )\r\n }\r\n break\r\n case 'technicaldetails.data_performance_shelf_life':\r\n if (data.data_performance_shelf_life) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.data_performance_shelf_life'\r\n ),\r\n data.data_performance_shelf_life\r\n )\r\n }\r\n break\r\n case 'technicaldetails.control_signal':\r\n if (data.control_signal) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.control_signal'),\r\n data.control_signal\r\n )\r\n }\r\n break\r\n\r\n case 'technicaldetails.cushioning':\r\n if (data.cushioning) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.cushioning'),\r\n data.cushioning\r\n )\r\n }\r\n break\r\n case 'technicaldetails.cv_body_flowcoefficient_cv':\r\n if (data.cv_body_flowcoefficient_cv) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.cv_body_flowcoefficient_cv'),\r\n data.cv_body_flowcoefficient_cv\r\n )\r\n }\r\n break\r\n case 'technicaldetails.flow_imperial_flow_scfm':\r\n if (data.flow_imperial_flow_scfm) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.flow_imperial_flow_scfm'),\r\n data.flow_imperial_flow_scfm\r\n )\r\n }\r\n break\r\n case 'technicaldetails.fluid_temperature_imperial_temperature_fahrenheit_min_to_max_range':\r\n if (data.fluid_temperature_imperial_temperature_fahrenheit_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.fluid_temperature_imperial_temperature_fahrenheit_min_to_max_range'\r\n ),\r\n data.fluid_temperature_imperial_temperature_fahrenheit_min_to_max_range\r\n )\r\n }\r\n break\r\n\r\n case 'technicaldetails.guiding_system':\r\n if (data.guiding_system) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.guiding_system'),\r\n data.guiding_system\r\n )\r\n }\r\n break\r\n case 'technicaldetails.iforwardslashd_tube':\r\n if (data.iforwardslashd_tube) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.iforwardslashd_tube'),\r\n data.iforwardslashd_tube\r\n )\r\n }\r\n break\r\n case 'technicaldetails.maximum_flow_flow_scfm':\r\n if (data.maximum_flow_flow_scfm) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.maximum_flow_flow_scfm'),\r\n data.maximum_flow_flow_scfm\r\n )\r\n }\r\n break\r\n case 'technicaldetails.non_magnetic_or_magnetic':\r\n if (data.non_magnetic_or_magnetic) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.non_magnetic_or_magnetic'),\r\n data.non_magnetic_or_magnetic\r\n )\r\n }\r\n break\r\n case 'technicaldetails.oforwardslashd_tube_inch':\r\n if (data.oforwardslashd_tube_inch) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.oforwardslashd_tube_inch'),\r\n data.oforwardslashd_tube_inch\r\n )\r\n }\r\n break\r\n case 'technicaldetails.operating_pressure_psi_pressure_psi_min_to_max_range':\r\n if (data.operating_pressure_psi_pressure_psi_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.operating_pressure_psi_pressure_psi_min_to_max_range'\r\n ),\r\n data.operating_pressure_psi_pressure_psi_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.operating_temperature_f_temperature_fahrenheit_min_to_max_range':\r\n if (data.operating_temperature_f_temperature_fahrenheit_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.operating_temperature_f_temperature_fahrenheit_min_to_max_range'\r\n ),\r\n data.operating_temperature_f_temperature_fahrenheit_min_to_max_range\r\n )\r\n }\r\n break\r\n\r\n case 'technicaldetails.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range':\r\n if (data.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range'\r\n ),\r\n data.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.scale_bar_pressure_bar_min_to_max_range':\r\n if (data.scale_bar_pressure_bar_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.scale_bar_pressure_bar_min_to_max_range'\r\n ),\r\n data.scale_bar_pressure_bar_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.scale_mpa_pressure_mpa_min_to_max_range':\r\n if (data.scale_mpa_pressure_mpa_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.scale_mpa_pressure_mpa_min_to_max_range'\r\n ),\r\n data.scale_mpa_pressure_mpa_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.scale_psi_pressure_psi_min_to_max_range':\r\n if (data.scale_psi_pressure_psi_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.scale_psi_pressure_psi_min_to_max_range'\r\n ),\r\n data.scale_psi_pressure_psi_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'technicaldetails.stroke_length_inch':\r\n if (data.stroke_length_inch) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.stroke_length_inch'),\r\n data.stroke_length_inch\r\n )\r\n }\r\n break\r\n case 'technicaldetails.theoretical_force_force_newton':\r\n if (data.theoretical_force_force_newton) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(\r\n technicalDetailsMicrocopy,\r\n 'technicaldetails.theoretical_force_force_newton'\r\n ),\r\n data.theoretical_force_force_newton\r\n )\r\n }\r\n break\r\n case 'technicaldetails.barrel':\r\n if (data.barrel) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.barrel'),\r\n data.barrel\r\n )\r\n }\r\n break\r\n case 'technicaldetails.cylinder_diameter_inch':\r\n if (data.cylinder_diameter_inch) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.cylinder_diameter_inch'),\r\n data.cylinder_diameter_inch\r\n )\r\n }\r\n break\r\n case 'technicaldetails.valve_operation':\r\n if (data.valve_operation) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.valve_operation'),\r\n data.valve_operation\r\n )\r\n }\r\n break\r\n case 'technicaldetails.adjustment':\r\n if (data.adjustment) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.adjustment'),\r\n data.adjustment\r\n )\r\n }\r\n break\r\n case 'technicaldetails.rotation_angle':\r\n if (data.rotation_angle) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.rotation_angle'),\r\n data.rotation_angle\r\n )\r\n }\r\n break\r\n case 'technicaldetails.flow_flow_dm3sec':\r\n if (data.flow_flow_dm3sec) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.flow_flow_dm3sec'),\r\n data.flow_flow_dm3sec\r\n )\r\n }\r\n break\r\n case 'technicaldetails.flow_flow_litresperminute':\r\n if (data.flow_flow_litresperminute) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.flow_flow_litresperminute'),\r\n data.flow_flow_litresperminute\r\n )\r\n }\r\n break\r\n case 'technicaldetails.start_point_flow_dm3sec':\r\n if (data.start_point_flow_dm3sec) {\r\n setTechnicalDetailValue(\r\n technicalDetails,\r\n getI18nText(technicalDetailsMicrocopy, 'technicaldetails.start_point_flow_dm3sec'),\r\n data.start_point_flow_dm3sec\r\n )\r\n }\r\n break\r\n\r\n default:\r\n break\r\n }\r\n })\r\n }\r\n\r\n return technicalDetails\r\n}\r\n\r\nexport function getPriorityTechnicalDetails(data, priorityTechnicalDetailsMicrocopy) {\r\n let priorityTechnicalDetails = {}\r\n\r\n if (priorityTechnicalDetailsMicrocopy) {\r\n Object.keys(priorityTechnicalDetailsMicrocopy).forEach((item) => {\r\n switch (item) {\r\n case 'prioritytechnicaldetails.actuation':\r\n if (data.actuation) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.actuation'),\r\n data.actuation\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.port_size':\r\n if (data.port_size && data.port_size[0]) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.port_size'),\r\n data.port_size[0]\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.gauge':\r\n if (data.gauge) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.gauge'),\r\n data.gauge\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.drain_type':\r\n if (data.drain_type) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.drain_type'),\r\n data.drain_type\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.cylinder_diameter_metric_length_millimetre':\r\n if (data.cylinder_diameter_metric_length_millimetre) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.cylinder_diameter_metric_length_millimetre'\r\n ),\r\n data.cylinder_diameter_metric_length_millimetre\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.outlet_pressure_adjustment_pressure_bar_min_to_max_range':\r\n if (data.outlet_pressure_adjustment_pressure_bar_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.outlet_pressure_adjustment_pressure_bar_min_to_max_range'\r\n ),\r\n data.outlet_pressure_adjustment_pressure_bar_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.relievingnonrelieving':\r\n if (data.relievingnonrelieving) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.relievingnonrelieving'\r\n ),\r\n data.relievingnonrelieving\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.strokelengthmetriclengthmillimetre':\r\n if (data.ItemStrokeLengthMetricLengthMillimetre) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.strokelengthmetriclengthmillimetre'\r\n ),\r\n data.ItemStrokeLengthMetricLengthMillimetre\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.cylinder_diameter_inch':\r\n if (data.cylinder_diameter_inch) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.cylinder_diameter_inch'\r\n ),\r\n data.cylinder_diameter_inch\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.series':\r\n if (data.series) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.series'),\r\n data.series\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.medium':\r\n if (data.medium) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.medium'),\r\n data.medium\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.body':\r\n if (data.body) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.body'),\r\n data.body\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.od_tube_length_millimetre':\r\n if (data.od_tube_length_millimetre) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.od_tube_length_millimetre'\r\n ),\r\n data.od_tube_length_millimetre\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.operating_temperature_temperature_celsius_min_to_max_range':\r\n if (data.operating_temperature_temperature_celsius_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.operating_temperature_temperature_celsius_min_to_max_range'\r\n ),\r\n data.operating_temperature_temperature_celsius_min_to_max_range\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.standard':\r\n if (data.standard) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.standard'),\r\n data.standard\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.thread':\r\n if (data.thread) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.thread'),\r\n data.thread\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.operating_pressure_pressure_bar_min_to_max_range':\r\n if (data.operating_pressure_pressure_bar_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.operating_pressure_pressure_bar_min_to_max_range'\r\n ),\r\n data.operating_pressure_pressure_bar_min_to_max_range\r\n )\r\n }\r\n break\r\n\r\n case 'prioritytechnicaldetails.operation':\r\n if (data.operation) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.operation'),\r\n data.operation\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.cable_length_length_meter':\r\n if (data.cable_length_length_meter) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.cable_length_length_meter'\r\n ),\r\n data.cable_length_length_meter\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.colour':\r\n if (data.colour) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.cable_length_length_meter'\r\n ),\r\n data.cable_length_length_meter\r\n )\r\n priorityTechnicalDetails[\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.colour')\r\n ] = data.colour\r\n }\r\n break\r\n case 'prioritytechnicaldetails.shape':\r\n if (data.ItemShape) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.shape'),\r\n data.shape\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.itemlengthlengthmeter':\r\n if (data.ItemLengthLengthMeter) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.itemlengthlengthmeter'\r\n ),\r\n data.ItemLengthLengthMeter\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.bowl':\r\n if (data.bowl) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(priorityTechnicalDetailsMicrocopy, 'prioritytechnicaldetails.bowl'),\r\n data.bowl\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.stroke_length_metric_length_millimetre':\r\n if (data.stroke_length_metric_length_millimetre) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.stroke_length_metric_length_millimetre'\r\n ),\r\n data.stroke_length_metric_length_millimetre\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.length_length_meter':\r\n if (data.length_length_meter) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.length_length_meter'\r\n ),\r\n data.length_length_meter\r\n )\r\n }\r\n break\r\n\r\n case 'prioritytechnicaldetails.stroke_length_inch':\r\n if (data.stroke_length_inch) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.stroke_length_inch'\r\n ),\r\n data.stroke_length_inch\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.od_tube_inch':\r\n if (data.od_tube_inch) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.od_tube_inch'\r\n ),\r\n data.od_tube_inch\r\n )\r\n }\r\n break\r\n case 'prioritytechnicaldetails.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range':\r\n if (data.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range) {\r\n setTechnicalDetailValue(\r\n priorityTechnicalDetails,\r\n getI18nText(\r\n priorityTechnicalDetailsMicrocopy,\r\n 'prioritytechnicaldetails.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range'\r\n ),\r\n data.outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range\r\n )\r\n }\r\n break\r\n\r\n default:\r\n break\r\n }\r\n })\r\n }\r\n\r\n return priorityTechnicalDetails\r\n}\r\n\r\nfunction setTechnicalDetailValue(technicalDetails, key, value) {\r\n if (technicalDetails[key] !== undefined) {\r\n let previousValue = technicalDetails[key]\r\n technicalDetails[key] = `${previousValue}, ${value}`\r\n } else {\r\n technicalDetails[key] = value\r\n }\r\n}\r\n","import React, { useEffect, useState, useContext } from 'react'\r\nimport LocaleContext from '../../contexts/localeContext'\r\nimport { navigate } from 'gatsby'\r\nimport { useProductSlug } from '../../hooks/slugs/useProductSlug'\r\nimport { useNavigationHome } from '../../hooks/useNavigationHome'\r\nimport { useProductI18n } from '../../hooks/i18n/useProductI18n'\r\nimport { getPriceForListerPage } from '../../services/backendApiService'\r\nimport { v4 as uuid } from 'uuid'\r\nimport { logException } from '../../services/loggingService'\r\nimport { AccountTypeCredit, isAnonymousUser } from '../../services/userService'\r\nimport UserContext from '../../contexts/userContext'\r\nimport GeolocationContext from '../../contexts/geolocationContext'\r\nimport { useCountries } from '../../hooks/useCountries'\r\nimport { useProductPriceI18n } from '../../hooks/i18n/useProductPriceI18n'\r\nimport { useProductStockI18n } from '../../hooks/i18n/useProductStockI18n'\r\nimport { getStockLevelString } from '../../services/stockLevelService'\r\nimport { Spinner } from 'react-bootstrap'\r\nimport { calculateDaysToDespatch } from '../../services/dateService'\r\nimport { makePartNumberUrlSafe } from '../../services/urlService'\r\nimport { getI18nText } from '../../services/i18nService'\r\nimport { StockLevel } from './stockLevel'\r\nimport { GetCurrencyForCountry } from '../../services/currencyService'\r\nimport LanguageContext from '../../contexts/languageContext'\r\nimport { DisplayPriceAsString } from './displayPrice'\r\nimport { buildProductClickEvent, publishProductClickEvent } from '../../services/dataLayerService'\r\nimport BasketContext from '../../contexts/basketContext'\r\nimport DataLayerContext from '../../contexts/dataLayerContext'\r\n\r\nconst SearchResult = ({ item, displayFields }) => {\r\n const [isProduct, setIsProduct] = useState(isProductItem(item))\r\n\r\n useEffect(() => {\r\n setIsProduct(isProductItem(item))\r\n }, [item])\r\n\r\n return (\r\n <>\r\n {isProduct ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default SearchResult\r\n\r\nfunction findTranslation(key, displayFields) {\r\n for (let i = 0; i < displayFields.field.length; i++) {\r\n if (displayFields.field[i].skey === key) {\r\n return displayFields.field[i].name\r\n }\r\n }\r\n\r\n return `<${key}>`\r\n}\r\n\r\nfunction isProductItem(item) {\r\n if (item.link !== null && item.link.length > 0) {\r\n if (item.link[0]['url-params'].indexOf('rootnorgren_datasheets') !== -1) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\nexport const ProductSearchResultItem = ({ item, displayFields }) => {\r\n const { eventApi } = useContext(DataLayerContext)\r\n const locale = useContext(LocaleContext)\r\n const { email, queryingUser, accountNumber, isDistributor } = useContext(UserContext)\r\n const { country } = useContext(GeolocationContext)\r\n const { language } = useContext(LanguageContext)\r\n const { basketCurrency } = useContext(BasketContext)\r\n const countries = useCountries(locale)\r\n const [boxQuantity, setBoxQuantity] = useState()\r\n const [currency, setCurrency] = useState()\r\n const [stockLevelIndicator, setStockLevelIndicator] = useState()\r\n const [price, setPrice] = useState()\r\n const [loginForPrice, setLoginForPrice] = useState()\r\n const [loading, setLoading] = useState(true)\r\n const [leadTime, setLeadTime] = useState()\r\n const [quantity] = useState(1)\r\n const [stockOnHand, setStockOnHand] = useState()\r\n const [quoteOnly, setQuoteOnly] = useState()\r\n const productMicrocopy = useProductI18n(locale)\r\n const [description, setDescription] = useState()\r\n const [imageUrl, setImageUrl] = useState()\r\n const [productCode, setProductCode] = useState()\r\n const [datasheetLink, setDatasheetLink] = useState()\r\n const [cadLink, setCadLink] = useState()\r\n const [otherAttributes, setOtherAttributes] = useState([])\r\n const [isRangeSKU, setIsRangeSKU] = useState()\r\n const [productSlug, setProductSlug] = useState()\r\n const [eventModelToPublish, setEventModelToPublish] = useState()\r\n\r\n const navHome = useNavigationHome(locale).slug\r\n const navProduct = useProductSlug(locale)\r\n\r\n useEffect(() => {\r\n function getTheProduct(partNumber, currency) {\r\n if (isRangeSKU !== 'True') {\r\n let requestId = uuid()\r\n setLoading(true)\r\n if (partNumber !== undefined && partNumber !== null) {\r\n getPriceForListerPage(partNumber, country, currency, language, requestId)\r\n .then((data) => {\r\n if (data && data.product) {\r\n setBoxQuantity(data.product.boxQuantity)\r\n setStockLevelIndicator(data.product.stockLevelIndicator)\r\n\r\n setLeadTime(data.product.leadTime)\r\n setStockOnHand(data.product.stockAmount)\r\n setLoginForPrice(data.loginForPricingFeature)\r\n setQuoteOnly(data.product.quoteOnly)\r\n if (data.product.price) {\r\n setPrice(data.product.price.amount)\r\n setCurrency(data.product.price.currency)\r\n }\r\n } else {\r\n setBoxQuantity(1)\r\n setStockLevelIndicator(null)\r\n setQuoteOnly(true)\r\n }\r\n setLoading(false)\r\n })\r\n .catch((error) => {\r\n logException('Search result error', error)\r\n setStockLevelIndicator(null)\r\n setQuoteOnly(true)\r\n setLoading(false)\r\n })\r\n }\r\n }\r\n }\r\n\r\n let myCadenasCataloguePath = undefined\r\n let myVarSet = undefined\r\n let myProductCode = undefined\r\n let myOtherAttributes = []\r\n for (let index = 0; index < item.attribute.length; index++) {\r\n const element = item.attribute[index]\r\n switch (element.name) {\r\n case '_imageurl':\r\n setImageUrl(\r\n element.value[0].value.replace(\r\n 'http://d25g25bk48as5o.cloudfront.net/',\r\n 'https://cdn.norgren.com/'\r\n )\r\n )\r\n break\r\n case 'description':\r\n const myDescription = element.value[0].value\r\n if (myDescription) {\r\n import('he').then((he) => {\r\n if (myDescription) {\r\n setDescription(he.decode(myDescription))\r\n }\r\n })\r\n }\r\n break\r\n case 'productid':\r\n setProductCode(element.value[0].value)\r\n myProductCode = element.value[0].value\r\n break\r\n case 'technical_specs':\r\n setDatasheetLink('https://cdn.norgren.com/pdf/' + element.value[0].value)\r\n break\r\n case 'cadenas_catalogue_path':\r\n myCadenasCataloguePath = element.value[0].value\r\n break\r\n case 'varset':\r\n myVarSet = element.value[0].value\r\n break\r\n case 'israngesku':\r\n setIsRangeSKU(element.value[0].value)\r\n break\r\n\r\n case 'k_indicator_europe':\r\n case 'stock_indicator_europe':\r\n //Do nothing\r\n break\r\n\r\n case 'thumbnail':\r\n if (element.value[0].value) {\r\n imageUrl = element.value[0].value\r\n }\r\n case 'large_image':\r\n case 'thumbnail_image':\r\n case 'additional_images':\r\n case '_thumburl':\r\n case 'cad_configurable':\r\n case 'europe_total_sales':\r\n case 'fully_replaced':\r\n case 'fully_replaced_part':\r\n case 'norgrenelcstock':\r\n case 'partially_replaced':\r\n case 'partially_replaced_part':\r\n case 'replaced_flag':\r\n case 'restricted_item':\r\n case 'secondid':\r\n case 'cad_model':\r\n default:\r\n myOtherAttributes.push({\r\n name: findTranslation(element.name, displayFields),\r\n value: element.value[0].value,\r\n })\r\n }\r\n }\r\n\r\n setProductSlug(`/${navHome}/${navProduct}/${makePartNumberUrlSafe(myProductCode)}`)\r\n\r\n if (myCadenasCataloguePath && myVarSet) {\r\n let myCadLink = `https://norgren-embedded.partcommunity.com?info=imi_precision${myCadenasCataloguePath}&varset=${myVarSet}`\r\n\r\n if (myCadLink.indexOf('partFixed=') === -1) {\r\n myCadLink += '&partFixed=false'\r\n }\r\n\r\n setCadLink(myCadLink)\r\n }\r\n\r\n setOtherAttributes(myOtherAttributes)\r\n\r\n if (queryingUser === false) {\r\n if (isAnonymousUser(email) === true && country) {\r\n if (currency === null || currency === undefined) {\r\n setCurrency(GetCurrencyForCountry(country, countries))\r\n } else {\r\n getTheProduct(productCode, currency)\r\n }\r\n } else if (isAnonymousUser(email) === false) {\r\n getTheProduct(productCode, null)\r\n }\r\n } else {\r\n setLoading(true)\r\n }\r\n }, [item, productCode, queryingUser, email, country, currency, isRangeSKU])\r\n\r\n useEffect(() => {\r\n if (eventApi && eventModelToPublish) {\r\n publishProductClickEvent(eventApi, eventModelToPublish)\r\n }\r\n }, [eventApi, eventModelToPublish])\r\n\r\n const onProductClick = (e) => {\r\n e.preventDefault()\r\n\r\n try {\r\n let totalPrice = price ? parseFloat(price) : undefined\r\n\r\n setEventModelToPublish(\r\n buildProductClickEvent(\r\n {\r\n name: description ? description : undefined,\r\n series: undefined,\r\n sku: productCode,\r\n quantity: quantity,\r\n position: 0,\r\n brand: undefined,\r\n price: totalPrice,\r\n category: undefined,\r\n },\r\n basketCurrency,\r\n locale,\r\n accountNumber,\r\n isDistributor\r\n )\r\n )\r\n } catch (error) {\r\n logException('buildProductClickEvent error', error)\r\n }\r\n\r\n navigate(productSlug)\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {productCode}\r\n
\r\n
\r\n \r\n
\r\n

\r\n {getI18nText(productMicrocopy, 'product.productcode')}: {productCode}\r\n

\r\n
\r\n
\r\n
\r\n {productCode}\r\n
\r\n
\r\n \r\n \r\n {otherAttributes.map((attribute, index) => {\r\n if (index < 5) {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n } else {\r\n return null\r\n }\r\n })}\r\n \r\n
{attribute.name}:{attribute.value}
\r\n {datasheetLink || cadLink ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{getI18nText(productMicrocopy, 'product.downloads')}:\r\n
    \r\n {cadLink ? (\r\n
  • \r\n \r\n \r\n

    {getI18nText(productMicrocopy, 'product.cad')}

    \r\n \r\n
  • \r\n ) : null}\r\n {datasheetLink ? (\r\n
  • \r\n \r\n \r\n

    {getI18nText(productMicrocopy, 'product.productdatasheet')}

    \r\n \r\n
  • \r\n ) : null}\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n {isRangeSKU !== 'True' ? (\r\n <>\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n {getI18nText(productMicrocopy, 'product.more')}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n ) : (\r\n
\r\n
\r\n \r\n
\r\n {getI18nText(productMicrocopy, 'product.more')}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport const DisplayPrice = ({ price, currency, loginForPrice, locale, loading, quoteOnly }) => {\r\n const { accountType } = useContext(UserContext)\r\n const microcopy = useProductPriceI18n(locale)\r\n const [displayPrice, setDisplayPrice] = useState()\r\n\r\n useEffect(() => {\r\n const productPrice = price ? parseFloat(price).toFixed(2) : ''\r\n if (accountType === AccountTypeCredit) {\r\n if (productPrice !== '' && isNaN(productPrice) === false) {\r\n setDisplayPrice(DisplayPriceAsString({ currency: currency, amount: productPrice }))\r\n } else {\r\n if (quoteOnly) {\r\n setDisplayPrice(getI18nText(microcopy, 'productprice.requestquote'))\r\n } else {\r\n setDisplayPrice(getI18nText(microcopy, 'productprice.unavailable'))\r\n }\r\n }\r\n } else {\r\n if (quoteOnly) {\r\n setDisplayPrice(getI18nText(microcopy, 'productprice.requestquote'))\r\n } else {\r\n setDisplayPrice('')\r\n }\r\n }\r\n }, [price, currency, loginForPrice, accountType, quoteOnly])\r\n\r\n return (\r\n <>\r\n {loginForPrice === null || loginForPrice === undefined || loginForPrice === false ? (\r\n loading && accountType === AccountTypeCredit ? (\r\n
\r\n \r\n
\r\n ) : displayPrice ? (\r\n
\r\n

{displayPrice}

\r\n
\r\n ) : null\r\n ) : null}\r\n \r\n )\r\n}\r\n\r\nconst DatasheetSearchResultItem = ({ item, displayFields }) => {\r\n const locale = useContext(LocaleContext)\r\n const productMicrocopy = useProductI18n(locale)\r\n\r\n const [imageUrl, setImageUrl] = useState()\r\n const [description, setDescription] = useState()\r\n const [productCode, setProductCode] = useState()\r\n const [datasheetLink, setDatasheetLink] = useState()\r\n\r\n useEffect(() => {\r\n for (let index = 0; index < item.attribute.length; index++) {\r\n const element = item.attribute[index]\r\n switch (element.name) {\r\n case '_imageurl':\r\n setImageUrl(element.value[0].value)\r\n break\r\n case 'documentlocation':\r\n setDatasheetLink(element.value[0].value)\r\n break\r\n case 'documentdescription':\r\n const myDescription = element.value[0].value\r\n if (myDescription) {\r\n import('he').then((he) => {\r\n if (myDescription) {\r\n setDescription(he.decode(myDescription))\r\n }\r\n })\r\n }\r\n break\r\n case 'documentname':\r\n break\r\n case 'productid':\r\n setProductCode(element.value[0].value)\r\n break\r\n default:\r\n }\r\n }\r\n }, [item])\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {imageUrl ? (\r\n {productCode}\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n

\r\n \r\n {description}\r\n \r\n

\r\n
\r\n
\r\n

\r\n {getI18nText(productMicrocopy, 'product.productcode')}: {productCode}\r\n

\r\n
\r\n
\r\n
\r\n {imageUrl ? (\r\n {productCode}\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport const DisplayDeliveryAndStock = ({\r\n locale,\r\n leadTime,\r\n quantity,\r\n stockOnHand,\r\n loading,\r\n stockLevelIndicator,\r\n}) => {\r\n const microcopy = useProductPriceI18n(locale)\r\n const [estimatedDespatchDate, setEstimatedDespatchDate] = useState()\r\n const { country } = useContext(GeolocationContext)\r\n\r\n useEffect(() => {\r\n setEstimatedDespatchDate(calculateDaysToDespatch(leadTime, stockOnHand, quantity, country))\r\n }, [leadTime, quantity, stockOnHand])\r\n\r\n return (\r\n
\r\n <>\r\n {loading ? (\r\n \r\n ) : (\r\n

\r\n \r\n {estimatedDespatchDate !== null && estimatedDespatchDate !== undefined ? (\r\n \r\n {getI18nText(microcopy, 'productprice.estimatedshippingdate')} \r\n {estimatedDespatchDate}\r\n \r\n ) : null}\r\n

\r\n )}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport const DisplayStock = ({ stockLevelIndicator, locale, loading }) => {\r\n const microcopy = useProductPriceI18n(locale)\r\n const stockMicrocopy = useProductStockI18n(locale)\r\n const [stock, setStock] = useState()\r\n\r\n useEffect(() => {\r\n const stockLevelText = getStockLevelString(stockLevelIndicator, stockMicrocopy)\r\n setStock(\r\n stockLevelText ? stockLevelText : getI18nText(microcopy, 'productprice.stockunavailable')\r\n )\r\n }, [stockLevelIndicator])\r\n\r\n function getStockResult(stock, stockLevelIndicator) {\r\n let content = StockLevel({ text: stock, stockLevelIndicator: stockLevelIndicator })\r\n\r\n if (stockLevelIndicator === 0) {\r\n content = \r\n } else {\r\n content = StockLevel({ text: stock, stockLevelIndicator: stockLevelIndicator }) ?? (\r\n \r\n )\r\n }\r\n\r\n return content\r\n }\r\n\r\n return (\r\n <>\r\n {loading ? (\r\n \r\n ) : (\r\n getStockResult(stock, stockLevelIndicator)\r\n )}\r\n \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { Link } from 'gatsby'\r\nimport { useEffect } from 'react'\r\nimport { useContext } from 'react'\r\nimport { Collapse } from 'react-bootstrap'\r\nimport GeolocationContext from '../../contexts/geolocationContext'\r\nimport LocaleContext from '../../contexts/localeContext'\r\nimport UserContext from '../../contexts/userContext'\r\nimport { useCountries } from '../../hooks/useCountries'\r\nimport { useNavigationHome } from '../../hooks/useNavigationHome'\r\nimport { useProductSlug } from '../../hooks/slugs/useProductSlug'\r\nimport { getPriceForAccessoriesPage } from '../../services/backendApiService'\r\nimport { GetCurrencyForCountry } from '../../services/currencyService'\r\nimport { getI18nText } from '../../services/i18nService'\r\nimport { logException } from '../../services/loggingService'\r\nimport { makePartNumberUrlSafe } from '../../services/urlService'\r\nimport { isAnonymousUser } from '../../services/userService'\r\nimport { DisplayDeliveryAndStock, DisplayPrice } from '../widgets/searchResult'\r\nimport { v4 as uuid } from 'uuid'\r\nimport { useProductI18n } from '../../hooks/i18n/useProductI18n'\r\nimport LanguageContext from '../../contexts/languageContext'\r\n\r\nconst Accessories = ({ microcopy, data }) => {\r\n const [accessoriesOpen, setAccessoriesOpen] = useState(true)\r\n\r\n if (shouldShowAccessories(data)) {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n setAccessoriesOpen(!accessoriesOpen)}\r\n aria-controls=\"accessories\"\r\n >\r\n {getI18nText(microcopy, 'product.accessories')}\r\n \r\n

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return null\r\n }\r\n}\r\n\r\nfunction shouldShowAccessories(data) {\r\n if (\r\n data.pimData &&\r\n (data.pimData.accessories_fittings ||\r\n data.pimData.accessories_accessories ||\r\n data.pimData.accessories_connectors ||\r\n data.pimData.accessories_gauges ||\r\n data.pimData.accessories_electrical_plugs ||\r\n data.pimData.accessories_manifolds ||\r\n data.pimData.accessories_mountings ||\r\n data.pimData.accessories_output_boards ||\r\n data.pimData.accessories_plates ||\r\n data.pimData.accessories_service_kits ||\r\n data.pimData.accessories_silencers ||\r\n data.pimData.accessories_similar ||\r\n data.pimData.accessories_solenoid_coils ||\r\n data.pimData.accessories_sub_bases ||\r\n data.pimData.accessories_switches ||\r\n data.pimData.accessories_tubing ||\r\n data.pimData.accessories_valves ||\r\n data.pimData.accessories_iolink)\r\n ) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nconst AccessoriesItems = ({ items, title }) => {\r\n return (\r\n <>\r\n {items ? (\r\n <>\r\n

{title}

\r\n
\r\n {items.map((element) => {\r\n var product = element.split('|')\r\n return (\r\n \r\n )\r\n })}\r\n
\r\n \r\n ) : null}\r\n \r\n )\r\n}\r\n\r\nconst AccessoriesItem = ({ partNumber, description, image }) => {\r\n const locale = useContext(LocaleContext)\r\n const { email, queryingUser } = useContext(UserContext)\r\n const { country } = useContext(GeolocationContext)\r\n const { language } = useContext(LanguageContext)\r\n const countries = useCountries(locale)\r\n const [currency, setCurrency] = useState()\r\n const [price, setPrice] = useState()\r\n const [loginForPrice, setLoginForPrice] = useState()\r\n const [loading, setLoading] = useState(true)\r\n const [leadTime, setLeadTime] = useState()\r\n const [quantity] = useState(1)\r\n const [stockOnHand, setStockOnHand] = useState()\r\n const [quoteOnly, setQuoteOnly] = useState()\r\n const [accessoryDescription, setAccessoryDescription] = useState(description)\r\n const productMicrocopy = useProductI18n(locale)\r\n const imageUrl = `https://cdn.norgren.com/images/${image}`\r\n const productSlug =\r\n '/' +\r\n useNavigationHome(locale).slug +\r\n '/' +\r\n useProductSlug(locale) +\r\n '/' +\r\n makePartNumberUrlSafe(partNumber)\r\n\r\n useEffect(() => {\r\n function getTheProduct(partNumber, currency) {\r\n let requestId = uuid()\r\n setLoading(true)\r\n getPriceForAccessoriesPage(partNumber, country, currency, language, requestId)\r\n .then((data) => {\r\n if (data && data.product) {\r\n setLeadTime(data.product.leadTime)\r\n setStockOnHand(data.product.stockAmount)\r\n setLoginForPrice(data.loginForPricingFeature)\r\n setQuoteOnly(data.product.quoteOnly)\r\n if (data.product.price) {\r\n setPrice(data.product.price.amount)\r\n setCurrency(data.product.price.currency)\r\n }\r\n } else {\r\n setQuoteOnly(true)\r\n }\r\n setLoading(false)\r\n })\r\n .catch((error) => {\r\n logException('Search result error', error)\r\n setQuoteOnly(true)\r\n setLoading(false)\r\n })\r\n }\r\n\r\n import('he').then((he) => {\r\n if (description) {\r\n setAccessoryDescription(he.decode(description))\r\n }\r\n })\r\n\r\n if (queryingUser === false) {\r\n if (isAnonymousUser(email) === true && country) {\r\n if (currency === null || currency === undefined) {\r\n setCurrency(GetCurrencyForCountry(country, countries))\r\n } else {\r\n getTheProduct(partNumber, currency)\r\n }\r\n } else if (isAnonymousUser(email) === false) {\r\n getTheProduct(partNumber, null)\r\n }\r\n } else {\r\n setLoading(true)\r\n }\r\n }, [partNumber, queryingUser, email, country, currency])\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {partNumber}\r\n
\r\n
\r\n
\r\n

\r\n \r\n {accessoryDescription !== null && accessoryDescription !== undefined\r\n ? accessoryDescription\r\n : null}\r\n \r\n

\r\n
\r\n
\r\n

\r\n {getI18nText(productMicrocopy, 'product.productcode')}: {partNumber}\r\n

\r\n
\r\n
\r\n
\r\n {partNumber}\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n {/*\r\n
\r\n {getI18nText(productMicrocopy, 'product.more')}\r\n
\r\n */}\r\n \r\n
\r\n {getI18nText(productMicrocopy, 'product.moreinfo')}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Accessories\r\n","import React, { useState } from 'react'\r\nimport { Collapse } from 'react-bootstrap'\r\nimport { getI18nText } from '../../services/i18nService'\r\n\r\nconst P65 = ({ microcopy }) => {\r\n const [isOpen, setIsOpen] = useState(true)\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n setIsOpen(!isOpen)}\r\n aria-controls=\"legislationandcompliance\"\r\n >\r\n {getI18nText(microcopy, 'product.legislationandcompliance')}\r\n \r\n

\r\n \r\n \r\n
\r\n

{getI18nText(microcopy, 'product.p65intro')}

\r\n

\r\n \r\n \r\n {getI18nText(microcopy, 'product.warning')}:{' '}\r\n {getI18nText(microcopy, 'product.cancerandreproductiveharm')} - \r\n \r\n {getI18nText(microcopy, 'product.p65url')}\r\n \r\n \r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default P65\r\n","import React, { useContext, useEffect, useRef, useState } from 'react'\r\nimport Layout from '../components/pageComponents/layout'\r\nimport { graphql } from 'gatsby'\r\nimport { useProductI18n } from '../hooks/i18n/useProductI18n'\r\nimport { useTechnicalDetailsI18n } from '../hooks/i18n/useTechnicalDetailsI18n'\r\nimport { ProductSidebox } from '../components/productPrice/productSidebox'\r\nimport { getPriceForDetailPage } from '../services/backendApiService'\r\nimport { v4 as uuid } from 'uuid'\r\nimport Breadcrumb from '../components/breadcrumb'\r\nimport { useCountries } from '../hooks/useCountries'\r\nimport { isAnonymousUser } from '../services/userService'\r\nimport UserContext from '../contexts/userContext'\r\nimport GeolocationContext from '../contexts/geolocationContext'\r\nimport { logException } from '../services/loggingService'\r\nimport useSeoHrefLang from '../hooks/useSeoHrefLang'\r\nimport { getI18nText } from '../services/i18nService'\r\nimport TechnicalDetails from '../components/productDetail/technicalDetails'\r\nimport Schematics from '../components/productDetail/schematics'\r\nimport Downloads from '../components/productDetail/downloads'\r\nimport Navigation from '../components/productDetail/navigation'\r\nimport Cad from '../components/productDetail/cad'\r\nimport { usePriorityTechnicalDetailsI18n } from '../hooks/i18n/usePriorityTechnicalDetailsI18n'\r\nimport { getImage } from 'gatsby-plugin-image'\r\nimport ProductImageSwiper from '../components/productDetail/productImageSwiper'\r\nimport {\r\n getPriorityTechnicalDetails,\r\n getTechnicalDetails,\r\n} from '../services/productPageMicrocopyService'\r\nimport useHideFromSpiders from '../hooks/useHideFromSpiders'\r\nimport { GetCurrencyForCountry } from '../services/currencyService'\r\nimport Accessories from '../components/productDetail/accessories'\r\nimport LanguageContext from '../contexts/languageContext'\r\nimport {\r\n buildViewItemDetailsEvent,\r\n publishViewItemDetailsEvent,\r\n} from '../services/dataLayerService'\r\nimport BasketContext from '../contexts/basketContext'\r\nimport ProductRequestAQuoteModal from '../components/modal/productRequestAQuoteModal'\r\nimport P65 from '../components/productDetail/p65'\r\nimport BaseModal from '../components/modal/baseModal'\r\nimport {\r\n replaceCharacterWithUnicodeCode,\r\n replaceHtmlEntityWithCharacter,\r\n} from '../services/htmlEncodingService'\r\nimport { defaultPricingDisplayOptions } from '../services/backendApiService'\r\nimport { useRequestQuoteI18n } from '../hooks/i18n/useRequestAQuoteI18n'\r\nimport Seo from '../components/pageComponents/seo'\r\nimport DataLayerContext from '../contexts/dataLayerContext'\r\n\r\nconst ProductPage = (props) => {\r\n const { eventApi } = useContext(DataLayerContext)\r\n const { email, queryingUser, accountNumber, isDistributor, country } = useContext(UserContext)\r\n const { country: geolocationCountry } = useContext(GeolocationContext)\r\n const { language } = useContext(LanguageContext)\r\n const { basketCurrency } = useContext(BasketContext)\r\n const countries = useCountries(props.pageContext.locale)\r\n const [data] = useState(extract(props.data.allContentfulProduct, props.pageContext.locale))\r\n const [isRange, setIsRange] = useState(false)\r\n const microcopy = useProductI18n(props.pageContext.locale)\r\n const requestAQuoteMicrocopy = useRequestQuoteI18n(props.pageContext.locale)\r\n const technicalDetailsMicrocopy = useTechnicalDetailsI18n(props.pageContext.locale)\r\n const priorityTechnicalDetailsMicrocopy = usePriorityTechnicalDetailsI18n(\r\n props.pageContext.locale\r\n )\r\n const [quantity, setQuantity] = useState(1)\r\n const [loading, setLoading] = useState(true)\r\n const [requestAQuoteIsOpen, setRequestAQuoteIsOpen] = useState(false)\r\n const [displayOptions, setDisplayOptions] = useState(defaultPricingDisplayOptions)\r\n const [product, setProduct] = useState()\r\n const [productDescription, setProductDescription] = useState(null)\r\n const [productImageUrl, setProductImageUrl] = useState(null)\r\n const [technicalDetails, setTechnicalDetails] = useState(null)\r\n const [priorityTechnicalDetails, setPriorityTechnicalDetails] = useState(null)\r\n const [itemFeatures, setItemFeatures] = useState(null)\r\n const [productImages, setProductImages] = useState([])\r\n const [showP65Warning, setShowP65Warning] = useState(false)\r\n const [eventModelToPublish, setEventModelToPublish] = useState()\r\n\r\n const getTheProductRequestIdRef = useRef(null)\r\n\r\n useEffect(() => {\r\n let myShowFindDistributor = false\r\n\r\n function getTheProduct(partNumber, theCurrency) {\r\n setLoading(true)\r\n getTheProductRequestIdRef.current = uuid()\r\n let quantityForEvent = 1\r\n let priceForEvent = undefined\r\n\r\n if (isRange === false) {\r\n getPriceForDetailPage(\r\n partNumber,\r\n geolocationCountry,\r\n theCurrency,\r\n language,\r\n getTheProductRequestIdRef.current\r\n )\r\n .then((responseData) => {\r\n if (responseData?.product) {\r\n setDisplayOptions({\r\n ...responseData.product.priceDisplayOptions,\r\n showFindDistributor: myShowFindDistributor,\r\n })\r\n setProduct(responseData.product)\r\n\r\n if (responseData.product.boxQuantity) {\r\n setQuantity(responseData.product.stockModel.boxQuantity)\r\n quantityForEvent = responseData.product.boxQuantity\r\n }\r\n } else {\r\n setQuantity(1)\r\n setDisplayOptions({\r\n ...defaultPricingDisplayOptions,\r\n showFindDistributor: myShowFindDistributor,\r\n })\r\n }\r\n setLoading(false)\r\n getTheProductRequestIdRef.current = null\r\n\r\n try {\r\n const desc =\r\n data.pimData && data.pimData.description\r\n ? replaceHtmlEntityWithCharacter(data.pimData.description)\r\n : undefined\r\n setEventModelToPublish(\r\n buildViewItemDetailsEvent(\r\n basketCurrency,\r\n priceForEvent,\r\n undefined,\r\n data.partNumber,\r\n desc,\r\n quantityForEvent,\r\n data.pimData && data.pimData.brand ? data.pimData.brand[0] : undefined,\r\n props.pageContext.locale,\r\n accountNumber,\r\n isDistributor\r\n )\r\n )\r\n } catch (error) {\r\n logException('buildViewItemDetailsEvent error', error)\r\n }\r\n })\r\n .catch((error) => {\r\n logException('Product page error', error)\r\n setQuantity(1)\r\n setDisplayOptions({\r\n ...defaultPricingDisplayOptions,\r\n showFindDistributor: myShowFindDistributor,\r\n })\r\n setLoading(false)\r\n getTheProductRequestIdRef.current = null\r\n })\r\n } else {\r\n setLoading(false)\r\n setDisplayOptions({\r\n ...defaultPricingDisplayOptions,\r\n showFindDistributor: myShowFindDistributor,\r\n })\r\n getTheProductRequestIdRef.current = null\r\n }\r\n }\r\n\r\n if (queryingUser === false) {\r\n if (isAnonymousUser(email) === true && geolocationCountry) {\r\n if (isRange === false) {\r\n myShowFindDistributor = shouldShowFindADistributor(geolocationCountry)\r\n }\r\n setShowP65Warning(shouldShowP65Warning(geolocationCountry))\r\n\r\n if (getTheProductRequestIdRef.current === null) {\r\n getTheProduct(data.partNumber, GetCurrencyForCountry(geolocationCountry, countries))\r\n }\r\n } else if (isAnonymousUser(email) === false) {\r\n if (isRange === false) {\r\n myShowFindDistributor = shouldShowFindADistributor(country)\r\n }\r\n setShowP65Warning(shouldShowP65Warning(country))\r\n\r\n if (getTheProductRequestIdRef.current === null) {\r\n getTheProduct(data.partNumber, null)\r\n }\r\n }\r\n }\r\n }, [data.partNumber, queryingUser, email, geolocationCountry, isRange, getTheProductRequestIdRef])\r\n\r\n useEffect(() => {\r\n setIsRange(data?.pimData?.israngesku === 'True')\r\n }, [data])\r\n\r\n useEffect(() => {\r\n if (data.pimData) {\r\n if (data.pimData.description) {\r\n setProductDescription(replaceHtmlEntityWithCharacter(data.pimData.description))\r\n } else {\r\n setProductDescription(null)\r\n }\r\n\r\n if (data.pimData.largeimage) {\r\n setProductImageUrl(`https://cdn.norgren.com/images/${data.pimData.largeimage}`)\r\n } else {\r\n setProductImageUrl(null)\r\n }\r\n\r\n if (data.pimData) {\r\n setTechnicalDetails(\r\n extractAllItemsFromDictionary(\r\n getTechnicalDetails(data.pimData, technicalDetailsMicrocopy)\r\n )\r\n )\r\n\r\n setPriorityTechnicalDetails(\r\n extractItemsFromDictionary(\r\n getPriorityTechnicalDetails(data.pimData, priorityTechnicalDetailsMicrocopy),\r\n 5\r\n )\r\n )\r\n\r\n if (data.pimData.features) {\r\n setItemFeatures(data.pimData.features.split('|'))\r\n } else {\r\n setItemFeatures(null)\r\n }\r\n } else {\r\n setTechnicalDetails(null)\r\n setPriorityTechnicalDetails(null)\r\n setItemFeatures(null)\r\n }\r\n }\r\n }, [data.pimData])\r\n\r\n useEffect(() => {\r\n let productImages = []\r\n if (data.localImage) {\r\n data.localImage.forEach((element) => {\r\n productImages.push(getImage(element.childImageSharp.gatsbyImageData))\r\n })\r\n }\r\n setProductImages(productImages)\r\n }, [data.localImage])\r\n\r\n useEffect(() => {\r\n if (eventApi && eventModelToPublish) {\r\n publishViewItemDetailsEvent(eventApi, eventModelToPublish)\r\n }\r\n }, [eventApi, eventModelToPublish])\r\n\r\n function openRequestAQuoteModal() {\r\n setRequestAQuoteIsOpen(true)\r\n }\r\n\r\n function closeRequestAQuoteModal() {\r\n setRequestAQuoteIsOpen(false)\r\n }\r\n\r\n function shouldShowFindADistributor(currentCountry) {\r\n if (currentCountry && currentCountry.toLowerCase() === 'us') {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function shouldShowP65Warning(currentCountry) {\r\n if (currentCountry && currentCountry.toLowerCase() === 'us') {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{data.partNumber}

\r\n

{productDescription}

\r\n \r\n
\r\n
\r\n {productImages && productImages.length > 0 ? (\r\n \r\n ) : productImageUrl ? (\r\n {data.partNumber}\r\n ) : null}\r\n
\r\n
\r\n
\r\n {itemFeatures && itemFeatures.length > 0 ? (\r\n
    \r\n {itemFeatures.map((feature, index) => {\r\n if (feature !== '') {\r\n return
  • {feature}
  • \r\n } else {\r\n return null\r\n }\r\n })}\r\n
\r\n ) : null}\r\n \r\n \r\n {priorityTechnicalDetails !== null &&\r\n priorityTechnicalDetails !== undefined &&\r\n Object.keys(priorityTechnicalDetails).map((key) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n
{key}:{priorityTechnicalDetails[key]}
\r\n {data.pimData &&\r\n (data.pimData.cadfilestep ||\r\n data.pimData.brochure ||\r\n data.pimData.technicalspecs ||\r\n data.pimData.software ||\r\n data.pimData.installationandmaintenanceinstructionspdf) ? (\r\n

{getI18nText(microcopy, 'product.downloads')}

\r\n ) : null}\r\n\r\n {data.pimData ? : null}\r\n
\r\n
\r\n
\r\n
\r\n {data.pimData &&\r\n (data.pimData.cadfilestep || data.pimData.cadenas_catalogue_path) ? (\r\n \r\n ) : null}\r\n \r\n {data.pimData && data.pimData.schematicjpg ? (\r\n \r\n ) : null}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {data.pimData ? : null}\r\n {showP65Warning ? : null}\r\n
\r\n
\r\n \r\n \r\n \r\n )\r\n}\r\nexport default ProductPage\r\n\r\nexport function Head({ pageContext, data }) {\r\n const seoHrefLang = useSeoHrefLang({\r\n locale: pageContext.locale,\r\n altPaths: pageContext.altPaths,\r\n })\r\n const robots = useHideFromSpiders(pageContext)\r\n const [metaDescription] = useState(pageContext.metaDescription)\r\n const [pageTitle] = useState(GetPageTitle())\r\n\r\n function GetPageTitle() {\r\n const queryData = extract(data.allContentfulProduct, pageContext.locale)\r\n const pimDataDescription = replaceCharacterWithUnicodeCode(queryData?.pimData?.description)\r\n const description = pimDataDescription ? ` | ${pimDataDescription}` : ''\r\n return queryData.partNumber + description\r\n }\r\n\r\n return (\r\n <>\r\n {robots}\r\n {seoHrefLang}\r\n \r\n \r\n )\r\n}\r\n\r\nfunction extractAllItemsFromDictionary(srcItems) {\r\n let items = {}\r\n\r\n if (srcItems) {\r\n const keys = Object.keys(srcItems)\r\n\r\n for (let index = 0; index < keys.length; index++) {\r\n const name = keys[index]\r\n let value = srcItems[name]\r\n\r\n if (value) {\r\n value = Array.isArray(value) ? value.join(', ') : value\r\n items[name] = value\r\n }\r\n }\r\n\r\n if (Object.keys(items).length === 0) {\r\n items = null\r\n }\r\n } else {\r\n items = null\r\n }\r\n\r\n return items\r\n}\r\n\r\nfunction extractItemsFromDictionary(srcItems, maxItemCount) {\r\n let items = extractAllItemsFromDictionary(srcItems)\r\n\r\n if (items) {\r\n let extractedItems = {}\r\n const keys = Object.keys(items)\r\n let count = 0\r\n for (let index = 0; index < keys.length && count < maxItemCount; index++) {\r\n const name = keys[index]\r\n const value = items[name]\r\n extractedItems[name] = value\r\n }\r\n\r\n items = extractedItems\r\n }\r\n\r\n return items\r\n}\r\n\r\nfunction extract(result, locale) {\r\n for (let i = 0; i < result.nodes.length; i++) {\r\n let node = result.nodes[i]\r\n if (node.node_locale === locale) {\r\n return node\r\n }\r\n }\r\n\r\n return undefined\r\n}\r\n\r\nexport const pageQuery = graphql`\r\n query ($partNumber: String, $locale: String) {\r\n allContentfulProduct(\r\n filter: { partNumber: { eq: $partNumber }, node_locale: { eq: $locale } }\r\n ) {\r\n nodes {\r\n id\r\n node_locale\r\n partNumber\r\n localImage {\r\n childImageSharp {\r\n gatsbyImageData(placeholder: BLURRED, layout: CONSTRAINED)\r\n }\r\n }\r\n pimData {\r\n accessories_accessories\r\n accessories_base_accessories\r\n accessories_connectors\r\n accessories_gauges\r\n accessories_flow_regulators\r\n accessories_fittings\r\n accessories_electrical_plugs\r\n accessories_mountings\r\n accessories_output_boards\r\n accessories_plates\r\n accessories_service_kits\r\n accessories_silencers\r\n accessories_similar\r\n accessories_solenoid_coils\r\n accessories_switches\r\n accessories_tubing\r\n accessories_iolink\r\n actuated_colour\r\n actuation\r\n actuator_variant\r\n adjusting_knob\r\n adjusting_screw\r\n adjustment\r\n air_consumption_flow_litresperminute_min_to_max_range\r\n air_flow_direction\r\n air_pilot_port_air_pilot_operated_types_only\r\n air_pilot_ports\r\n air_quality_output\r\n airflow_vacuum_nlmin\r\n ambient_temperature_temperature_celsius_min_to_max_range\r\n barrel\r\n basic_size\r\n body\r\n body_material\r\n body_style\r\n bonnet\r\n bowl\r\n bowl_capacity_volume_litre\r\n bowl_type\r\n brand\r\n bspp\r\n brochure\r\n bspt\r\n cable_length\r\n cable_length_length_meter\r\n cable_material\r\n cable_type\r\n cadenas_catalogue_path\r\n cadfilestep\r\n capacity_rating\r\n carriage\r\n certification__ip_rating\r\n certification__reach\r\n certification__rohs_compliant\r\n certification__weee\r\n coil_code\r\n collar\r\n collet\r\n colour\r\n connection\r\n connector_plug\r\n connector_type\r\n contact_resistance_resistance_milliohms\r\n control_signal\r\n coupling_type\r\n cover_strip\r\n cracking_pressure_pressure_bar\r\n current_consumption_current_milliamps\r\n current_current_amp\r\n cushion_length_length_millimetre\r\n cushioning\r\n cylinder_diameter_inch\r\n cylinder_diameter_metric_length_millimetre\r\n data_performance_b10_value_number_of_cycles\r\n data_performance_shelf_life\r\n description\r\n diameter_length_millimetre\r\n drain_connection\r\n effective_weight_range_mass_kilogram_min_to_max_range\r\n elastomers\r\n electrical_connection\r\n emc_standards\r\n end_covers\r\n eu_country_of_origin\r\n excelon_plus_series\r\n exhaust_flow_flow_litresperminute\r\n exhaust_port\r\n extended_stroke_length_length_millimetre\r\n failure_mode\r\n features\r\n female_bspp\r\n female_metric___bspp\r\n female_nptf\r\n femalemale\r\n filter_element\r\n filter_element_m_particlesize_micron\r\n finish\r\n flow_direction\r\n flow_flow_dm3sec\r\n flow_flow_litresperminute\r\n flow_flowcoefficient_cv\r\n flow_imperial_flow_scfm\r\n flow_kv_flow_kv\r\n flow_regulator\r\n flow_type\r\n fluid_temperature_imperial_temperature_fahrenheit_min_to_max_range\r\n fluid_temperature_temperature_celsius_min_to_max_range\r\n fog_type\r\n forces_force_newton\r\n forces_pressure_bar\r\n forward_flow_flowcoefficient_cv\r\n free_flow_factor_flow_dm3secbar\r\n gauge_port\r\n gland_size\r\n grabring\r\n guide_block\r\n guide_rod_diameter_length_millimetre\r\n guide_rods\r\n guiding_system\r\n hex\r\n hex_length_inches\r\n housing\r\n hysteresis_ratio_percent\r\n id\r\n id_tube_metric_length_millimetre\r\n indication\r\n induced_air_vacuum_nlmin\r\n initial_cushion_volume_volume_cubiccentimetre\r\n inlet_port\r\n inner_parts\r\n installationandmaintenanceinstructionspdf\r\n integral_flow_control\r\n interface\r\n iso_size\r\n israngesku\r\n kv_value_flow_cubicmeterperhour\r\n largeimage\r\n length_length_meter\r\n length_of_closed_spiral_length_millimetre\r\n liquid_level_control\r\n locking_force_force_newton\r\n long_description\r\n male_bspp\r\n male_bspt\r\n male_metric___bspp\r\n male_npt\r\n male_nptf\r\n manual_override\r\n manual_override_code\r\n materials\r\n maximum_current_current_amp\r\n maximum_energy_capacity_per_cycle_torque_newtonmetres\r\n maximum_energy_capacity_torque_newtonmetres\r\n maximum_flow_flow_dm3sec\r\n maximum_fluid_temperature_temperature_celsius\r\n maximum_inlet_pressure_imperial_pressure_psi\r\n maximum_inlet_pressure_pressure_bar\r\n maximum_number_of_stations\r\n maximum_operating_pressure_imperial_pressure_psi\r\n maximum_operating_pressure_imperial_pressure_psig\r\n maximum_operating_pressure_pressure_bar\r\n maximum_side_load_angle_angle_degrees\r\n maximum_stroke_metric_length_millimetre\r\n maximum_voltage_voltage_volt\r\n medium\r\n metric___bspp\r\n metric___bspt\r\n mil_spec\r\n minimum_bend_radius_length_millimetre\r\n minimum_operating_pressure_pressure_bar\r\n motor_flange\r\n motor_mounting\r\n mounting\r\n mounting_position\r\n mounting_style\r\n nominal_diameter\r\n nominal_diameter_length_millimetre\r\n nominal_size\r\n non_magnetic_or_magnetic\r\n npt\r\n number_of_convolutions\r\n number_of_masks\r\n number_of_pins\r\n number_of_tubes\r\n nuts_and_screws\r\n od_stem_inch\r\n od_stem_inch_length_inches\r\n od_stem_length_millimetre\r\n od_tube_inch\r\n od_tube_inlet_length_millimetre\r\n od_tube_length_millimetre\r\n od_tube_outlet_length_millimetre\r\n oil_removal_class\r\n operating_pressure_pressure_bar_min_to_max_range\r\n operating_pressure_psi_pressure_psi_min_to_max_range\r\n operating_temperature_f_temperature_fahrenheit_min_to_max_range\r\n operating_temperature_temperature_celsius_min_to_max_range\r\n operation\r\n operator\r\n operator_10\r\n operator_12\r\n operator_14\r\n orifice_metric\r\n oring\r\n outlet_port\r\n outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range\r\n outlet_pressure_adjustment_pressure_bar_min_to_max_range\r\n output\r\n output_pressure_imperial_pressure_psi_min_to_max_range\r\n output_pressure_pressure_bar_min_to_max_range\r\n over_pressure_pressure_bar\r\n over_pressure_psi_pressure_psi\r\n packing_and_supply_gross_weight_weight_kilogram\r\n packing_and_supply_packaging_diameter_length_millimetre\r\n packing_and_supply_packaging_height_length_millimetre\r\n packing_and_supply_packaging_length_length_millimetre\r\n packing_and_supply_packaging_material\r\n packing_and_supply_packaging_width_length_millimetre\r\n packing_and_supply_product_diameter_length_millimetre\r\n packing_and_supply_product_height_length_millimetre\r\n packing_and_supply_product_length_length_millimetre\r\n packing_and_supply_product_weight_weight_kilogram\r\n packing_and_supply_product_width_length_millimetre\r\n packing_and_supply_specified_supplier_packaging\r\n packing_and_supply_unit_of_measure\r\n partially_replaced_part\r\n particle_removal_particlesize_micron\r\n pilot\r\n pilot_exhaust\r\n pilot_medium\r\n pilot_pressure_imperial_pressure_psi_min_to_max_range\r\n pilot_pressure_pressure_bar_min_to_max_range\r\n pinion_diameter_length_millimetre\r\n piston\r\n piston_head_seals\r\n piston_rod\r\n piston_rod_diameter_inch\r\n piston_rod_diameter_metric_length_millimetre\r\n piston_rod_material\r\n piston_rod_seals\r\n piston_rod_thread\r\n piston_rod_thread_type\r\n port_connections\r\n port_orientation\r\n port_orientation__mounting_style\r\n port_regulation\r\n port_size\r\n port_type\r\n porting\r\n power_consumption_power_watt\r\n power_inrushhold_power_watt\r\n power_power_watt\r\n pressure_drop_at_shut_off_flow_pressure_bar\r\n pressure_range_pressure_bar_min_to_max_range\r\n pressure_range_psi_pressure_psi_min_to_max_range\r\n product_style\r\n protection_class\r\n pyrex_sight_glass\r\n quick_fill_nipple\r\n range\r\n rectified_coil\r\n regulator_type\r\n release_sleeve_and_backing_ring\r\n relief_flow_rate_flow_litresperminute\r\n relief_port\r\n relievingnonrelieving\r\n repeat_accuracy_ratio_percent\r\n replaced_flag\r\n response_time_time_millisecond\r\n retrieve_price\r\n return_force_of_spring_force_newton\r\n return_force_of_spring_range_force_newton_min_to_max_range\r\n reverse_flow_flowcoefficient_cv\r\n rod_bearing\r\n rod_reset_time_time_seconds\r\n rod_type\r\n rohscertificatepdf\r\n rotation_angle\r\n rotation_tolerance\r\n scale_bar_pressure_bar_min_to_max_range\r\n scale_mpa_pressure_mpa_min_to_max_range\r\n scale_psi_pressure_psi_min_to_max_range\r\n schematicjpg\r\n schematicsvg\r\n seal_material\r\n sealing_strip\r\n sealing_washer\r\n seals\r\n seals___orings\r\n seat_seal\r\n sensitivity_pressure_mbar\r\n series\r\n service_life_indicator\r\n shape\r\n shock_resistance_weight_gram\r\n shut_off_flow_rate_flow_dm3sec\r\n shut_off_valve\r\n silencer\r\n socket\r\n software\r\n solenoid_connector\r\n solenoid_operation\r\n solenoid_power_power_watt\r\n solenoid_protection_class\r\n sound_level_soundlevel_db\r\n spindle_pitch_metric\r\n spool\r\n spool___sleeve\r\n spool_technology\r\n springs\r\n sprung_in_or_sprung_out\r\n standard\r\n start_point_flow_dm3sec\r\n start_point_imperial_flow_scfm\r\n statementofconformitypdf\r\n stroke_length_inch\r\n stroke_length_metric_length_millimetre\r\n stroke_travel_length_millimetre\r\n subbase_modules\r\n supply_flow_flow_litresperminute\r\n supply_voltage\r\n surge_suppression\r\n switch_type\r\n switching_current_current_milliamps\r\n switching_frequency_frequency_perminute\r\n switching_function\r\n switching_power_power_watt\r\n switching_pressure_difference_imperial_pressure_psi_min_to_max_range\r\n switching_pressure_difference_pressure_bar_min_to_max_range\r\n switching_time__off_time_millisecond\r\n switching_time__on_time_millisecond\r\n switching_time_time_millisecond\r\n switching_voltage_voltage_volt\r\n technicalspecs\r\n theoretical_force_force_newton\r\n thread\r\n thread_form\r\n thread_sealant\r\n thread_sizes\r\n thread_type\r\n threaded_bodies\r\n thumbnail\r\n top_cover\r\n torque_torque_newtonmetres\r\n tube_sizes_length_millimetre\r\n tube_types\r\n type_of_pressure\r\n unactuated_colour\r\n vacuum\r\n vacuum_rating\r\n vacuum_rating_pressure_mmhg\r\n valve_function\r\n valve_operation\r\n valve_options\r\n valve_size_length_millimetre\r\n valve_variant_actuation\r\n vane_type\r\n videourl\r\n voltage\r\n wiper\r\n tacton_configurable\r\n tacton_reference\r\n zoomedimage\r\n barrel\r\n cushioning\r\n cv_body_flowcoefficient_cv\r\n flow_imperial_flow_scfm\r\n fluid_temperature_imperial_temperature_fahrenheit_min_to_max_range\r\n guiding_system\r\n non_magnetic_or_magnetic\r\n operating_pressure_psi_pressure_psi_min_to_max_range\r\n outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range\r\n scale_bar_pressure_bar_min_to_max_range\r\n scale_mpa_pressure_mpa_min_to_max_range\r\n scale_psi_pressure_psi_min_to_max_range\r\n stroke_length_inch\r\n theoretical_force_force_newton\r\n drain_type\r\n function\r\n varset\r\n }\r\n }\r\n }\r\n }\r\n`\r\n","import { useStaticQuery, graphql } from 'gatsby'\r\nimport { resolveMicrocopyFromResourcesQueryResultForLocale } from '../../services/microcopyService'\r\n\r\nconst resourcesQuery = graphql`\r\n query {\r\n en: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"en\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n de: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"de\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n nl: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"nl\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n fr: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"fr\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n it: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"it\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n es: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"es\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n enUS: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"en-US\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n cs: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"cs\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n pl: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"pl\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n pt: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"pt\" }, key: { eq: \"technicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const useTechnicalDetailsI18n = (locale) => {\r\n return resolveMicrocopyFromResourcesQueryResultForLocale(useStaticQuery(resourcesQuery), locale)\r\n}\r\n","import { useStaticQuery, graphql } from 'gatsby'\r\nimport { resolveMicrocopyFromResourcesQueryResultForLocale } from '../../services/microcopyService'\r\n\r\nconst resourcesQuery = graphql`\r\n query {\r\n en: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"en\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n de: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"de\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n nl: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"nl\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n fr: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"fr\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n it: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"it\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n es: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"es\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n enUS: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"en-US\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n cs: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"cs\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n pl: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"pl\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n pt: allContentfulMicrocopyContainer(\r\n filter: { node_locale: { eq: \"pt\" }, key: { eq: \"prioritytechnicaldetails\" } }\r\n ) {\r\n nodes {\r\n ...CoreMicrocopyFields\r\n }\r\n }\r\n }\r\n`\r\n\r\nexport const usePriorityTechnicalDetailsI18n = (locale) => {\r\n return resolveMicrocopyFromResourcesQueryResultForLocale(useStaticQuery(resourcesQuery), locale)\r\n}\r\n"],"names":["_ref","isOpen","closeModal","productCode","submitUrl","methods","useForm","locale","useContext","LocaleContext","submitRef","useRef","countriesDictionary","useCountriesForFormsDictionary","microcopy","useCountries","useRequestQuoteI18n","country","GeolocationContext","selectedCountry","setSelectedCountry","useState","isFormValidated","setIsFormValidated","formSubmitSuccess","setFormSubmitSuccess","formSubmitFailed","setFormSubmitFailed","formMicrocopy","useFormI18n","useEffect","key","React","className","getI18nText","FormProvider","onSubmit","handleSubmit","data","requestaquote","item","json","JSON","stringify","requestId","uuid","submitFormToSalesForce","then","reset","catch","noValidate","FormDataLayer","formName","formId","TextInput","inputName","microcopyName","required","SelectInput","options","selectedOptionKey","pattern","patternErrorMessage","ColouredSubmitButton","value","colour","refCallback","hideFromSpiders","name","content","technicalDetails","technicalDetailsOpen","setTechnicalDetailsOpen","id","type","onClick","Collapse","in","Object","keys","map","resSchematicJpg","schematicsOpen","setSchematicsOpen","images","split","element","src","alt","eventApi","DataLayerContext","eventModelToPublish","setEventModelToPublish","cadUrl","setCadUrl","cadFileStepUrl","setCadFileStepUrl","broucherUrl","setBroucherUrl","technicalSpecsUrl","setTechnicalSpecsUrl","softwareUrl","setSoftwareUrl","installationAndMaintenanceInstructionspPdfUrl","setInstallationAndMaintenanceInstructionspPdfUrl","eventId","publishBrochureButtonInteractionEvent","eventModel","publishCADButtonInteractionEvent","publishDatasheetButtonInteractionEvent","publishInstallationGuideButtonInteractionEvent","pimData","cadenas_catalogue_path","brochure","technicalspecs","software","installationandmaintenanceinstructionspdf","cadfilestep","myUrl","varset","handleClick","e","linkClasses","target","linkDomain","linkId","linkUrl","linkText","textContent","linkElement","findParentElementA","href","extractDomain","buildCADButtonInteractionEvent","buildBrochureButtonInteractionEvent","buildDatasheetButtonInteractionEvent","buildInstallationGuideButtonInteractionEvent","rel","ResCadFileStep","ResCadenasCataloguePath","ResSchematicJpg","cadFileStep","cadenasCataloguePath","tacton_configurable","tacton_reference","itemVarSet","cadOpen","setCadOpen","configuratorUrl","useGenericConfiguratorNavigation","navigationId","PRAConfigurator","useStaticQuery","navigationElement","nodes","forEach","node_locale","myCadUrl","Link","to","buildUrl","thumbsSwiper","setThumbsSwiper","prevRef","nextRef","Swiper","onInit","swiper","params","navigation","prevEl","current","nextEl","init","update","spaceBetween","thumbs","modules","FreeMode","Navigation","Thumbs","SwiperSlide","GatsbyImage","image","imgClassName","ref","onSwiper","slidesPerView","freeMode","watchSlidesProgress","setTechnicalDetailValue","undefined","previousValue","DisplayPrice","_ref3","price","currency","loginForPrice","loading","quoteOnly","accountType","UserContext","useProductPriceI18n","displayPrice","setDisplayPrice","productPrice","parseFloat","toFixed","AccountTypeCredit","isNaN","DisplayPriceAsString","amount","Spinner","animation","DisplayDeliveryAndStock","_ref5","leadTime","quantity","stockOnHand","stockLevelIndicator","estimatedDespatchDate","setEstimatedDespatchDate","calculateDaysToDespatch","DisplayStock","_ref6","stockMicrocopy","useProductStockI18n","stock","setStock","stockLevelText","getStockLevelString","StockLevel","text","_StockLevel","getStockResult","AccessoriesItems","_ref2","items","title","product","AccessoriesItem","partNumber","description","email","queryingUser","language","LanguageContext","countries","setCurrency","setPrice","setLoginForPrice","setLoading","setLeadTime","setStockOnHand","setQuoteOnly","accessoryDescription","setAccessoryDescription","productMicrocopy","useProductI18n","imageUrl","productSlug","useNavigationHome","slug","useProductSlug","makePartNumberUrlSafe","getTheProduct","getPriceForAccessoriesPage","stockAmount","loginForPricingFeature","error","logException","he","decode","isAnonymousUser","GetCurrencyForCountry","accessoriesOpen","setAccessoriesOpen","accessories_fittings","accessories_accessories","accessories_connectors","accessories_gauges","accessories_electrical_plugs","accessories_manifolds","accessories_mountings","accessories_output_boards","accessories_plates","accessories_service_kits","accessories_silencers","accessories_similar","accessories_solenoid_coils","accessories_sub_bases","accessories_switches","accessories_tubing","accessories_valves","accessories_iolink","shouldShowAccessories","setIsOpen","props","accountNumber","isDistributor","geolocationCountry","basketCurrency","BasketContext","pageContext","extract","allContentfulProduct","isRange","setIsRange","requestAQuoteMicrocopy","technicalDetailsMicrocopy","resolveMicrocopyFromResourcesQueryResultForLocale","priorityTechnicalDetailsMicrocopy","usePriorityTechnicalDetailsI18n","setQuantity","requestAQuoteIsOpen","setRequestAQuoteIsOpen","displayOptions","setDisplayOptions","defaultPricingDisplayOptions","setProduct","productDescription","setProductDescription","productImageUrl","setProductImageUrl","setTechnicalDetails","priorityTechnicalDetails","setPriorityTechnicalDetails","itemFeatures","setItemFeatures","productImages","setProductImages","showP65Warning","setShowP65Warning","getTheProductRequestIdRef","openRequestAQuoteModal","shouldShowFindADistributor","currentCountry","toLowerCase","shouldShowP65Warning","myShowFindDistributor","theCurrency","priceForEvent","quantityForEvent","getPriceForDetailPage","responseData","priceDisplayOptions","showFindDistributor","boxQuantity","stockModel","desc","replaceHtmlEntityWithCharacter","buildViewItemDetailsEvent","brand","_data$pimData","israngesku","largeimage","extractAllItemsFromDictionary","actuation","eu_country_of_origin","port_size","gauge","drain_type","cylinder_diameter_metric_length_millimetre","outlet_pressure_adjustment_pressure_bar_min_to_max_range","relievingnonrelieving","ItemStrokeLengthMetricLengthMillimetre","series","medium","body","od_tube_length_millimetre","operating_temperature_temperature_celsius_min_to_max_range","standard","thread","OperatingPressureRangeBar","operation","cable_length_length_meter","shape","fog_type","gauge_port","bowl","adjusting_knob","bearings","bonnet","buffer","elastomers","filter_element","nuts_and_screws","piston_head_seals","piston_rod_material","piston","seals","seat_seal","seats","shim_ring","spool_sleeve","certification__atex","certification__ccc","certification__csa","certification__emc","certification__ip_rating","certification__reach","certification__rohs_compliant","certification__ul","certification__weee","eclass_11","hs_code","hts_code","mil_spec","unspsc_code","us_eccn","range","filter_element_m_particlesize_micron","maximum_inlet_pressure_pressure_bar","packing_and_supply_product_height_length_millimetre","packing_and_supply_product_length_length_millimetre","packing_and_supply_product_width_length_millimetre","stroke_length_metric_length_millimetre","length_length_meter","operating_pressure_pressure_bar_min_to_max_range","effective_weight_range_mass_kilogram_min_to_max_range","coil_code","diameter_length_millimetre","female_thread","function","hose_bore","induced_air_vacuum_nlmin","iso_size","nominal_diameter","nominal_diameter_length_millimetre","number_of_convolutions","id_tube_metric_length_millimetre","minimum_bend_radius_length_millimetre","packing_and_supply_product_weight_weight_kilogram","data_performance_b10_value_number_of_cycles","data_performance_shelf_life","control_signal","cushioning","cv_body_flowcoefficient_cv","flow_imperial_flow_scfm","fluid_temperature_imperial_temperature_fahrenheit_min_to_max_range","guiding_system","iforwardslashd_tube","maximum_flow_flow_scfm","non_magnetic_or_magnetic","oforwardslashd_tube_inch","operating_pressure_psi_pressure_psi_min_to_max_range","operating_temperature_f_temperature_fahrenheit_min_to_max_range","outlet_pressure_adjustment_imperial_pressure_psig_min_to_max_range","scale_bar_pressure_bar_min_to_max_range","scale_mpa_pressure_mpa_min_to_max_range","scale_psi_pressure_psi_min_to_max_range","stroke_length_inch","theoretical_force_force_newton","barrel","cylinder_diameter_inch","valve_operation","adjustment","rotation_angle","flow_flow_dm3sec","flow_flow_litresperminute","start_point_flow_dm3sec","getTechnicalDetails","srcItems","maxItemCount","extractedItems","count","index","length","extractItemsFromDictionary","ItemShape","ItemLengthLengthMeter","od_tube_inch","getPriorityTechnicalDetails","features","localImage","push","getImage","childImageSharp","gatsbyImageData","publishViewItemDetailsEvent","Layout","altPaths","categoryPaths","darkTheme","navId","ProductImageSwiper","feature","Downloads","Cad","TechnicalDetails","schematicjpg","Schematics","ProductSidebox","isMobile","setQuantityCallback","openRequestAQuoteCallback","contentfulProductData","Accessories","P65","BaseModal","component","ProductRequestAQuoteModal","Breadcrumb","finalCrumb","Head","seoHrefLang","useSeoHrefLang","robots","useHideFromSpiders","metaDescription","pageTitle","_queryData$pimData","queryData","pimDataDescription","replaceCharacterWithUnicodeCode","GetPageTitle","Seo","showTitleSuffix","Array","isArray","join","result","i","node"],"sourceRoot":""}